Zabbix进阶实战!将告警推送到Syslog服务器详细教程

举报
乐维社区 发表于 2024/10/16 14:44:14 2024/10/16
【摘要】 需求场景:用户需要将zabbix产生的告警事件推送给rsyslog服务器,syslog服务器再对事件日志进行分析处理.环境配置信息服务器IP地址ZabbixServer192.168.200.195Rsyslog服务器192.168.200.128*Rsyslog服务器防火墙需要放通 UDP/514端口推送脚本需要修改实际Rsyslog服务器IP地址zabbix配置:1、新建脚本/usr/b...

需求场景:

用户需要将zabbix产生的告警事件推送给rsyslog服务器,syslog服务器再对事件日志进行分析处理.

环境配置信息

服务器

IP地址

ZabbixServer

192.168.200.195

Rsyslog服务器

192.168.200.128

*Rsyslog服务器防火墙需要放通 UDP/514端口

推送脚本需要修改实际Rsyslog服务器IP地址

zabbix配置:

1、新建脚本

/usr/bin/python3 /itops/zabbix/share/zabbix/alertscripts/kk.py '{EVENT.DATE} {EVENT.TIME}' {HOST.ID} {HOST.HOST} {EVENT.NSEVERITY} '{EVENT.NAME}'

zabbix内置支持的宏可以查阅zabbix官方手册

https://www.zabbix.com/documentation/6.0/zh/manual/appendix/macros/supported_by_location?hl=%E5%91%8A%E8%AD%A6

2、新建动作

3、上传脚本到 /itops/zabbix/share/zabbix/alertscripts 目录下

以下是推送syslog脚本kk.py

#!/usr/bin/python3
#_*_ coding:utf-8 _*_
#模拟发送syslog日志
###################
# make: 青灯
# version: v1.0
# date: 2024-5-28
###################

import socket
from datetime import datetime
import time
import sys


class Message:
def __init__(self):
self.syslog_server_ip = '192.168.200.128' # syslog服务器的IP地址
self.port = 514 # syslog的默认UDP端口
self.datetime=sys.argv[1].replace('.','-')
self.hostId=sys.argv[2]
self.hostname=sys.argv[3]
self.priority=int(sys.argv[4])
self.message=sys.argv[5]


def __call__(self):
if self.priority == 1:
priority_text = "信息"
elif self.priority == 2:
priority_text = "警告"
elif self.priority == 3:
priority_text = "次要"
elif self.priority == 4:
priority_text = "严重"
elif self.priority == 5:
priority_text = "紧急"
else:
priority_text = "未知"

alertMessage="{0},{1},{2},{3} {4}".format(self.datetime,self.hostId,priority_text,self.hostname,self.message)
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(alertMessage.encode('utf-8'), (self.syslog_server_ip,self.port))
sock.close()


if __name__ == "__main__":
main = Message()
main()

给脚本赋权

chmod 755 /itops/zabbix/share/zabbix/alertscripts/kk.py
chown itops: /itops/zabbix/share/zabbix/alertscripts/kk.py

Rsyslog配置

修改rsyslog服务主配置文件

vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
*.* ?RemoteLogsFile

主配置文件有引用子配置文件目录,不影响主配置文件,在子配置文件添加

创建 rsyslog配置子目录

mkdir /etc/rsyslog.d/
vi /etc/rsyslog.d/remote.conf
$template RemoteLogsFile,"/var/log/remotelogs/%fromhost-ip%/%fromhost-ip%.log"

重启rsyslog服务

systemctl stop rsyslog.service
systemctl start rsyslog.service

查看514端口是否启用

ss -nul

防火墙放通UDP/514端口

firewall-cmd --permanent --add-port=514/udp
firewall-cmd --reload

验证:

1、rsyslog服务器监听 UDP/514端口流量

tcpdump -i ens33 -A 'udp port 514' #ens33为网卡名称,以实际为准

2、zabbix手动关闭告警,触发产生新告警

3、rsyslog服务器记录产生的告警日志

syslog日志格式

May 27 16:16:37 2024-05-27 17: 51:49,10756,严重,TCP_192.168.200.1_57673 [TCP]192.168.200.1_57673_wpscloudsvr 端口持续3次探测异常

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。