• zabbix日志监控:操作系统、业务系统、文件大小、多行日志



    zabbix日志监控:操作系统、业务系统、文件大小、多行日志



    1 监控操作系统日志

    监控Linux操作系统日志:以采集服务器的/var/VRTSvcs/log/engine_A.log举例:前提:采集服务器已部署agent,并且被监控的操作系统日志文件要赋予o+r权限

    (1)确认采集服务器的监控状态
    在这里插入图片描述

    (2)为采集服务器制作自定义监控日志文件的模板

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    (3)在配置->主机位置填写宏,然后选择更新

    在这里插入图片描述

    (4)在监测中->最新数据查看结果

    在这里插入图片描述

    (5)可以在被监控的日志文件添加一个带有“error”的内容,测试监控日志是否成功。


    2 监控业务系统日志

    利用zabbix agent监控windows系统下的应用自增日志且按需配置关键字告警

    场景概览:公司运维部门使用自建zabbix平台对公司某业务系统进行了监控。近段时间,该业务系统同事反映某应用平台提供服务时,经常发生应用页面404的情况,需要对该情况及时发现,并且能保留历史发生记录,希望运维人员协助他们进行此类日志监控。

    具体要求:

    (1) 日志文件以自增的方式产生,具有固定格式如ITSM-2022-09-26.log

    (2) 需要对新增日志监控频率达到每分钟一次

    (3)平台产生日志内容为 windows简体中文编码

    分析:

    (1)日志文件名每日更新,无法使用常用监控项log[*]
    在这里插入图片描述

    (2)日志文件产生的路径固定,且该路径下只有日志文件,文件名格式固定为ITSM-XXXX-XX-XX.log

    (3)日志文件编码为windows简体中文,可预设为GB2312编码格式

    操作:

    (1) 新建模板

    在这里插入图片描述

    (2)创建监控项

    在这里插入图片描述

    (3) 主机关联此模板,然后填写宏,填入路径参数及关键字参数

    在这里插入图片描述

    (4) 等待监控数据

    在这里插入图片描述

    (5)如有需要,可对监控项配置触发器进行关键字告警

    在这里插入图片描述


    3 监控日志文件大小

    下面将为大家讲解如何使用Zabbix创建自定义键值监控项,以监控系统日志文件大小。

    (1)在被管主机当中安装agent

    (2)在以下zabbix官网中下载对应操作系统的agent包

    点击此处跳转

    (3)将下载的agent包上传到操作系统,解压缩,并运行安装命令

    ① 解压agent包在这里插入图片描述

    [root@localhost sbin]# tar xvf zabbix_agent-6.2.2-linux-3.0-amd64-static.tar.gz

    ② 编写配置文件,修改参数

    [root@localhost sbin]# vim /root/conf/zabbix_agentd.conf

    在这里插入图片描述

    其中参数含义:

    
    Server=192.168.109.181 \#zabbix server ip
    
    ServerActive=192.168.109.181 \# zabbix server ip
    
    Hostname=192.168.109.149 \#本主机名
    
    HostMetadataItem=system.uname \#获取自身操作系统参数信息
    
    AllowRoot=1 \#运行以root用户运行agent
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    ③ 运行启动命令

    [root@localhost sbin]\# /root/sbin/zabbix_agentd -c /root/conf/zabbix_agentd.conf
    
    • 1

    ④ 使用ss -tnl检测10050端口是否存在,若存在即安装成功

    在这里插入图片描述

    (4) 在agent配置文件添加自定义键值

    ① 在agent配置文件添加自定义键值

    `[root@localhost sbin]\# vim /root/conf/zabbix_agentd.conf`
    
    • 1

    在这里插入图片描述

    其中参数含义:

    test #自定义键值的名称

    du -sh /var/log/messages|awk ‘{print $1}’ #获取数据所运行的命令或者是脚本,这里是命令

    ② 重启agent

    [root@localhost sbin]\# ps -ef\|grep zabbix
    
    • 1

    在这里插入图片描述

    [root@localhost sbin]\# kill 11881
    
    [root@localhost sbin]\# /root/sbin/zabbix_agentd -c /root/conf/zabbix_agentd.conf
    
    • 1
    • 2
    • 3

    注:其他部署方式:如何快速部署zabbix-agent客户端

    (5) 到zabbix server界面添加监控项

    ① 点击“配置”—> “主机” ,查询刚刚上线的被管节点的IP,最后点击监控项

    在这里插入图片描述

    ② 点击“创建监控项”

    在这里插入图片描述

    “名称” 可以自定义

    “类型” 选择zabbix客户端或者zabbix客户端(主动式)

    “键值” 填写上面我们在agent配置文件填写的自定义键值的名称

    最后点击“添加”

    在这里插入图片描述

    (6)查看最新数据

    ① 点击 “检测”à “最新数据” à 筛选刚刚添加的被管节点以及监控项

    在这里插入图片描述

    ② 如图,Zabbix监控系统文件日志大小已成功实现

    在这里插入图片描述


    4 多行日志监控- Python脚本优化

    通过Python对Zabbix进行日志监控,要求记录脚本日志位置避免出现重复告警,关键字的正则匹配和支持多关键字查询。

    通过Python脚本实现日志监控,要求

    (1)记录脚本检查日志位置,避免下次触发脚本的时候出现重复告警
    (2)关键字匹配支持正则
    (3)支持多个关键字查询,例如第一个关键字匹配到当之后在这个关键字的下N行再去匹配第二个关键字

    具体传参格式:

    python3 npar.py /u03/z.txt '(ORA-\|REEOR),(04030\|02011)' 2
    
    • 1

    第一个参数是日志路径,第二个参数是关键字,第三个参数为匹配到第一个表达式这种的关键字后再去地 N(2)行去匹配第二个关键词(04030|02011),具体脚本实现如下:

    import os
    import sys
    logtxt="logtxt.txt"
    def read_txt(files,start_line):
        data =[]
        data.append("")
        with open(str(files)+"", "r", encoding='UTF-8') as f:
            for line in f.readlines():
               line = line.strip('\n')  #去掉列表中每一个元素的换行符
               data.append(line)
            #记录本次的行数
            wirte_log(len(data)-1)
        if len(data)>start_line:
           return data[start_line-1:]
        else:
            print("开始行数大于文本文件总行数!")
    def wirte_log(lines):
        global logtxt
        with open(logtxt,"w") as file:   #”w"代表着每次运行都覆盖内容
                file.write(str(lines))
    def read_log():
        global logtxt
        if not os.path.exists(logtxt):
             with open(logtxt,"w") as file:   #”w"代表着每次运行都覆盖内容
                file.write(str(1))
        with open(logtxt+"", "r", encoding='UTF-8') as f:
             s_lines = f.readlines()
        print("从第"+str(s_lines[0])+"行开始")
        return s_lines[0]
    def deal_read_log(files, keyword, interval_line):
        keywords = keyword.replace("(","").replace(")","").replace("'","").replace('"','"').split(',')
        start_keywords=keywords[0].split("|")
        end_keywords = keywords[1].split("|")
        start_line=read_log()
        lines_data = read_txt(files,int(start_line))
        for_line=1
        while(for_line
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96

    接下来就是添加监控了。

    在agent的conf 文件里面添加UserParameter。

    在这里插入图片描述

    以上就是这一期zabbix日志监控的全部内容,谢谢观看。


    排版: 玩具熊
    初审: 王乐平
    复审: 二月二

    本文内容来源乐维社区文章,本工作室二次编辑,如有侵权,请联系我们。
    参考来源:
    zabbix监控操作系统日志
    zabbix6.0监控业务日志
    Zabbix技术分享——使用Zabbix监控系统日志文件大小
    Python脚本优化-Zabbix多行日志监控

  • 相关阅读:
    springboot与elasticsearch-7.16.2的基础CRUD使用——入门向
    【OpenCV 例程 300篇】242. 加速稳健特征检测算法(SURF)
    SCI如何审稿和修稿
    【C++刷题】优选算法——模拟
    【Docker】学习笔记(一)
    蓝牙bluetooth的framework层学习
    CalcPad(2) 单位设置和绘制图表
    周期性定时任务
    vulfocus——struts2-cve_2017_9791
    【Leetcode刷题Python】96. 不同的二叉搜索树
  • 原文地址:https://blog.csdn.net/hjx020/article/details/127966968