zabbix监控nginx模板

zabbix监控nginx模板

浏览次数:
信息来源: 用户投稿
更新日期: 2025-10-18
文章简介

本项目的目的是构建一个能实现微信告警的zabbix监控系统,方便的监控整个NGINX集群,同时能批量的去部署和管理整个集群。zabbix服务端(192.168.2.138)安装好zabbixserve

2025阿里云双十一服务器活动

本项目的目的是构建一个能实现微信告警的zabbix监控系统,方便的监控整个NGINX集群,同时能批量的去部署和管理整个集群。

  • zabbix服务端(192.168.2.138)安装好zabbixserver,nginx端安装好zabbixagent(192.168.2.58),配置好Nginx负载均衡集群,并打开状态统计。

  • nginx端编写监控脚本,取到nginx的状态。

  • 服务端web添加监控项,出图。

  • 注册企业微信,配置好微信接口。

  • zabbix服务端添加接口推送脚本,测试接口正常。

  • 在web端配置报警媒介,群组和用户,添加相关触发器和动作。

  • nginx关停服务,测试是否能通过微信告警。

  • 在测试接收消息过程中,返回值一直是参数{ALTER.MESSAGE},排查脚本问题,版本问题,最后发现是参数{ALERT.MESSAGE},所以打字一定要细心,认真。同时对监控也有了一定的认识,运维人员不可能7*24小时盯着zabbix看,所以做到及时告警是非常必要的,对之前的高可用web集群项目叶可以进行完善。

    zabbix-agent客户端nginx配置监控

    nginx打开状态统计功能

    nginx配置增加stub_status模块

    stub_status;}

    测试状态统计功能是否打开

    nginx端(zabbix客户端)编写监控脚本

    cd/etc/zabbix/zabbix_agentd.d

    #在zabbix_agentd.d目录下编写监控脚本

    vimzabbix-nginx_status.sh

    #!/bin/bash

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'/Active/{print$NF}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==3{print$1}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==3{print$2}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==3{print$3}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==4{print$2}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==4{print$4}'

    curlhttp://192.168.2.58:80/wyt_status2>/dev/null|awk'NR==4{print$NF}'

    #通过查询进程PID值,测试nginx存活状态

    esac

    vimuserparameter_nginx.conf

    #在zabbix_agentd.d目录下自定义参数配置文件

    UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/zabbix-nginx_status.sh$1

    chmod+xzabbix-nginx_status.sh

    servicezabbix-agentrestart

    zabbix_get-knginx.status[ping]-s192.168.2.58

    #去服务端测试是否返回参数1

    zabbix-server-web配置监控

    先创建nginx主机master-nginx

    zabbix监控nginx模板

    除nginx-ping,nginx-accepts外,需要添加所有状态监控项,只有nginx-ping创建触发器,这里不一一举例。

    添加好所有监控项,下一步制图,图中包含所有监控项

    因为我们监控实际上就是在一直请求,所以看到nginx-requests在不断增加。

    注册成功之后创建一个运维部门

    创建成功后,查看信息记住自己的AgentId和Secret

    微信扫码企业微信插件就可以在微信接收消息

    zabbix-server接口脚本配置告警

    cd/usr/lib/zabbix/alertscripts

    vimweixin.sh

    #!/bin/bash

    CorpID="wwaa6fb8ff1b81aa77"#你的企业id

    Secret="Cxyd*****"#你的SecretID

    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"

    Token=$(/usr/bin/curl-s-G$GURL|awk-F":'{print$4}'|awk-F"'{print$2}')

    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"

    localintagentid=1000002#你的agentdid

    localUserID="@all"#发送的用户ID

    localMsg=$(echo"$@"|cut-d""-f3-)#发送给所有人

    printf' "touser":"'"$UserID""",

    printf' "toparty":"'"$PartyID""",

    printf' "msgtype":"text",

    printf' "agentid":"'"$agentid""",

    printf' "content":"'"$Msg"""

    /usr/bin/curl--data-ascii"$(body$1$2$3)"$PURL

    测试脚本能否正常接收消息

    然后我们回到zabbix-server-web配置

    zabbix-server-web配置告警

    管理->报警媒介类型->创建媒体类型

    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生{TRIGGER.NAME}故障!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

    恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}告警时间:{EVENT.DATE}{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}告警项目:{TRIGGER.KEY1}问题详情:{ITEM.NAME}:{ITEM.VALUE}当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}事件ID:{EVENT.ID}

    zabbix-agent关停nginx服务测试

    新建一个测试群聊,在群里添加机器人,记住webhook地址

    除了使用Shell脚本配置接口之外,还可以使用Python脚本

    headers={'Content-Type':'application/json;charset=utf-8'}

    api_url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=****”

    printrequests.post(api_url,json.dumps(json_text),headers=headers).content

    pythonweixin.pytest

    web配置同上

    以上就是Zabbix自定义脚本监控nginx及微信告警的方法的详细内容,更多请关注主机测评网其它相关文章!

    标签:
    搬瓦工澳大利亚VPS怎么样详细测评(澳大利亚搬砖工)
    « 上一篇
    返回列表
    下一篇 »

    如本文对您有帮助,就请抽根烟吧!