zabbix監控(四)監控全網服務器

監控全網服務器

5.1 需求說明

實際需求:php

  公司已經有了100臺服務器,如今須要使用zabbix所有監控起來。html

5.2 規劃方案

常規監控:cpu,內存,磁盤,網卡  問題:怎樣快速添加100臺機器python

     方法1:使用克隆的方式mysql

     方法2:自動註冊和自動發現linux

     方法3:調用zabbix api接口  curl 、pythonnginx

            開發本身的運維平臺兼容zabbix的通道web

   服務監控,url監控等特殊監控:自定義監控sql

5.2.1 api接口使用(curl

curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"json

curl -i -X POST -H 'Content-Type:application/json' -d'centos

{

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": [

"hostid",

"host"

],

"selectInterfaces": [

"interfaceid",

"ip"

]

},

"id": 2,

"auth": "6a450a8fc3dce71fd310cfe338746578"

}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

5.3 具體實施規劃

5.3.1 硬件、系統、網絡監控

  全部集羣節點(全部虛擬機)都監控上

  交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標準方法:監控交換機的網卡)

  snmp監控

5.3.2 應用服務監控

1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;

方法1:監控873端口net.tcp.port[,873]

方法2:模擬推送拉取文件

    方法3:監控進程數

2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;

方法1:端口(經過111的rpc端口獲取nfs端口) net.tcp.port[,111]

方法2:showmount -e ip|wc -l

3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;

方法1:端口(經過3306的mysql端口) net.tcp.port[,3306]

方法2:mysql遠程登陸

方法3:使用zabbix agent自帶的模板及key

4. 監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;

方法1:端口(經過80的web端口) net.tcp.port[,80]

方法2:看網頁狀態碼、返回內容==zabbix 自帶WEB檢測

5. 監控URL地址來更精確的監控咱們的網站運行正常;

使用zabbix自帶的監控Web監測 進行監控

6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。

nginx,pptp

ntp 端口udp 123

7. 監控Nginx的7種鏈接狀態。

自定義監控

5.3.3 監控服務通用方法

  1. 監控端口 netstat ss lsof  ==》 wc -l

  2. 監控進程 ps -ef|grep 進程|wc -l  試運行一下

  3. 模擬客戶端的使用方式監控服務端

        web  ==》 curl

        mysql ==》 select insert

        memcache ==》 set再get

5.4 實施全網監控

安裝客戶端腳本,for centos6

#!/bin/bash

#設置解析

# echo '10.0.0.1 mirrors.aliyuncs.commirrors.aliyun.comrepo.zabbix.com' >> /etc/hosts

#安裝zabbix源、aliyu nYUM源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

yum clean all

yum clean all

#安裝zabbix客戶端

yum install zabbix-agent -y

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

/etc/init.d/zabbix-agent start

#寫入開機自啓動

chmod +x /etc/rc.d/rc.local

cat >>/etc/rc.d/rc.local<<EOF

/etc/init.d/zabbix-agent start

EOF

5.4.1 使用自動發現規則

添加自動發現規則

image.png 

   建立發現動做

image.png 

   查看自動發現的機器。

 image.png

5.4.2 監控備份服務器

利用系統自帶鍵值進行監控net.tcp.listen[port] 建立新的模板 

image.png

在服務端進行測試

[root@m01 ~]# zabbix_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen[873]"

1

# 1爲端口在監聽 0爲端口未監聽

#經過進程監控

proc.num[<name>,<user>,<state>,<cmdline>] 進程數。返回整數

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "proc.num[zabbix_agentd,,,]"

6

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "proc.num[,root,,]"

330

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "proc.num[,root,sleep,]"

330

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "proc.num[,,sleep,]"

339

將模板添加到主機

image.png

5.4.3 監控NFS服務器 

建立nfs監控模板

方法一:監控rpcbind的111端口

方法二:nfs進程

使用 proc.num[<name>,<user>,<state>,<cmdline>]  鍵值,檢測nfs進程的數量

 

在服務端進行測試

[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[,,,rpc]"

5

[root@m01 ~]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd,,,]

8

 

將模板綁定到主機

5.4.4 監控MySQL服務器


使用系統自帶模板  net.tcp.port[<ip>,port] 利用自帶的監控端口鍵值進行監控

 

添加新的mysql監控項端口

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "net.tcp.port[,3306]" 

1

#檢查是否能創建 TCP 鏈接到指定端口。返回 0 - 不能鏈接;1 - 能夠鏈接

將模板關聯到主機


方法二:使用zabbix提供的mysql模板

/etc/zabbix-agent.d/下自帶mysqlkey

要使用自帶的mysqlkey值加上mysql的帳戶密碼,不然不能獲取到數據。


1.修改zabbix-agent.d/userparameter_mysql.conf


image.png

2.重啓服務

systemctl restart zabbix-agent.service

3.測試key值

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "mysql.ping"

1

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "mysql.status[Com_begin]"

3758

[root@m01 ~]# zabbix_get -s 172.16.1.51 -p 10050 -k "mysql.status[Com_delete]"

3

4.網頁m01關聯模板Template App MySQL

image.png

5.4.5 監控web服務器

方法1:建立監控模板 監控 nginx服務與 80 端口

proc.num[<name>,<user>,<state>,<cmdline>] 進程數。返回整數

net.tcp.port[<ip>,port] 檢查是否能創建 TCP 鏈接到指定端口。返回 0 - 不能鏈接;1 - 能夠鏈接

 image.png

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "proc.num[,,,nginx]"

2

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "net.tcp.port[,80]"

1

將模板關聯到主機

 image.png

方法二:檢測URL地址

image.pngimage.png

image.pngimage.png

image.pngimage.png

image.png

image.pngimage.png

測試:

image.png

image.png

5.4.6 監控URL地址

建立監測頁面

echo ok >> /application/nginx/html/www/check.html

 

測試監控面頁

[root@web03 ~]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;doneok

ok

ok

建立web監測模板

   建立應用集

 

image.png

   建立Web場景

image.png

   建立圖形  

image.png

將模板關聯到主機

 

image.png

監測結果

 image.png

5.4.7 監控反向代理服務器

建立自定義key

[root@lb01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.conf

UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l

在服務端測試

[root@m01 ~]# zabbix_get -s 172.16.1.5 -p 10050 -k "keep-ip"

1

[root@m01 ~]# zabbix_get -s 172.16.1.6 -p 10050 -k "keep-ip"

0

在web界面添加模板

image.png 

將模板關聯到主機

image.png

5.4.8 監控Nginx的7種鏈接狀態 

nginx服務器顯示status

……

location /status {

stub_status on;

access_log off;

}

……

 

[root@web01 ~]# for ip in 7 8;do curl 172.16.1.$ip/status ;done

Active connections: 1

server accepts handled requests

73 73 69

Reading: 0 Writing: 1 Waiting: 0

Active connections: 1

server accepts handled requests

134 134 127

Reading: 0 Writing: 1 Waiting: 0

在nginx服務器上添加key

cat >/etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<'EOF'

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}'

EOF

重啓Agent服務

服務端測試

[root@m01 ~]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_waiting"

0

[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_waiting"

0

[root@m01 ~]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_waiting"

0

在zabbix-web上添加模板

 image.png

監控項

 

image.png

添加圖形

 

image.png

將模板關聯到主機

 

image.png

查看添加的圖形

 

image.png

image.png

自動發現與自動註冊

6.1 自動發現與自動註冊

6.1.1 簡介

自動發現:

zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。

自動註冊:

zabbix agent主動到zabbix Server上報到,登記;缺點agent有可能找不到Server(配置出錯)

6.1.2 兩種模式

被動模式:默認 agent被server抓取數據 (都是在agent的立場上說)

主動模式:agent主動將數據發到server端 (都是在agent的立場上說)

     注意: 兩種模式都是在agent上進行配置

     zabbix 的使用要在hosts文件中預先作好主機名的解析

6.2 自動發現--被動模式

 image.png

第一個里程碑:完成以前的安裝

注意:在Server端作好host解析

zabbix Server安裝完畢

   第二個里程碑:配置agent客戶端

zabbix agent安裝完畢,注意配置Server=172.16.1.61

   第三個里程碑:在web界面上進行配置

web界面:配置 >> 自動發現 >> Local network

使用自帶的自動發現規則(進行修改)便可

image.png

在ip範圍內輸入ip,注意格式; 

延遲在實際的生產環境中要大一些(1h-2h),實驗環境能夠小一些60s

image.png

   

建立發現動做

配置 >> 動做 >> Auto discovery. Linux servers. 

image.png


①  配置動做

image.png

②  在條件中添加條件,讓添加更準確(條件保持不變,D不須要添加) 

 

image.png

③  在操做中添加

a)  添加主機與啓用主機

 

image.png


      而後等待者客戶端自動上門就好


小夥伴們能夠關注個人微信公衆號:linux運維菜鳥之旅

qrcode_for_gh_5ecc48d3d14a_258.jpg

關注「中國電信天津網廳」公衆號,首次綁定可免費領2G流量,爲你的學習提供流量! 

qrcode_for_gh_d20dccd1c74b_258.jpg

相關文章
相關標籤/搜索