网站服务全面监控

 

简单的方法:通过端口号或者进程数量
     服务    端口   进程
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]'      <-- 注意

 

 

image
 

 

创建模板 –> 添加监控项(有想监控的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
1

2. 将符合预期的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 alive

3. 改完配置文件记住重启生效
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'
1

5. 在网页上添加,创建模板,同前
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正常
image

zabbix设置

这里不需要再创建模板,主机的web监测已经有了,我们只需要创建不同的web场景和对应的方案步骤就可以

image

 

创建web监测

可以模仿浏览器去访问我们的网站是否正常,

image

 

方案步骤,用于监测访问的页面url地址和响应的字符

image

 

查看监测结果

监测中--web监测

image

 

3 监控nginx状态:绘图


Nginx的配置
######status#########
server {
listen  status.fadewalk.com;
stub_status on;
access_log off;
}

添加到/etc/hosts解析

image

[root@web01 ~]# curl status.fadewalk.com
Active connections: 2
server accepts handled requests
 51 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'
1

4. web界面
模板(Template Nginx Status)--应用集(nginx状态)---监控项(7个)---图形(画2张图,点击多个监控项即可)

 

 
image
  


image

image

 

 

目标:使用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种连接状态。

 

posted @ 2019-03-23 21:17  元贞  阅读(480)  评论(0编辑  收藏  举报