一.监控端口
关系说明触发器: 根据客户端的脚本获取值,当客户端的某项值达到要求后,将发出告警 监控项:根据客户端的脚本获取值,可设定采集值得间隔时间,将值保留记录下来,可形成曲线图 应用集:用来分类存放监控项,比如将监控80,8080等web服务的监控项放在WEB应用集中,将监控22,21等小服务的监控项放入SMALL应用集中。 模板:模板是一套定义好的监控项的合集,任何主机连接模板,则将模板中的监控项等等在主机上应用,但要修改这些监控项只能去模板中修改,并且修改后其他连接的主机也会跟着变动。
操作1.创建模板,模板名称用来表示,这里监控端口,取名为Port,模板必须加入某群组,可单独创建群组来区分。 
2.创建应用集,应用集只用取名字即可 
3.创建监控项,名称用来区分监控的哪些值,可能是监控nginx的访问数量,也可能是mysql的读数量。 
键值有2种,一种是点击选择使用系统自带值,另一种自定义脚本key。 这里选择net.tcp.listen[port],通过telnet来查找某主机是否监听某端口,[port]填写需要监控的端口号。 4.创建触发器,{HOST.NAME}将获取主机名,用作报警显示。表达式点击添加,或复制其他自带触发器的值进行修改。 连接监控项,这个就是刚刚创建的监控项,其余不动。 
5.选择相应群组,从群组里找到刚建立的监控项。 
6.Port是模板名,如果这里选择写主机名或主机ip,则会变成单个主机的监控项,而不是模板的。 
二.监控服务关系说明脚本:执行脚本获得值 配置文件:允许自定义key,将key的键值和脚本获取值关联起来。 服务端测试: 服务端发送指令给客户端,客户端运行脚本获取值再返回给服务端。 操作1.创建脚本,用于获取值
cd /etc/zabbix/script vim web_status.sh
#!/bin/bashcase $1 inLian) netstat -anptu | grep 172.26.98.247:80 | wc -l ;;Ping) netstat -unltp | grep -w 80 &>/dev/null && echo 1 || echo 0 ;; *) echo "Lian | Ping" ;;esac 测试脚本 ./web_status.sh Ping ,看是否可以获得1 2.修改客户端配置文件,让他允许自定义key
vim /etc/zabbix/zabbix_agentd.conf Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf #加载其他配置文件UnsafeUserParameters=1 #开启允许自定义 Key systemctl restart zabbix-agent
3.修改配置文件,设定键值的名字和脚本所在位置,这样配置文件才能知道这个键值需要执行哪个脚本获得 web.ping是自定义的键值名字,后面是脚本路径
vim /etc/zabbix/zabbix_agentd.d/web_status.conf UserParameter=web.ping,/etc/zabbix/script/web_status.sh PingUserParameter=web.lian,/etc/zabbix/script/web_status.sh Lian 如果执行的是命令要用绝对路径,如下也能获取值,并不一定要用脚本。 比如 UserParameter=web.shu,/bin/netstat -anptu | wc -l 4.检测,客户端测试
zabbix_agentd -t web.ping #返回1则正确 服务端测试:
/ops/server/zabbix/bin/zabbix_get -s 192.168.1.1 -k web.ping #获得1则正确 5.出现(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) 是因为脚本中用netstat 这个命令,但是客户端使用zabbix这个用户启动脚本,没有权限用这个命令。 客户端执行chmod +x /bin/netstat 即可 网页操作: 键值是找不到的,手动写上,触发器的表达式也是连接这个监控项。
三.模板的导入和导出导入: 
导出: 选择模板拉倒最下面 
下载地址: 如何利用nginx做代理缓存浅析 Linux用户建立脚本/猜字游戏/网卡流量监控介绍 |