
211工程院校贵州大学管理学院硕士研究生、全国百强城商行资讯科技部五级专技工程师、互联网金融行业资深DevOps研发工程师、金融科技运维自动化平台研发项目经理。曾在国内多家知名互联网公司 平安科技、微众银行、顺丰科技、魅族任职. 具有多年国内一线互联网公司自动化运维平台设计与开发经验。
1
前言
2
实验拓扑图

3
Rsyslog方案
Linux系统日志机制的核心是rsyslog守护进程,它负责监听系统在运行过程中产生的日志信息并将日志信息追加写入到对应的日志文件中,同时rsyslog守护进程也支持接收从远端发来的日志数据,实现对数据中心内各类设备产生的日志集中存储并持久化。rsyslog服务的配置文件位于/etc/rsyslog.conf中,配置包含全局配置与规则两部分。在全局配置项下定义了rsyslog守护进程的全局属性,如主信息队列大小(
R1(config)#logging onR1(config)#logging trap debuggingR1(config)#logging host 172.16.70.143R1(config)#logging source-interface f0/0R1(config)#logging facility local4
3.2.1. 修改rsyslog启动参数
[root@localhost ]# vim etc/sysconfig/rsyslogSYSLOGD_OPTIONS="-r"
3.2.2 修改rsyslog配置文件
[root@localhost ]# vim etc/rsyslog.conf# 取消以下配置注释, rsyslog监听TCP与UDP514端口,接收外来日志# Provides UDP syslog reception$ModLoad imudp$UDPServerRun 514# Provides TCP syslog reception$ModLoad imtcp$InputTCPServerRun 514local4.* var/log/cisco.log# 与网络设备上配置的logging facility对应, 接收的外来日志保存在local4下, 所有等级的日志都写入到指定的日志文件中
3.2.3 重启服务
[root@localhost local]# systemctl restart rsyslog
3.3 验证配置
在网络设备上随意配置一些命令,如端口的up/down,使设备产生日志,观察日志服务器是否能收到日志信息。如下所示:

4
filebeat方案
[root@localhost local]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-linux-x86_64.tar.gz[root@localhost local]# tar -xzvf filebeat-7.10.1-linux-x86_64.tar.gz
4.1.2 配置文件解析
配置文件位于filebeat家目录中的/usr/local/filebeat-7.6.2/filebeat.yml中,filebeat支持多种output,但在本文中使用文件作为输出,修改配置文件,添加以下内容
output.file:path: "/tmp/filebeat"filename: filebeat_cisco.log
此处需要注意的是,filebeat可以同时设置多个input,但output只能有一个,此处我们使用的output类型为本地文件,但实际环境中,通常将output设置为Elasticsearch搜索引擎或Kafka消息队列,以便后续对日志检索或流式处理。继续配置input,此处我们采用配置syslog型输入,添加配置如下
filebeat.inputs:- type: syslogprotocol.udp:host: "172.16.70.143:9000"filebeat.inputs:- type: syslogprotocol.tcp:host: "172.16.70.143:9000"
综上,filebeat启动后将监听TCP与UDP的9000端口。
4.1.3 启动服务
[root@localhost filebeat-7.13.0]# nohup ./filebeat -e -c filebeat.yaml &
4.1.4 验证服务

4.2 网络设备配置
R1(config)#logging onR2(config)#logging trap debuggingR2(config)#logging source-interface FastEthernet0/0R2(config)#logging host 172.16.70.143 transport tcp port 9000R2(config)#logging host 172.16.70.143 transport udp port 9000
注: R1与R2相同配置
4.3 验证配置
在网络设备上随意配置一些命令,如端口的up/down,使设备产生日志,观察日志服务器是否能收到日志信息,如下图所示:

综上,日志接收成功,filebeat为原始日志附加了很多内容,原始数据保存在JSON结构的Message字段中。
5
结束语






