首页 > 其他分享 >Zabbix进阶实战!将告警推送到Syslog服务器详细教程

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

时间:2024-10-16 14:33:00浏览次数:6  
标签:__ 进阶 self zabbix priority Syslog Zabbix rsyslog 服务器

需求场景:

用户需要将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次探测异常。

标签:__,进阶,self,zabbix,priority,Syslog,Zabbix,rsyslog,服务器
From: https://www.cnblogs.com/lwops/p/18469895

相关文章

  • 【进阶OpenCV】 (14)-- 人脸识别 -- LBPH 算法
    文章目录LBPH算法一、基本思想二、LBPH算法步骤1.图像划分2.局部二值模式特征提取3.直方图统计4.特征向量生成5.相似度计算三、代码实现1.图像预处理2.创建一个LBPH的人脸识别器3.训练实例模型4.图像预测总结LBPH算法**LBPH(LocalBinaryPatternsHis......
  • 计算机网络基础进阶
    三次握手四次挥手三次握手1------建立连接----------------------2ACK=1,seq=02------传输数据,建立连接---------11------传输数据,建立连接---------2三次握手用于建立TCP连接,确保通信双方都准备好进行数据传输。整个过程涉及三次报文交换:第一次握手(客户端发送SYN):客户端......
  • JavaScript进阶--节流防抖以及技巧打磨
    打磨技巧深浅拷贝只针对引用类型浅拷贝拷贝的是值,但引用数据类型的值为地址方法:Object.assign(newobj,oldobj)Array.concat(newArr,oldArr)配合展开运算符...比较复制复制相当于把将要复制对象的地址,直接进行获取,而不是创建一个新的对象,赋予属性的值和名//实......
  • 前端进阶之路:推荐几本不可错过的前端开发书籍
    前端开发是一个不断更新换代的领域,作为一名前端工程师,持续学习和提升自己是至关重要的。阅读专业书籍是系统学习前端知识的一种有效方式。以下是一些前端开发者不可错过的书籍推荐,帮助你巩固基础,拓宽视野,成为更优秀的前端工程师。一、《JavaScript高级程序设计》(第4版) 作者......
  • AI绘画StableDiffusion零基础入门—文生图:全面解析AI绘画中提示词的妙用和各种语法,Pro
    AI绘画的一个必不可少的环节就是告诉AI描述画面的Prompt(提示词),但是这种很长很乱、穿插着各种奇怪的数字符号、高深莫测的提示词,究竟在说着什么?难道真的是咒语吗?魔法?咒语?你绝对不曾想到,有生之年竟然能迎来这么一个奇迹时代:画画竟然还能用魔法,岂不是只要会念咒、人人都......
  • vue2进阶篇:vue-router之命名路由
    @目录10.6命名路由案例:将案例改为“命名路由”完整代码本人其他相关文章链接10.6命名路由注意点1:命名路由请使用name属性,替换掉path属性的作用,且name直接指定名称即可,而path必须指定3级目录(path=’/demo/test/welcome’)才行。注意点2:name属性必须包裹在<router-link>标签......
  • day07=集合进阶(Set、Map集合)
    day07——集合进阶(Set、Map集合)一、Set系列集合1.1认识Set集合的特点Set集合是属于Collection体系下的另一个分支,它的特点如下图所示下面我们用代码简单演示一下,每一种Set集合的特点。//Set<Integer>set=newHashSet<>(); //无序、无索引、不重复//Set<Integer>set=......
  • day06-异常、集合进阶(Collection、List集合)
    day06—集合进阶(异常、集合)一、异常1.1认识异常接下来,我们学习一下异常,学习异常有利于我们处理程序中可能出现的问题。我先带着同学们认识一下,什么是异常?我们阅读下面的代码,通过这段代码来认识异常。我们调用一个方法时,经常一部小心就出异常了,然后在控制台打印一些异常信息......
  • 浅谈 K-D Tree 及其进阶应用
    前言\(\text{K-DTree(K-DimensionTree)}\)是一种可以有效处理高维信息的数据结构。在一般信息学竞赛题目中\(k=2\),此时它又称\(\text{2-DTree}\)。但遗憾的是,\(k\ge3\)的情况并不常见,这个我们后面再说明原因。算法描述问题首先从简单的情况考虑起,假设信息只有一......
  • 【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目
    文章目录项目:答题卡识别改分1.图片预处理2.描绘轮廓3.轮廓近似4.透视变换5.阈值处理6.找每一个圆圈轮廓7.将每一个圆圈轮廓排序8.找寻所填答案,比对正确答案8.1思路8.2图解8.3代码体现9.计算正确率总结项目:答题卡识别改分本篇我们来介绍,如何识别一张答......