Syslog日志采集

Syslog日志采集需要syslog客户端syslog服务端客户端负责发送日志、服务端负责采集。
服务端可以是linux系统的rsyslog服务,也可以是Java程序服务、也可以是第三方Filebaet服务。

1、Linux rsyslog服务

Linux系统一般自带rsyslog服务,可修改配置指定此设备属于客户端还是服务端。

1.1、安装rsyslog

#查询是否安装rsyslog
$ rpm -qa | grep rsyslog
#更新或安装rsyslog
$ sudo yum install rsyslog
#$ sudo apt-get install rsyslog
#$ sudo apk add rsyslog

1.2、配置客户端

客户端虚机地址:192.168.154.111,服务端地址:192.168.154.222
修改/etc/rsyslog.conf,添加如下配置

#第一个*表示所有的日志类别,
#192.168.154.222是服务端地址,
#一个@表示使用UDP协议,两个表示使用@TCP协议
*.*   @192.168.154.222  

重启服务:

systemctl restart rsyslog

1.3、配置服务端

修改/etc/sysconfig/rsyslog配置文件

SYSLOGD_OPTIONS="-r -c 5"

修改/etc/rsyslog.conf 配置文件

#使用UDP接收方式:
$ModLoad imudp
$UDPServerRun 514
 
#日志存放位置:客户端传来的日志记录在remote.log中
*.* /var/log/syslog/remote.log

重启服务:

systemctl restart rsyslog

在客户端测试产生日志

$ logger 'hello world'

此时客户端产生的所有日志都会传输至服务端,并保存在服务端的/var/log/syslog/remote.log文件中

2、Filebeat 服务端

2.1、安装Filebeat

#1、下载
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.3.2-linux-x86_64.tar.gz
#2、解压
tar xzvf filebeat-8.3.2-linux-x86_64.tar.gz

2.2、配置Filebeat

进入安装目录,修改filebeat.yml文件

#输入:日志类型:syslog; 日志格式:rfc3164; 使用协议:udp; 服务端地址(本机ip)和端口
filebeat.inputs:
- type: syslog
  format: rfc3164
  protocol.udp:
    host: "0.0.0.0:514"

#输出:直接打印至控制台,也可输出至es、kafka、logstash等。
output.console:
  pretty: true
  
#filebeat.inputs:
#- type: syslog
#  format: rfc5424
#  protocol.tcp:
#    host: "localhost:9000"

启动filebeat:

./filebeat -e -c filebeat.yml

客户端配置都一样,同上文 1.2、配置客户端
即可采集到客户端产生的所有系统日志。

Filebeat日志采集详细使用说明:Filebeat+Kafka+ELK日志采集(二)——Filebeat

3、Java程序服务端

引入syslog依赖包

<dependency>
  <groupId>org.graylog2</groupId>
  <artifactId>syslog4j</artifactId>
  <version>0.9.60</version>
</dependency>

3.1、服务端代码


        //传入UDP协议参数实例化具体服务器
        SyslogServerIF serverIF = SyslogServer.getInstance(SyslogConstants.UDP);
        //从服务器里获取配置信息变量
        SyslogServerConfigIF config = serverIF.getConfig();
        //设置监听地址0.0.0.0为监听网络内全部地址
        //设置监听地址为514,514为syslog默认地址
        config.setHost("0.0.0.0");
        config.setPort(514);
        //放入接收方法
        config.addEventHandler(new SyslogServerSessionEventHandlerIF() {
            @Override
            public Object sessionOpened(SyslogServerIF syslogServerIF, SocketAddress socketAddress) {
                return null;
            }
            @Override
            public void event(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress,
                              SyslogServerEventIF syslogServerEventIF) {
                System.out.println("receive from:" + socketAddress + "	message" + syslogServerEventIF.getMessage());
            }
            @Override
            public void exception(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress, Exception e) {
            }
            @Override
            public void sessionClosed(Object o, SyslogServerIF syslogServerIF, SocketAddress socketAddress, boolean b) {
            }
            @Override
            public void initialize(SyslogServerIF syslogServerIF) {
            }
            @Override
            public void destroy(SyslogServerIF syslogServerIF) {
            }
        });
        //初始化服务器
        serverIF.initialize(SyslogConstants.UDP, config);
        //设置服务器变量,用来外部调用关闭
        setServerIF(serverIF);
        //服务器启动
        serverIF.run();
        System.out.println("server start udp");

客户端配置都一样,同上文 1.2、配置客户端
服务端代码启动后,即可接收客户端所有系统日志。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用中的信息,可以在spartacus_datacollection/src/main/java/spartacus_services/syslog_service目录下建立一个syslog_service.java类文件,作为syslog模块的入口。 根据引用中的信息,可以使用任务队列来处理发现资产,将多线程运行转为单线程处理,以避免性能下降和数据脏读现象。可以参考syslog_queuefactory类的实现来进行处理。 根据引用中的信息,可以在spartacus_datacollection/src/main/resources/config目录下建立sysconf.ini文件,作为系统配置文件,其中可以设置syslog_config的选项,包括绑定的IP地址和端口号。 因此,可以使用syslog协议进行数据采集,通过syslog_service.java类作为入口,使用任务队列来处理数据,并在sysconf.ini文件中进行配置。请根据具体需求进行代码的编写和配置的设置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [进击的大数据(十)数据采集模块开发——syslog日志采集服务 _udp网络通信](https://blog.csdn.net/FormatWindowsXP/article/details/108344693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [进击的大数据(十一)数据采集模块开发——syslog日志采集服务_多线程入库](https://blog.csdn.net/FormatWindowsXP/article/details/108356047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值