Zabbix的大用处php
Zabbix从3.0以后就多了许多自带的监控项,比较经常使用的主要是CPU、内存、网卡这几方面的监控,可是做为一个合格的运维这远远的不够的,好比一些进程的状态,Nginx的会话状况,PHP的进程服务状态,Redis的键值,数据库的查询状况,服务器的温度等等这些都是咱们应该时刻关注的,觉得这些都对开发有必定的帮助,假如MySQL的查询过大多慢,那么开发看对应的监控找出问题所在,而后进行优化处理,还有就是能够对监控项设定必定的触发器完成自动化的操做,好比说,nginx平白无故的挂掉了,那么能够设置一个动做,先发一封邮件警告,而后尝试帮你重启服务,若是尝试重启不行,那么就再发邮件通知你问题严重了。
nginx
Zabbix自带的经常使用项redis
agent.ping --- 检测客户端可达性。返回nothing表示不可达,1表示可达数据库
system.cpu.load[] --- 检测CPU 负载。返回浮点数
vim
system.cpu.util[] --- 检测CPU 使用率。返回浮点数缓存
vfs.dev.read[] --- 检测磁盘读取数据。返回是 sps, ops, bps浮点类型,须要定义1024倍bash
vfs.dev.write[] --- 检测磁盘写入数据。返回是 sps, ops, bps浮点类型,须要定义1024倍服务器
...
运维
还有不少不少,可是我这里就不一一列举了,由于从3.0开始Zabbix支持中文还不错,小伙伴们能够看描述便可curl
Zabbix的自定义经常使用项
内存相关的自定义项
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/catram.conf UserParameter=ram.info[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}'
ram.info[Cached] --- 检测内存的缓存使用量,返回整数,须要定义1024倍
ram.info[MemFree] --- 检测内存的空余量,返回整数,须要定义1024倍
ram.info[Buffers] --- 检测内存的使用量,返回整数,须要定义1024倍
TCP相关的自定义项
vim /usr/local/zabbix/share/zabbix/alertscripts/tcp_connection.sh #!/bin/bash function ESTAB { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'ESTAB' | awk '{print $2}' } function TIMEWAIT { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'TIME-WAIT' | awk '{print $2}' } function LISTEN { /usr/sbin/ss -ant | awk '{++s[$1]} END {for(k in s) print k,s[k]}' | grep 'LISTEN' | awk '{print $2}' } $1 vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/cattcp.conf UserParameter=tcp[*],/usr/local/zabbix/share/zabbix/alertscripts/tcp_connection.sh $1
tcp[TIMEWAIT] --- 检测TCP的驻留数,返回整数
tcp[ESTAB] --- 检测TCP的链接数,返回整数
tcp[LISTEN] --- 检测TCP的监听数,返回整数
Nginx相关的自定义项
vim /etc/nginx/conf.d/default.conf location /nginx-status { stub_status on; access_log off; allow 127.0.0.1; deny all; } vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx.conf UserParameter=Nginx.active,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | awk '/Active/ {print $NF}' UserParameter=Nginx.read,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | grep 'Reading' | cut -d" " -f2 UserParameter=Nginx.wrie,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | grep 'Writing' | cut -d" " -f4 UserParameter=Nginx.wait,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | grep 'Waiting' | cut -d" " -f6 UserParameter=Nginx.accepted,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $1}' UserParameter=Nginx.handled,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $2}' UserParameter=Nginx.requests,/usr/bin/curl -s "http://127.0.0.1:80/nginx-status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $3}'
Nginx.active --- 检测Nginx正处理链接数,返回整数
Nginx.read --- 检测Nginx读取信息数,返回整数
Nginx.wrie --- 检测Nginx返回信息数,返回整数
Nginx.wait --- 检测Nginx驻留链接数,返回整数
Nginx.accepted --- 检测Nginx已处理链接数,返回整数
Nginx.handled --- 检测Nginx成功握手数,返回整数
Nginx.requests --- 检测Nginx成功请求数,返回整数
PHP相关的自定义项
vim /etc/nginx/conf.d/default.conf location /status { allow 127.0.0.1; deny all; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; fastcgi_pass unix:/dev/shm/php5-fpm.sock; } vi /etc/php-fpm.d/www.conf pm.status_path = /status vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/php.conf UserParameter=PHP.listenqueue,/usr/bin/wget --quiet -O - http://127.0.0.1:80/status?auto | grep "listen queue:" | grep -vE "len|max" | awk '{print $3}' UserParameter=PHP.idle,wget --quiet -O - http://127.0.0.1:80/status?auto | grep "idle processes" | awk '{print $3}' UserParameter=PHP.active,wget --quiet -O - http://127.0.0.1:80/status?auto | grep "active" | awk '{print $3}'| grep -v "process" UserParameter=PHP.conn,wget --quiet -O - http://127.0.0.1:80/status?auto | grep "accepted conn" | awk '{print $3}' UserParameter=PHP.reached,wget --quiet -O - http://127.0.0.1:80/status?auto | grep "max children reached" | awk '{print $4}' UserParameter=PHP.requests,wget --quiet -O - http://127.0.0.1:80/status?auto | grep "slow requests" | awk '{print $3}'
PHP.listenqueue --- 检测PHP队列数,返回整数
PHP.idle --- 检测PHP空闲进程数,返回整数
PHP.active --- 检测PHP活动进程数,返回整数
PHP.conn --- 检测PHP请求数,返回整数
PHP.reached --- 检测PHP达到限制次数,返回整数
PHP.requests --- 检测PHP慢请求数,返回整数
Redis相关的自定义项
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/redis.conf UserParameter=Redis.Status,/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6379 ping |grep -c PONG UserParameter=Redis_conn[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "connected_clients" | awk -F':' '{print $2}' UserParameter=Redis_rss_mem[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_memory_rss" | awk -F':' '{print $2}' UserParameter=Redis_lua_mem[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_memory_lua" | awk -F':' '{print $2}' UserParameter=Redis_cpu_sys[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_cpu_sys" | awk -F':' '{print $2}' UserParameter=Redis_cpu_user[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_cpu_user" | awk -F':' '{print $2}' UserParameter=Redis_cpu_sys_cline[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_cpu_sys_children" | awk -F':' '{print $2}' UserParameter=Redis_cpu_user_cline[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "used_cpu_user_children" | awk -F':' '{print $2}' UserParameter=Redis_keys_num[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep -w "$$1" | grep -w "keys" | grep db$3 | awk -F'=' '{print $2}' | awk -F',' '{print $1}' UserParameter=Redis_loading[*],/usr/local/redis/bin/redis-cli -h $1 -p $2 info | grep loading | awk -F':' '{print $$2}'
Redis.Status --- 检测Redis运行状态,返回整数
Redis_conn --- 检测Redis成功链接数,返回整数
Redis_rss_mem --- 检测Redis系统分配内存,返回整数
Redis_lua_mem --- 检测Redis引擎消耗内存,返回整数
Redis_cpu_sys --- 检测Redis主程序核心CPU消耗率,返回整数
Redis_cpu_user --- 检测Redis主程序用户CPU消耗率,返回整数
Redis_cpu_sys_cline --- 检测Redis后台核心CPU消耗率,返回整数
Redis_cpu_user_cline --- 检测Redis后台用户CPU消耗率,返回整数
Redis_keys_num --- 检测库键值数,返回整数
Redis_loading --- 检测Redis持久化文件状态,返回整数
欢迎提出需求
后续若是遇到新的监控项需求,这篇博客也会更新上去,假如你有什么想要监控的,但有不知道该怎么监控能够在下方的评论区留言我看到后将第一时间为你解答,就算我不会,也会有其余的小伙伴和你一块儿思考
固然,若是你很是关注监控运维的话,能够收藏这篇博客
待续。。。