路由器、交换机、负载均衡、入侵防护系统等网络设备,可以通过syslog输出日志,您使用本地的中央rsyslog转发这些日志给日志易。
大多数网络设备使用旧的非结构化的日志格式,并使用udp协议传输。日志易使用新的rfc5424标准来结构化日志,我们选择更可靠的tcp传输协议,我们将展示将旧日志转换为这种新的标准格式配置linux系统的rsyslog协议进行转发。
添加udp输入
创建一个新的udp配置文件或打开现有的:
sudo vim /etc/rsyslog.d/forward_udp_2_tcp.conf
复制并粘贴此配置启用syslog,默认 udp输入端口为514,会通过tcp协议转发数据到collector01的5140端口
# modules
$modload imudp
$udpserverrun 514
# log every host in its own directory
$template remotehost,"/data/syslog/%$year%-%$month%-%$day%/%hostname%.log"
# 写本地文件
$template localfileformat,"%timestamp:::date-rfc3339% %hostname% %syslogfacility-text% %syslogseverity-text% %syslogtag%%msg%\n"
# 写远程collector,这里将appname固定为"switch",注意修改token和tag
$template rizhiyiformat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% switch %procid% %msgid% [[email protected] tag=\"udp\"]%msg%\n"
# 发送数据,注意修改collector01为具体的collector地址
#if $inputname == 'imudp' then ?remotehost;localfileformat
if $inputname == 'imudp' then @@collector01:5140;rizhiyiformat
if $inputname == 'imudp' then ~
重启rsyslog进程:
#如果是centos 7及以上版本,重启此服务命令为:
$sudo systemctl restart rsyslog.service
#否则为
$sudo service rsyslog restart
发送一条测试日志
使用netcat发送一条测试日志,使用rsyslog来验证能够接收udp信息:
echo ":hello" | nc -u -w 1 localhost 514
该消息应显示在您的系统日志和日志易中:
tail -f /data/syslog/$(date %y-%m-%d)/localhost.log
配置网络设备
获取本地中央rsyslog的ip地址,然后配置网络设备发送日志到这个ip,请查看您的设备文档如何配置。
ifconfig eth0
校验
搜索日志易中过去一小时的网络设备日志。这可能需要几十秒钟的时间来索引日志。如果它没有正常工作,请参阅下面的疑难解答。
如果您在验证时看不到搜索结果,请检查下列常见问题
建立索引可能需要几十秒钟,请稍等
请使用类似linux的tcpdump进行抓包分析,查看本地中央rsyslog服务器是否从网络设备接收到udp消息