当前位置:   article > 正文

Spring Boot集成syslog快速入门Demo

Spring Boot集成syslog快速入门Demo

1.什么syslog?

Syslog-ng是由Balabit IT Security Ltd.维护的一套开源的Unix和类Unix系统的日志服务套件。它是一个灵活的、可伸缩的系统日志记录程序。对于服务器日志集中收集,使用它是一个不错的解决方案。syslog-ng (syslog-Next generation) 是syslog的升级版

Syslog-ng主要特性有:

  • 支持SSL/TSL协议
  • 支持将日志写入数据库中,支持的数据库有MySQL, Microsoft SQL (MSSQL),Oracle, PostgreSQL, and SQLite.
  • 支持标准的syslog协议
  • 支持filter、parse以及rewrite
  • 支持更多的平台
  • 更高的负载能力

2.环境准备

docker-compose.yml

  1. version: '3.6'
  2. services:
  3. syslog:
  4. image: lscr.io/linuxserver/syslog-ng:latest
  5. container_name: syslog-ng
  6. ports:
  7. - 514:5514/udp
  8. - 601:6601/tcp
  9. - 6514:6514/tcp
  10. volumes:
  11. - ./data/config:/config
  12. - ./data/log:/var/log #optional
  13. restart: unless-stopped

run

docker-compose -f docker-compose.yml up -d

down

docker-compose -f docker-compose.yml down

3.代码工程

实验目的

实现将springboot应用日志发送到syslog-ng

pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>springboot-demo</artifactId>
  7. <groupId>com.et</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>syslog</artifactId>
  12. <properties>
  13. <maven.compiler.source>8</maven.compiler.source>
  14. <maven.compiler.target>8</maven.compiler.target>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>org.springframework.boot</groupId>
  19. <artifactId>spring-boot-starter-web</artifactId>
  20. <exclusions>
  21. <exclusion>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-logging</artifactId>
  24. </exclusion>
  25. </exclusions>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-autoconfigure</artifactId>
  30. </dependency>
  31. <dependency>
  32. <groupId>org.springframework.boot</groupId>
  33. <artifactId>spring-boot-starter-test</artifactId>
  34. <scope>test</scope>
  35. </dependency>
  36. <dependency>
  37. <groupId>org.springframework.boot</groupId>
  38. <artifactId>spring-boot-starter-log4j2</artifactId>
  39. </dependency>
  40. </dependencies>
  41. </project>

controller

  1. package com.et.syslog.controller;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RequestParam;
  6. import org.springframework.web.bind.annotation.RestController;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. @RestController
  10. public class HelloWorldController {
  11. private final Logger logger = LoggerFactory.getLogger(HelloWorldController.class);
  12. @RequestMapping("/hello")
  13. public Map<String, Object> showHelloWorld(@RequestParam("n") String name){
  14. logger.info("Say hello to {}", name);
  15. Map<String, Object> map = new HashMap<>();
  16. map.put("msg", "HelloWorld");
  17. return map;
  18. }
  19. }

log4j2-spring.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration>
  3. <Appenders>
  4. <Console name="ConsoleAppender" target="SYSTEM_OUT">
  5. <PatternLayout
  6. pattern="%style{%date{DEFAULT}}{yellow} %highlight{%-5level}{FATAL=bg_red, ERROR=red, WARN=yellow, INFO=green} %message%n"/>
  7. </Console>
  8. <Syslog name="Syslog" format="RFC5424" host="localhost" port="514"
  9. protocol="UDP" appName="liuhaihua.cn" facility="LOCAL0" />
  10. </Appenders>
  11. <Loggers>
  12. <Root level="info">
  13. <AppenderRef ref="ConsoleAppender"/>
  14. <AppenderRef ref="Syslog"/>
  15. </Root>
  16. </Loggers>
  17. </Configuration>

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

4.测试

  • 启动spring boot应用
  • 访问http://127.0.0.1:8088/hello?n=niki
  • 查看syslog-ng日志 (/var/log/messages,/var/log/messages-kv.log)

89129

5.引用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/850650
推荐阅读
相关标签
  

闽ICP备14008679号