当前位置: 首页 > news >正文

Docker:安装 Syslog-ng 的技术指南

1、简述

Syslog-ng 是一种流行的日志管理工具,能够集中处理和分析日志。通过 Docker 安装 Syslog-ng 可以简化部署和管理过程。本文将介绍如何使用 Docker 安装 Syslog-ng,并提供一个 Java 示例来展示如何将日志发送到 Syslog-ng。
在这里插入图片描述

2、安装

2.1 创建 Docker Compose 文件

先创建Syslog-ng 容器外的映射目录:

mkdir -p /data/syslog/conf
mkdir -p /data/syslog/logs

在项目目录下创建一个 docker-compose.yml 文件:

version: '3'services:syslog-ng:image: balabit/syslog-ngports:- "514:514/udp"volumes:- /data/syslog/conf:/etc/syslog-ng/- /data/syslog/logs:/var/log/syslog-ng
2.2 创建 Syslog-ng 配置文件

在项目目录下创建 /data/syslog/conf 目录,并在该目录下创建一个配置文件 syslog-ng.conf:

@version: 3.30
@include "scl.conf"source s_network {syslog(transport(udp) port(514));
};destination d_local {file("/var/log/syslog-ng/messages.log");
};log {source(s_network);destination(d_local);
};
2.3 启动 Syslog-ng 容器

在项目目录下运行以下命令启动 Syslog-ng 容器:

docker-compose up -d

3、样例

3.1 引入依赖

在 Spring Boot 项目的 pom.xml 文件中引入 logback 相关依赖:

<dependencies><!-- Spring Boot Starter --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- Logback Classic --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId></dependency><!-- Logback Syslog Appender --><dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>6.6</version></dependency>
</dependencies>
3.2 配置 Logback

在 src/main/resources 目录下创建或编辑log4j.properties 文件:

log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost=192.168.157.129
log4j.appender.SYSLOG.facility=local0
log4j.appender.SYSLOG.facilityPrinting=false
log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss}  %-5p (%C:%M:%L) - %m%nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss}  %-5p (%C:%M:%L) - %m%nlog4j.rootLogger=info, CONSOLE, SYSLOG
3.3 示例代码

创建一个简单的 Spring Boot 应用程序,包含一个控制器来生成一些日志:

package com.example.demo;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class LogController {private static final Logger logger = LoggerFactory.getLogger(LogController.class);@GetMapping("/log")public String log() {logger.info("This is an info log message");logger.debug("This is a debug log message");logger.error("This is an error log message");return "Logs have been sent to Syslog-ng";}
}

4、验证

启动 Spring Boot 应用程序并访问 http://localhost:8080/log。然后查看 syslog-ng/logs/messages.log 文件,以确保日志已经成功发送到 Syslog-ng:

docker exec -it <container_id> cat /var/log/syslog-ng/messages.log

你应该会看到类似如下的日志内容:

Jul 30 12:34:56 localhost LogController: [main] LogController - This is an info log message
Jul 30 12:34:56 localhost LogController: [main] LogController - This is a debug log message
Jul 30 12:34:56 localhost LogController: [main] LogController - This is an error log message

5、结论

通过上述步骤,我们成功地使用 Docker 安装了 Syslog-ng,并在 Spring Boot 应用程序中集成了日志发送功能。这种方法不仅简化了 Syslog-ng 的部署,还提高了日志管理的灵活性和效率。如果有任何问题或改进建议,欢迎在评论区留言。

希望这篇博客对你有所帮助!

http://www.lryc.cn/news/467404.html

相关文章:

  • 即插即用的3D神经元注意算法!
  • FPGA 蜂鸣器 音乐播放器
  • 前端-基础CSS总结常用
  • Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)
  • CSS常见面试题
  • ChatGPT实现旅游推荐微信小程序
  • 基于单片机的智能小区门禁系统设计(论文+源码)
  • stm32F103 实现呼吸灯效果
  • SAP 为 Copilot Joule 增添协作功能
  • Node.js 模块化
  • 【部署篇】RabbitMq-03集群模式部署
  • 【硬啃Dash-Fastapi-Admin】03-requirements-pg.txt 速览
  • 【CS常见问题】你用的是VS2019,最高支持.NET5.0,但是项目将.NET6.0设为目标无法运行,怎么办?
  • 系统登录接口文档Demo
  • gin入门教程(7): 使用 Logrus + Lumberjack 创建日志中间件
  • kube-prometheus-stack 自定义 alertmanager 配置推送webhook
  • openssl签名报错
  • 如何在不使用 VPN 的情况下通过 SOCKS 隧道安全地路由 Web 流量
  • android openGL ES详解——缓冲区VBO/VAO/EBO/FBO
  • 计算机网络——传输层服务
  • gin入门教程(8):渲染与静态文件
  • Fast Simulation of Mass-Spring Systems in Rust 论文阅读
  • javaWeb项目-ssm+vue志愿者招募网站功能说明介绍
  • Selenium + Titanium代理获取请求的接口数据
  • ELK Stack与Graylog:强大的日志分析和可视化工具
  • 安全见闻(6)——开阔眼界,不做井底之蛙
  • GRU神经网络理解
  • Windows 10、Office 2016/2019 和 PPTP 和 L2TP协议即将退役,企业应尽早做好准备
  • 论文阅读:Guided Linear Upsampling
  • 深度图和RGB图对齐