需求:公司有100臺服務器,部署了zabbix後,須要使用zabbix將其所有監控mysql
規劃:nginx
一、監控各類服務引用web
二、監控經常使用端口sql
三、監控網絡帶寬數據庫
四、監控基礎設置環境apache
五、自定義監控vim
全部集羣節點(全部虛擬機)都監控上瀏覽器
交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標準方法:監控交換機的網卡)服務器
snmp監控網絡
簡單方法是監控rsync端口
方法1:監控873端口net.tcp.port[,873] 方法2:模擬推送拉取文件
瀏覽器操做
proc.num[<name>,<user>,<state>,<cmdline>]
name 進程名
user 進程用戶
state 進程狀態
cmdline 命令行參數
[root@m02 ~]# zabbix_get -s 172.16.1.62 -p 10050 -k 'proc.num[httpd]' 11 [root@m02 ~]# zabbix_get -s 172.16.1.62 -p 10050 -k 'proc.num[,apache]' 10
使用監控NFS進程來判斷NFS服務器正常
方法1:端口(經過111的rpc端口獲取nfs端口) net.tcp.port[,111] 方法2:showmount -e ip|wc -l
命令行測試
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k 'net.tcp.port[,111]' 0
web操做
監控是否有可掛載信息 showmount -e ip|wc -l
首先編輯配置文件
[root@cache01 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_nfs.conf UserParameter=nfs,showmount -e ip|wc -l
zabbix服務端命令測試
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k 'nfs' 0
而後在網頁操做
方法1:端口(經過3306的mysql端口) net.tcp.port[,3306] 方法2:mysql遠程登陸 方法3:使用zabbix agent自帶的模板及key
簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板
監控端口(經過3306的mysql端口) net.tcp.port[,3306]
使用zabbix agent自帶的模板及key
注意:mysql數據庫若是設置了密碼要在配置文件中指定密碼纔可以使用
監控端口(經過80的web端口) net.tcp.port[,80]
看網頁狀態碼、返回內容(zabbix自帶WEB檢測)
vim /etc/nginx/nginx.conf …… location /status { stub_status on; access_log off; } ……
vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf UserParameter=nginx_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}' UserParameter=nginx_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}' UserParameter=nginx_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}' UserParameter=nginx_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}' UserParameter=nginx_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}' UserParameter=nginx_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}' UserParameter=nginx_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}'
1. 監控端口 netstat、ss、lsof ==》 wc -l
2. 監控進程 ps -ef|grep 進程|wc -l 試運行一下
3. 模擬客戶端的使用方式監控服務端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get