一、概述
本文档详细描述了如何使用 Zabbix5 和 Rsyslog 实现对设备日志的收集、监控以及在满足特定条件下触发告警的完整流程,包括环境准备、Rsyslog 配置、Zabbix5 配置以及常见问题排查等内容。
二、环境准备
服务器环境
操作系统:CentOS(其他 Linux 发行版类似操作)
安装 Zabbix5 服务器端和客户端(根据实际情况,如果仅在一台服务器上实现,可只安装服务器端,但需确保有接收和处理日志的能力)。
确保服务器与要监控的设备之间网络连通。
日志收集,以某交换机为例:
交机器增加日志转发:
info-center loghost source Vlan-interface 10info-center loghost 10.112.112.112
设备 IP:10.1.1.1
设备名:i-pc-test-sw
日志存储位置(目标日志文件路径):/var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log
三、Rsyslog 配置
安装 Rsyslog(如果未安装)
在 Zabbix 服务器(IP 为 127.0.0.1)上,使用以下命令安装 Rsyslog:
yum install rsyslog
编辑 Rsyslog 配置文件实现基于文件大小的日志滚动及基础配置
# 定义模板,根据交换机的IP和日志来源程序名创建日志文件
$template SwitchLogs, "/var/log/zabbix/sw-logs/%FROMHOST-IP%/%PROGRAMNAME%.log"
# 设置日志文件的最大大小为 5M(5242880 字节)
$outchannel log_rotation, /var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log, 5242880, /var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log.archive
# 接收来自交换机的Syslog日志,并按照模板存储
:fromhost-ip, isequal, "10.1.1.1" -?SwitchLogs
# 将日志信息输出到定义的通道,并按照模板生成日志文件
*.*;auth,authpriv.none :omfile:$log_rotation;SwitchLogs
# 加载UDP模块,监听514端口接收Syslog消息(假设交换机通过UDP发送日志)
$ModLoad imudp
$UDPServerRun 514
创建日志存储目录并设置权限
创建 /var/log/zabbix/sw-logs/10.1.1.1 目录,并确保 Rsyslog 或 Zabbix 用户有写入权限。
mkdir -p /var/log/zabbix/sw-logs/10.1.1.1
chown -R zabbix:zabbix /var/log/zabbix/sw-logs/10.1.1.1
重启 Rsyslog 服务
systemctl restart rsyslog
四、Zabbix5 配置
创建主机
登录 Zabbix Web 界面,进入 “配置”->“主机”,点击 “创建主机” 按钮。
在创建主机页面填写以下信息:
主机名称:zabbix-Ser(与agentd服务同名,别外可以任意如:XXX-LOG-MONITOR)
IP 地址:127.0.0.1(agentd和rsyslog服务所在主机)
点击 “添加” 完成主机创建。
创建监控项
在创建的主机下,点击 “监控项” 选项卡,然后点击 “创建监控项” 按钮。
在 “创建监控项” 页面,进行以下配置:
名称:sw-01 Log Monitoring for Error
类型:选择 “Zabbix 客户端(主动式)” 或 “Zabbix 客户端”(根据实际情况,如果 Zabbix 代理主动向服务器发送数据则选择 “主动式”,反之选择 “客户端”,这里我们选主动式)。
键值:log[/var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log,error](此键值可根据需要监控的关键字进行修改,例如要同时监控 “error” 和 “loop”,则修改为log[/var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log,^(.error.|.loop.)$])
信息类型:选择 “文本”。
其他参数根据实际情况设置,如历史数据保留时间等,然后点击 “添加”。
创建触发器
在主机的 “触发器” 选项卡中,点击 “创建触发器” 按钮。
在 “创建触发器” 页面,进行以下配置:
名称:i-pc-test-sw Log Error Trigger
表达式:{zabbix-Ser:log[/var/log/zabbix/sw-logs/10.1.1.1/i-pc-test-sw.log,error].count(#1)}>0
(可根据实际情况调整时间范围和触发条件)然后点击 “添加”。
配置告警动作(可选)
配置告警媒介类型:点击 “管理”->“报警媒介类型”,确保已经配置了合适的告警通知方式,如邮件告警等。如果没有配置,可以点击 “创建媒体类型” 进行添加和配置。
创建告警动作:点击 “配置”->“动作”,创建一个新的动作。
名称:例如 “i-pc-test-sw Log Error Action”。
触发条件:选择刚才创建的 “i-pc-test-sw Log Error Trigger”。
执行操作:选择发送邮件等告警通知方式,并指定接收告警的用户或用户组。