ewreew 发表于 2017-3-15 10:46:38

zabbix自定义监控项

1. 编辑客户端配置文件/etc/zabbix/zabbix_agentd.conf
    内容:
    UnsafeUserParameters=1

    # UserParameter=my.net.if[*], /usr/local/sbin/zabbix/net.sh $1 $2
    UserParameter=process.nginx.memory, /tmp/shell/processstatus.sh nginx
    UserParameter=process.nginx.cpu, /tmp/shell/processstatus.sh nginxcpu
    UserParameter=process.mysql.memory, /tmp/shell/processstatus.sh mysql
    UserParameter=process.mysql.cpu, /tmp/shell/processstatus.sh mysqlcpu

   

    说明:增加这一行,其中UserParameter用来自定义键值my.net.if,有参数时,需要加[*],没有参数则省略[*];逗号后面为脚本或命令路径,以及参数变量
    格式:
             UserParameter=key[*],command
   key为唯一值,[*]表示参数。
   command为要执行的命令或脚本,key的[*]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令。返回结果
                数据最大为512KB

2. 编辑脚本/tmp/shell/processstatus.sh,并授执行权限+x
    内容:   

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
#! /bin/bash
##
mysql() {
ps aux|grep 'mysqld' |grep -v "grep" |awk '{sum+=$6}; END{print sum}'
}

mysqlcpu() {
ps aux|grep 'mysqld' |grep -v "grep" |awk '{sum+=$3}; END{print sum}'
}

nginx() {
ps aux|grep 'nginx' |grep -v "grep" |awk '{sum+=$6}; END{print sum}'
}

nginxcpu() {
ps aux|grep 'nginx' |grep -v "grep" |awk '{sum+=$3}; END{print sum}'
}

case "$1" in
mysql)
mysql
;;
mysqlcpu)
mysqlcpu
;;
nginx)
nginx
;;
nginxcpu)
nginxcpu
;;
*)
echo "Usage:$0 (mysql|mysqlcpu|nginx|nginxcpu)"
;;
esac





3. 重启客户端,并在服务端测试脚本是否生效
    /etc/init.d/zabbix-agent restart

    zabbix_get -s 172.16.115.162 -p10050 -k process.mysql.memory



4. 服务端,web上依次添加监控项



5. 查看结果






fireover 发表于 2017-3-15 17:43:44

666666666666666
页: [1]
查看完整版本: zabbix自定义监控项