内容简介:Zabbix的大用处Zabbix从3.0之后就多了许多自带的监控项,比较常用的主要是CPU、内存、网卡这几方面的监控,但是作为一个合格的运维这远远的不够的,比如一些进程的状态,Nginx的会话情况,PHP的进程服务状态,Redis的键值,数据库的查询情况,服务器的温度等等这些都是我们应该时刻关注的,以为这些都对开发有一定的帮助,假如MySQL的查询过大多慢,那么开发看对应的监控找出问题所在,然后进行优化处理,还有就是可以对监控项设定一定的触发器完成自动化的操作,比如说,nginx无缘无故的挂掉了,那么可以
Zabbix的大用处
Zabbix从3.0之后就多了许多自带的监控项,比较常用的主要是CPU、内存、网卡这几方面的监控,但是作为一个合格的运维这远远的不够的,比如一些进程的状态,Nginx的会话情况,PHP的进程服务状态,Redis的键值,数据库的查询情况,服务器的温度等等这些都是我们应该时刻关注的,以为这些都对开发有一定的帮助,假如 MySQL 的查询过大多慢,那么开发看对应的监控找出问题所在,然后进行优化处理,还有就是可以对监控项设定一定的触发器完成自动化的操作,比如说,nginx无缘无故的挂掉了,那么可以设置一个动作,先发一封邮件警告,然后尝试帮你重启服务,如果尝试重启不行,那么就再发邮件通知你问题严重了。
Zabbix自带的常用项
agent.ping --- 检测客户端可达性。返回nothing表示不可达,1表示可达
system.cpu.load[] --- 检测CPU 负载。返回浮点数
system.cpu.util[] --- 检测CPU 使用率。返回浮点数
vfs.dev.read[] --- 检测磁盘读取数据。返回是 sps, ops, bps浮点类型,需要定义1024倍
vfs.dev.write[] --- 检测磁盘写入数据。返回是 sps, ops, bps浮点类型,需要定义1024倍
...
还有很多很多,但是我这里就不一一列举了,因为从3.0开始Zabbix支持中文还不错,小伙伴们可以看描述即可
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 $127.0.0.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 $80}' 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持久化文件状态,返回整数
欢迎提出需求
后续如果遇到新的监控项需求,这篇博客也会更新上去,假如你有什么想要监控的,但有不知道该怎么监控可以在下方的评论区留言我看到后将第一时间为你解答,就算我不会,也会有其他的小伙伴和你一起思考
当然,如果你非常关注监控运维的话,可以收藏这篇博客
待续。。。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。