Zabbix自定义监控

本文详细介绍Zabbix监控系统的配置步骤,包括Server端与Agent端的配置,如何编写监控脚本,以及如何在Web端创建模板、应用集、监控项、图形和触发器。适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建模板->应用集->监控项    

Server端配置(配置完重启生效)

配置zabbix_server.conf,指定脚本文件位置

# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/scripts/

Agent端配置(配置完重启生效)

1.配置zabbix_agent.conf

# vim /usr/local/zabbix/etc/zabbix_agentd.conf
调用配置文件位置
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
此项配置为1
UnsafeUserParameters=1

3.配置键值项和脚本文件位置

# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/UserParameter_script.conf
#Nginx
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/nginx_monitor.sh $1

#Mysql
UserParameter=mysql.status[*],/usr/local/zabbix/scripts/mysql_monitor.sh $1

#PHP-FPM
UserParameter=php-fpm.status[*],/usr/local/zabbix/scripts/php-fpm_monitor.sh $1

//这里的*和$1是对应的,来源是zabbix网页端创建监控项时候传入的键值

编写脚本,例如nginx_monitor.sh

# vim /usr/local/zabbix/scripts/nginx_monitor.sh

#!/bin/bash

HOST="localhost"
PORT="8000"
NGINX_COMMAND=$1

# 检测nginx进程是否存在
function nginx_process() {
    /usr/bin/pgrep nginx | wc -l
}
# 检测nginx性能
function nginx_active() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_reading() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_writing() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_waiting() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk '/Active/ {print $NF}'
}
function nginx_accepts() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function nginx_handled() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function nginx_requests() {
    /usr/bin/curl "http://$HOST:$PORT/NginxStatus/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}

# 执行function
#${NGINX_COMMAND}
case $NGINX_COMMAND in
        process)
        nginx_process;
        ;;
        active)
        nginx_active;
        ;;
        reading)
        nginx_reading;
        ;;
        writing)
        nginx_writing;
        ;;
        waiting)
        nginx_waiting;
        ;;
        accepts)
        nginx_accepts;
        ;;
        handled)
        nginx_handled;
        ;;
        requests)
        nginx_requests;
        ;;
        *)
        echo $"USAGE:$0 {process|active|reading|writing|waiting|accepts|handled|requests}"
        esac

WEB端配置

配置->模板->创建模板>创建应用集(应用集里包含监控项)->创建监控项(监控项中的键值传入数据就是脚本中$1变量)

创建图形

配置->模板->选择新创建的模板->图形->创建图形

在下方监控项里点击添加,将会列出监控项中监控的所有数据

创建触发器

配置->模板->选择新创建的模板->触发器->创建触发器(比如监控Nginx并发)

表达式->添加->选中监控Nginx并发的模板,功能中选择对应的匹配模式,结果中选择超过多少告警,点击插入

配置后结果如下

点解添加,触发器配置完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值