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}'
}
$1vim /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.conflocation /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.status,[[ `service nginx status` =~ 'running' ]] && echo 1 || echo 0
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.status --- Nginx 服务状态,返回0表示异常,1表示正常
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.conflocation /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 = /statusvim /usr/local/zabbix/etc/zabbix_agentd.conf.d/php.conf
UserParameter=PHP.status,[[ `service php-fpm status` =~ 'running' ]] && echo 1 || echo 0
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.status --- PHP 服务状态,返回0表示异常,1表示正常
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持久化文件状态,返回整数

MySQL相关的自定义项

vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql.conf
UserParameter=mysql.status,[[ `service mysqld status` =~ 'running' ]] && echo 1 || echo 0
UserParameter=mysql.Slave_IO_Running,[[ `mysql -uroot -p'123456'  -h127.0.0.1 3 -e 'show slave status\G;' | grep Slave_IO_Running` =~ 'Yes' ]] && echo 1 || echo 0
UserParameter=mysql.Slave_SQL_Running,[[ `mysql -uroot -p'123456'  -h127.0.0.1 -e 'show slave status\G;' | grep Slave_SQL_Running` =~ 'Yes' ]] && echo 1 || echo 0
UserParameter=mysql.Threads_connected,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $4}'
UserParameter=mysql.Questions,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $6}'
UserParameter=mysql.Slow_queries,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $9}'
UserParameter=mysql.Opens,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $11}'
UserParameter=mysql.Flush_tables,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $14}'
UserParameter=mysql.Open_tables,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $17}'
UserParameter=mysql.Queries_per_second_avg,mysqladmin -uroot -p'123456' -h127.0.0.1 status | awk -F' ' '{print $22}'

mysql.status --- MySQL 服务状态,返回0表示异常,1表示正常
mysql.Slave_IO_Running --- Slave IO 状态,返回0表示异常,1表示正常
mysql.Slave_SQL_Running --- Slave SQL 状态,返回0表示异常,1表示正常
mysql.Threads_connected --- 指开启的会话数,返回整数
mysql.Questions --- 服务器启动以来客户的问题查询查询数目,返回整数
mysql.Slow_queries --- 按字面意思是慢查询的意思,返回整数
mysql.Opens --- 服务器已经打开的数据库表的数量,返回整数
mysql.Flush_tables --- 服务器已经执行的flush ...、refresh和reload命令的数量,返回整数
mysql.Open_tables --- 通过命令是用的数据库的表的数量,以服务器启动开始,返回整数
mysql.Queries_per_second_avg --- select语句平均查询时间,返回浮点数

欢迎提出需求

后续如果遇到新的监控项需求,这篇博客也会更新上去,假如你有什么想要监控的,但有不知道该怎么监控可以在下方的评论区留言我看到后将第一时间为你解答,就算我不会,也会有其他的小伙伴和你一起思考当然,如果你非常关注监控运维的话,可以收藏这篇博客

待续。。。

Zabbix常用监控项相关推荐

  1. zabbix常用监控项解读

    CPU来源模板:Template Module Linux CPU by Zabbix agent 内存(memory)来源模板:Template Module Linux memory by Zab ...

  2. 70 Zabbix自定义监控项

    一.背景 zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求.有时候由于业务需求,需要自定义监控项. 下面以创建监听TCP连接数自定义监控项为例,分享如何创建zabbix自定义监控项. ...

  3. [zabbix][问题解决]监控项 Received value [] is not suitable for value type [Numeric(float)]

    [zabbix][问题解决]监控项 Received value [] is not suitable for value type [Numeric(float)] 参考文章: (1)[zabbix ...

  4. zabbix Trapper 监控项配置(39)

    一,概述 zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbi ...

  5. zabbix自定义监控项及触发动作

    zabbix自定义监控项: 在上一篇文章中,我们通过添加模板,zabbix自动为我们创建了很多监控项,但是往往模板中的监控项并不能满足我们业务需要,我们时常需要自己根据业务需要创建一系列的监控项,也成 ...

  6. zabbix计算型监控项函数last_zabbix 自定义key类型之计算(Calculated items)-阿里云开发者社区...

    计算类型的key定义主要是根据已定义过的key值来计算的.例如创建一个计算linux服务器内存实际使用大小的监控项(计算方法为:vm.memory.size[total]-vm.memory.size ...

  7. zabbix计算型监控项函数last_面试官:如何用zabbix实现监控linux服务器进程使用率...

    概述 今天主要介绍怎么用zabbix来监控linux服务器进程使用率,下面一起来看看吧~ 1.配置监控项 proc.num 是用来统计某些状态的进程数量的. proc.num[,,,] name - ...

  8. Zabbix添加监控项及配置邮件报警

    Zabbix邮件报警的大致流程如下: 监控主机---->监控项---->触发器---->告警动作---->告警方式---->告警用户 首先添加监控项 1.选择要添加监控项 ...

  9. (30)zabbix Trapper 监控项配置

    概述 zabbix获取数据有超时时间,如果一些数据需要执行比较长的时间才能获取的话,那么zabbix会出现异常,考虑到这种情况,zabbix增加了Trapper功能,客户端自己提交数据给zabbix, ...

最新文章

  1. Beta--冲刺阶段合集
  2. 项目经验分享——Java常用工具类集合 转
  3. 【错误记录】Flutter / Android 报错 ( AAPT: error: attribute android:requestLegacyExternalStorage not found )
  4. Java Spring Data Redis实战与配置参数详解 application.properties...
  5. sqlite3 select查询一列_一眼就会的sqlite3数据库
  6. MessageFormat占位符使用
  7. Centos7.x 装机优化
  8. C4D快速入门教程——倒角
  9. 17 张程序员专属壁纸,太太太太太太骚了…
  10. android json 转map,json字符串转map
  11. 超市仓库管理系统(过期提醒)
  12. 局域网服务器配置一个无线路由,局域网怎么增加无线路由器
  13. 自建ngrok私服, 总是提示 Tunnel xxx.ngrok.mydomain.com not found
  14. 三角网格剖分工具 Triangle 安装及使用
  15. 电脑主板线路连接图解_跳线接法图解 主板开机线接法图解
  16. IT经理的两条职业路做管理还是管理咨询
  17. 【JKD源码】String 三兄弟
  18. mysql dos入门_【Mysql】初学命令行指南
  19. java实现第二届蓝桥杯地铁换乘(C++)
  20. 全功能 Visual Studio 组件集 ComponentOne 2018V2发布,提供轻量级的 .NET BI 仪表板

热门文章

  1. matplotlib.pyplot绘制常见激活函数图像
  2. 阿里巴巴内部资料:2020最全Java技术栈PPT分享(架构篇+算法篇+大数据)
  3. 如何提升数据分析能力,数据分析的正确步骤
  4. TCAD软件(Sentaurus、Silvaco、Medici、Tsuprem4)安装总结
  5. Win10笔记本开启热点后无法正常联网怎么办?
  6. Modality-Adaptive Mixup and Invariant Decomposition for RGB-Infrared Person Re-Identification(逐句分析)
  7. linux ssd iops测试,Linux系统硬盘的IOPS测试
  8. DaisyDisk for Mac 4.6.1 中文破解版下载 查找删除无用的文件
  9. eclipse智能提示设置
  10. UVM TLM通信简介