rsyslog 安装与部署(亲测可用)

前言

目的: 通过rsyslog 将日志发送到kafka

思路: 远端将产生的日志通过rsyslog发送到服务器的rsyslog,本地的rsyslog将日志处理成想要的格式之后发送到kafka

用到的工具:rsyslog-kafka.x86_64 插件

实现过程

  • 在kafka的所有节点中创建一个主题 test
bin/kafka-topics.sh --create --bootstrap-server dn1:9092 --replication-factor 1 --partitions 1 --topic test

本地日志转发服务器进行以下配置

  1. 安装rsyslog+rsyslog-kafka
    通过yum安装,运行下列命令

(如果没有yum源 1.进入/etc/yum.repos.d 0 2.
运行:wget http://rpms.adiscon.com/v8-stable/rsyslog.repo)

# 安装rsyslog(centos7自带,不需要安装)
yum install rsyslog
# 安装 syslog-kafka插件
yum install rsyslog-kafka.x86_64
  • 安装完成后查看 /lib64/rysylog/中是否存在omkafka.so,验证rsyslog-kafka是否安装成功
  • 然后在/etc/rsyslog.conf 的#### MODULES ####的下面添加如下配置
# 加载omkafka和imptcp模块
module(load="omkafka")
module(load="imptcp") # needs to be done just once
 
# nginx template
设置模板处理接收到的数据格式
template(name="nginxAccessTemplate" type="string" string="%hostname%<-+>%syslogtag%<-+>%msg%\n")
 
# ruleset
ruleset(name="test-kafka") {
    #日志转发kafka
    action (
        type="omkafka"
		template="nginxAccessTemplate"
		#设置kafka的主题
        topic="test"
       	# 设置kafka集群,不同的机器端口用逗号隔开
        broker="dn1:9092,dn2:9092,dn3:9092"
    )
}
 
# 定义消息来源及设置相关的action

input(type="imptcp" port="514" Ruleset="test-kafka")
  • 修改完配置后运行:rsyslogd -N 1 或者 rsyslogd -dn 查看配置是否报错
  • 然后重启rsyslog:service rsyslog restart,重启后查看/var/log/message中日志是否报错
  • 在客户端的rsyslog的配置文件里面添加以下代码
mail.info     @@nna:514
  • 通过下面命令,重启客户端的rsyslog

    service rsyslog restart

  • 在kafka节点中运行以下命令等待获取kafka消息:

 bin/kafka-console-consumer.sh --bootstrap-server dn1:9092 --topic test --from-beginning
  • 在客户端中写用这个 输入这条命令logger -p mail.info “你的消息“ 测试

这样,在kafka中就能看到这条消息了。

附录

参考文档:

  1. rsyslog接收远端发来的日志 https://www.rsyslog.com/doc/v8-stable/configuration/modules/imptcp.html?highlight=tcp

  2. 日志系统详解

    [外链图片转存失败(img-J9F0CjnG-1564133192086)(rsyslog日志转发.assets/linux系统之日志文件系统详解.png)] 日志原文 https://blog.51cto.com/chrinux/1168233

  3. rsyslog客户与rsyslgo服务器使用到的模块与配置语法:

角色功能RPM包名模块配置语法
客户使用udp协议发送rsyslog-. @hostname:514
客户使用tcp协议发送rsyslog_. @@hostname:514
客户使用relp协议发送rsyslog-relpomrelp. :omrelp:hostnames:2514
服务器使用udp协议接收rsyslogimudp$ModLoad imudp $InputUDPServerRun 514
服务器使用tcp协议接收rsyslogimtcp$ModLoad imtcp $InputTCPServerRun 514
服务器使用relp协议接收rsyslog-relpimrelp$ModLoad imrelp $InputRELPServerRun 2514
服务器将日志记录到MySQLryslog-mysqlommysql$ModLoad ommysql .:ommysql:DBserver,DBname,DBuser,DBpasswd
服务器将日志记录到PostgreSQLrsyslog-pgsqlompgsql$ModLoad ompgsql .:ompgsql:DBserver,DBname,DBuser,DBpasswd
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值