简单的方法:通过端口号或者进程数量
服务 端口 进程
Rsync 873 ?
NFS 111? ?
MySQL 3306 ?
Nginx 80 ?
怎么监控端口? net.tcp.listen[port]检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听 net.tcp.port[<ip>,port]检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接查看端口是否开启 [root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[80]'1[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[81]'0[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.listen[873]'1[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,80]'1[root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,873]'1 [root@zabbix bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[873]'ZBX_NOTSUPPORTED: Invalid second parameter.
怎么监控进程?
proc.num[<name>,<user>,<state>,<cmdline>]进程数。返回整数
zabbix_get -s 172.16.1.8 -p 10050 -k 'proc.num[nginx]'
1 监控web 端口
创建web端口监控模板
使用标准的监控项
zabbix_get -s 10.0.0.7 -k 'net.tcp.port[,80]' <-- 注意
创建模板 –> 添加监控项(有想监控的key,直接选标准配置;没有则添加自定义的key,前面已经介绍过)—> 添加触发器(超过监控项的数值就触发警告) –> 图形选项(根据需要添加图形) –> 添加到要监控主机的模板里面
监控mysql
# 默认yum安装的mysql使用zabbix的自带userparameter_mysql.conf没有任何问题
[root@zabbix bin]# mysql -V
mysql Ver 14.14 Distrib 5.6.43, for Linux (x86_64) using EditLine wrapper
[root@zabbix ~]# mysqladmin ping
mysqld is alive
[root@zabbix ~]# mysqladmin ping | grep -c alive
1
# 但是我们自己二进制安装的mysql就报错了
如何排查自定义监控报错:
UserParameter=key,shell command
1. 先在命令行测试你的shell command的结果和你的期望是否一致 [root@web01 ~]# mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive 12. 将符合预期的shell command写入到我们的自定义监控文件中 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive 改为 UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive3. 改完配置文件记住重启生效 4. 在服务端用zabbix_get命令 [root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'0
# 发现命令找不到,返回值为0
# 使用自己mysql安装的全路径
UserParameter=mysql.ping,/application/mysql/bin/mysqladmin -uroot -poldboy123 ping 2>/dev/null|grep -c alive[root@zabbix ~]# zabbix_get -s 172.16.1.8 -p 10050 -k 'mysql.ping'
15. 在网页上添加,创建模板,同前
Template App MySQL
修改其他的模板(Template App MySQL)及自定义监控配置文件(userparameter_mysql.conf)
2 监控web 页面url 地址
创建一个单页面用于我们监控
[root@lewen ~]# ls /usr/share/nginx/html/
404.html 50x.html index.html nginx-logo.png poweredby.png
[root@lewen ~]# echo ok >/usr/share/nginx/html/check.html
只要访问http://10.0.0.7/check.html 说明我们的nginx正常
zabbix设置
这里不需要再创建模板,主机的web监测已经有了,我们只需要创建不同的web场景和对应的方案步骤就可以
创建web监测
可以模仿浏览器去访问我们的网站是否正常,
方案步骤,用于监测访问的页面url地址和响应的字符
查看监测结果
监测中--web监测
3 监控nginx状态:绘图
Nginx的配置
######status#########
server {
listen status.fadewalk.com;
stub_status on;
access_log off;
}
添加到/etc/hosts解析
[root@web01 ~]# curl status.fadewalk.com Active connections: 2 server accepts handled requests51 51 37 Reading: 0 Writing: 1 Waiting: 1 [root@web01 ~]# curl -sH Host:status.fadewalk.com 10.0.0.7|awk 'NR==1{print $NF}' 1[root@web01 ~]# curl -sH Host:status.fadewalk.com 10.0.0.7|awk 'NR==3{print $1}'271[root@web01 ~]# curl -sH Host:status.fadewalk.com 10.0.0.7|awk 'NR==3{print $2}'273[root@web01 ~]# curl -sH Host:status.fadewalk.com 10.0.0.7|awk 'NR==3{print $3}'275
自定义监控nginx七种状态
1. key shell command 自定义监控配置文件监测状态注意主机地址,这里最好是status.fadewalk.com,nginx status 状态页面的地址, vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf UserParameter=nginx_active,curl -s status.fadewalk.com|awk '/Active/ {print $NF}' UserParameter=nginx_accepts,curl -s status.fadewalk.com|awk 'NR==3 {print $1}' UserParameter=nginx_handled,curl -s status.fadewalk.com|awk 'NR==3 {print $2}' UserParameter=nginx_requests,curl -s status.fadewalk.com|awk 'NR==3 {print $3}' UserParameter=nginx_reading,curl -s status.fadewalk.com|awk 'NR==4 {print $2}' UserParameter=nginx_writing,curl -s status.fadewalk.com|awk 'NR==4 {print $4}' UserParameter=nginx_waiting,curl -s status.fadewalk.com|awk 'NR==4 {print $6}'2. 重启zabbix 3. server上zabbix get测试[root@zabbix bin]# zabbix_get -s 10.0.0.7 -k 'nginx_requests' 130 [root@zabbix bin]# zabbix_get -s 10.0.0.7 -k 'nginx_writing' 14. web界面 模板(Template Nginx Status)--应用集(nginx状态)---监控项(7个)---图形(画2张图,点击多个监控项即可)
目标:使用zabbix将期中架构所有集群监控
具体内容:
一、硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
关键点:
系统监控包括CPU,内存,磁盘,负载,流量
网络监控:主机网卡监控,交换机(路由器)监控
上面监控完全可以使用自带的模板实现功能
二、应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
7. 监控Nginx的7种连接状态。