1. 程式人生 > >Zabbix 3.0 從入門到精通(zabbix使用詳解)

Zabbix 3.0 從入門到精通(zabbix使用詳解)

and eid ace inactive imm chmod 添加應用 zab tput

1.1 為什麽要監控

  在需要的時刻,提前提醒我們服務器出問題了

   當出問題之後,可以找到問題的根源

   網站/服務器 的可用性

1.1.1 網站可用性

  在軟件系統的高可靠性(也稱為可用性,英文描述為HA,High Available)裏有個衡量其可靠性的標準——X個9,這個X是代表數字3~5。X個9表示在軟件系統1年時間的使用過程中,系統可以正常使用時間與總時間(1年)之比,我們通過下面的計算來感受下X個9在不同級別的可靠性差異。

    1個9:(1-90%)*365=36.5天,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是36.5天
    2個9:(1-99%)*365=3.65天 , 表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是3.65天
    3個9:(1-99.9%)*365*24=8.76小時,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是8.76小時。
    4個9:(1-99.99%)*365*24=0.876小時=52.6分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是52.6分鐘。
    5個9:(1-99.999%)*365*24*60=5.26分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是5.26分鐘。
    6個9:(1-99.9999%)*365*24*60*60=31秒, 示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是31秒

1.2 監控什麽東西

監控一切需要監控的東西,只要能夠想到,能夠用命令實現的都能用來監控

1.2.1 監控範疇

技術分享圖片

1.3 怎麽來監控

1.3.1 遠程管理服務器

如果想遠程管理服務器就有遠程管理卡,比如Dell idRAC,HP ILO,IBM IMM

1.3.2 監控硬件

查看硬件的溫度/風扇轉速,電腦有魯大師,服務器就有ipmitool。

使用ipmitool實現對服務器的命令行遠程管理

yum -y install OpenIPMI ipmitool  #->IPMI在物理機可以成功,虛擬機不行

[root@KVM ~]# ipmitool sdr type Temperature
Temp             | 01h | ns  |  3.1 | Disabled
Temp             | 02h | ns  |  3.2 | Disabled
Temp             | 05h | ns  | 10.1 | Disabled
Temp             | 06h | ns  | 10.2 | Disabled
Ambient Temp     | 0Eh | ok  |  7.1 | 22 degrees C
Planar Temp      | 0Fh | ns  |  7.1 | Disabled
IOH THERMTRIP    | 5Dh | ns  |  7.1 | Disabled
CPU Temp Interf  | 76h | ns  |  7.1 | Disabled
Temp             | 0Ah | ns  |  8.1 | Disabled
Temp             | 0Bh | ns  |  8.1 | Disabled
Temp             | 0Ch | ns  |  8.1 | Disabled

1.3.3 查看cpu相關

  lscpu、uptime、top、htop vmstat mpstat

其中htop需要安裝,安裝依賴與epel源。

[znix@clsn ~]$lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                1
On-line CPU(s) list:   0
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 85
Model name:            Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Stepping:              4
CPU MHz:               2494.150
BogoMIPS:              4988.30
Hypervisor vendor:     KVM
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              1024K
L3 cache:              33792K
NUMA node0 CPU(s):     0

1.3.4 內存夠不夠可以用

  free

[znix@clsn ~]$free -h
             total       used       free     shared    buffers     cached
Mem:          996M       867M       128M       712K       145M       450M
-/+ buffers/cache:       271M       725M
Swap:         1.0G         0B       1.0G

1.3.5 磁盤剩多少寫的快不快可以用

  df、dd、iotop

[znix@clsn ~]$df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   24G   15G  62% /
tmpfs           499M   20K  499M   1% /dev/shm
/dev/vdb1        20G  4.4G   15G  24% /data

1.3.6 監控網絡

  iftop nethogs

iftop   監控主機間流量  -i 指定監控網卡
nethogs 監控進程流量

1.4 監控工具總覽

  mrtg 流量監控出圖

  nagios 監控

  cacti 流量監控出圖

  zabbix 監控+出圖

1.5 zabbix介紹

  Zabbix 是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基於 Server-Client 架構。可用於監視各種網絡服務、服務器和網絡機器等狀態。

  使用各種 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 儲存資料。Server 端基於 C語言、Web 管理端 frontend 則是基於 PHP 所制作的。Zabbix 可以使用多種方式監視。可以只使用 Simple Check 不需要安裝 Client 端,亦可基於 SMTP 或 HTTP ... 各種協定做死活監視。

  在客戶端如 UNIX, Windows 中安裝 Zabbix Agent 之後,可監視 CPU Load、網絡使用狀況、硬盤容量等各種狀態。而就算沒有安裝 Agent 在監視對象中,Zabbix 也可以經由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 對目標進行監視。

另外,Zabbix 包含 XMPP 等各種 Item 警示功能。

1.5.1 zabbix的組成

技術分享圖片

zabbix官網: https://www.zabbix.com

zabbix 主要由2部分構成 zabbix server和 zabbix agent

zabbix proxy是用來管理其他的agent,作為代理

1.5.2 zabbix監控範疇

  2 硬件監控 :Zabbix IPMI Interface

  2 系統監控 :Zabbix Agent Interface

  2 Java 監控:ZabbixJMX Interface

  2 網絡設備監摶:Zabbix SNMP Interface

  2 應用服務監控:Zabbix Agent UserParameter

  2 MySQL 數據庫監控:percona-monitoring-pldlgins

  2 URL監控:Zabbix Web監控

第2章 安裝zabbix

2.1 環境檢查

[root@m01 ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

[root@m01 ~]# uname -r
3.10.0-693.el7.x86_64

[root@m01 ~]# getenforce
Disabled

[root@m01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

2.2 安裝zabbix過程

2.2.1 安裝方式選擇

  編譯安裝 (服務較多,環境復雜)

  yum安裝(幹凈環境)

  使用yum 需要鏡像yum源 http://www.cnblogs.com/clsn/p/7866643.html

2.2.2 服務端快速安裝腳本

#!/bin/bash
#clsn

#設置解析 註意:網絡條件較好時,可以不用自建yum源
# echo ‘10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com‘ >> /etc/hosts

#安裝zabbix源、aliyun YUM源
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/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

#安裝zabbix 
yum install -y zabbix-server-mysql zabbix-web-mysql

#安裝啟動 mariadb數據庫
yum install -y  mariadb-server
systemctl start mariadb.service

#創建數據庫
mysql -e ‘create database zabbix character set utf8 collate utf8_bin;‘
mysql -e ‘grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";‘

#導入數據
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

#配置zabbixserver連接mysql
sed -i.ori ‘115a DBPassword=zabbix‘ /etc/zabbix/zabbix_server.conf

#添加時區
sed -i.ori ‘18a php_value date.timezone  Asia/Shanghai‘ /etc/httpd/conf.d/zabbix.conf

#解決中文亂碼
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

#啟動服務
systemctl start zabbix-server
systemctl start httpd

#寫入開機自啟動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF

#輸出信息
echo "瀏覽器訪問 http://`hostname -I|awk ‘{print $1}‘`/zabbix"

2.2.3 客戶端快速部署腳本

#!/bin/bash
#clsn

#設置解析
echo ‘10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.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/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

#安裝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
systemctl start  zabbix-agent.service

#寫入開機自啟動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start  zabbix-agent.service
EOF

2.3 檢測連通性

2.3.1 服務端安裝zabbix-get檢測工具

yum install zabbix-get

2.3.2 在服務端進行測試

註意:只能在服務端進行測試

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

測試結果

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
0.000000

第3章 web界面操作

3.1 zabbix的web安裝

3.1.1 使用瀏覽器訪問

  http://10.0.0.61/zabbix/setup.php

技術分享圖片

在檢測信息時,可查看具體的報錯信息進行不同的解決

技術分享圖片

選擇mysql數據庫,輸入密碼即可

技術分享圖片

host與port不需要修改,name自定義

技術分享圖片

確認信息,正確點擊下一步

技術分享圖片

安裝完成、點擊finsh

技術分享圖片

進入登陸界面 賬號Admin密碼zabbix 註意A大寫

技術分享圖片

3.2 添加監控信息

3.2.1 修改監控管理機zabbix server

配置 >> 主機

技術分享圖片

主機名稱: 要與主機名相同,這是zabbix server程序用的

可見名稱: 顯示在zabbix網頁上的,給我們看的

技術分享圖片

修改後,要將下面的已啟用要勾上

技術分享圖片

添加完成就有了管理機的監控主機

技術分享圖片

3.2.2 添加新的主機

配置 >> 主機 >> 創建主機

技術分享圖片

註意勾選以啟用

技術分享圖片

然後添加模板,選擇linux OS ,先點小添加,再點大添加。

技術分享圖片

添加完成,將會又兩條監控主機信息

技術分享圖片

3.2.3 查看監控內容

檢測中 >> 最新數據

在最新數據中需要篩選,

技術分享圖片

輸入ip或者名字都能夠搜索出來

技術分享圖片

在下面就會列出所有的監控項

技術分享圖片

3.2.4 查看圖像

檢測中 >> 圖形

選擇正確的主機。選擇要查看的圖形即可出圖

技術分享圖片

第4章 自定義監控與監控報警

4.1 自定義監控

4.1.1 說明

zabbix自帶模板Template OS Linux (Template App Zabbix Agent)提供CPU、內存、磁盤、網卡等常規監控,只要新加主機關聯此模板,就可自動添加這些監控項。

需求:服務器登陸人數不能超過三人,超過三人報警

4.1.2 預備知識

自定義key能被server和agent認可

# 正確的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"
Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 
# 沒有登記的,自定義的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
ZBX_NOTSUPPORTED: Unsupported item key. 
# 寫錯的key
[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"
ZBX_NOTSUPPORTED: Unsupported item key.

4.2 實現自定義監控

4.2.1 自定義語法

UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh

4.2.2 agent註冊

[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf
UserParameter=login-user,who|wc -l
UserParameter=login-user2,who|wc -l
UserParameter=login-user3,who|wc -l

註意:key名字要唯一,多個key以行為分割

# 修改完成後重啟服務

[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

在server端進行get測試

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"
3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"
ZBX_NOTSUPPORTED: Unsupported item key.

4.2.3 在server端註冊(web操作)

創建模板

配置 >> 模板 >> 創建模板

技術分享圖片

點擊添加,即可創建出來模板

技術分享圖片

查看創建出來的模板。↑

創建應用集

應用集類似(目錄/文件夾),其作用是給監控項分類。

點擊 應用集 >> 創建應用集

技術分享圖片

自定義應用集的名稱,然後點擊添加

創建監控項

監控項 >> 創建監控項

技術分享圖片

鍵值 -- key,即前面出創建的login-user。

技術分享圖片

註意:創建監控項的時候,註意選擇上應用集,即之前創建的安全。

技術分享圖片

創建觸發器

觸發器的作用:當監控項獲取到的值達到一定條件時就觸發報警

(根據需求創建)

觸發器 >> 創建觸發器

創建觸發器,自定義名稱,該名稱是報警時顯示的名稱。

表達式,點擊右邊的添加,選擇表達式

嚴重性自定義。

技術分享圖片

表達式的定義 ,選擇之前創建的監控項,

最新的T值為當前獲取到的值。

技術分享圖片

添加完成,能夠在觸發器中看到添加的情況

技術分享圖片

創建圖形

以圖形的方式展示出來監控信息

圖形 >> 創建圖形

名稱自定義,關聯上監控項。

技術分享圖片

主機關聯模板

配置 >> 主機

一個主機可以關聯多個模板

技術分享圖片

4.2.4 查看監控的圖形

技術分享圖片

4.3 監控報警

4.3.1 第三方報警平臺

http://www.onealert.com

  通過 OneAlert 提供的通知分派與排班策略,以及全方位的短信、微信、QQ、電話提醒服務,您可以在最合適的時間,將最重要的信息推送給最合適的人員。

4.3.2 onealert配置

添加應用,註意添加的是zabbix

技術分享圖片

實現微信報警需要關註微信公眾號即可。

技術分享圖片

4.3.3 安裝 onealert Agent

1.切換到zabbix腳本目錄(如何查看zabbix腳本目錄):

cd /usr/local/zabbix-server/share/zabbix/alertscripts

#查看zabbix腳本目錄
vi /etc/zabbix/zabbix_server.conf
查看AlertScriptsPath

2.獲取OneITSM agent包:

wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz

3.解壓、安裝。

tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz
cd oneitsm/bin
bash install.sh --#個人生成的key

註:在安裝過程中根據安裝提示,輸入zabbix管理地址、管理員用戶名、密碼

Zabbix管理地址: http://10.0.0.61/zabbix/
Zabbix管理員賬號: Admin
Zabbix管理員密碼:

4.當提示"安裝成功"時表示安裝成功!

驗證告警集成

產生新的zabbix告警(problem),動作狀態為“已送達”表示集成成功。

4.3.1 如何刪除onealert Agent

① 刪除報警媒介類型中的腳本

技術分享圖片

② 刪除創建的用戶

技術分享圖片

③ 刪除用戶群組

技術分享圖片

④ 刪除創建的動作

技術分享圖片

4.3.2 觸發器響應,發送報警信息

技術分享圖片

在微信和郵件中,均能收到報警信息。

技術分享圖片

註意:當狀態改變的時候才會發郵件

   好-->壞

   壞-->好

4.4 監控可視化

4.4.1 聚合圖形

最新數據 >> 圖形

技術分享圖片

自定義名稱

技術分享圖片

點擊聚合圖形的名稱,進行更改,添加要顯示的圖形即可。

技術分享圖片

4.4.2 幻燈片

添加幻燈片

監測中 >> 復合圖形 >> 幻燈片演示

技術分享圖片

創建幻燈片,名稱自定,選擇要顯示的

技術分享圖片

幻燈片根據設定的時間自動播放

4.5 模板的共享

4.5.1 主機共享

在主機頁打開,全選後點擊導出

技術分享圖片

導入

技術分享圖片

4.5.2 模板共享

https://github.com/zhangyao8/zabbix-community-repos

技術分享圖片

第5章 監控全網服務器

5.1 需求說明

實際需求:

  公司已經有了100臺服務器,現在需要使用zabbix全部監控起來。

5.2 規劃方案

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

  方法1:使用克隆的方式

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

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

   開發自己的運維平臺兼容zabbix的通道

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

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"

    curl -i -X POST -H ‘Content-Type:application/json‘ -d‘
    {
        "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:模擬推送拉取文件

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.com mirrors.aliyun.com repo.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 使用自動發現規則

添加自動發現規則

技術分享圖片

創建發現動作

技術分享圖片

查看自動發現的機器。

技術分享圖片

5.4.2 監控備份服務器

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

技術分享圖片

在服務端進行測試

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

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

將模板添加到主機

技術分享圖片

5.4.3 監控NFS服務器

創建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服務器

將自帶的mysqlkey值加上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 - 可以連接

將模板關聯到主機

技術分享圖片

5.4.5 監控web服務器

創建監控模板 監控 nginx服務與 80 端口

    proc.num[<name>,<user>,<state>,<cmdline>]   進程數。返回整數
    net.tcp.port[<ip>,port] 檢查是否能建立 TCP 連接到指定端口。返回 0 - 不能連接;1 - 可以連接

技術分享圖片

[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

將模板關聯到主機

技術分享圖片

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 ;done
ok
ok
ok

創建web監測模板

創建應用集

技術分享圖片

創建Web場景

技術分享圖片

創建圖形

技術分享圖片

將模板關聯到主機

技術分享圖片

監測結果

技術分享圖片

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界面添加模板

技術分享圖片

將模板關聯到主機

技術分享圖片

5.4.8 監控Nginx的7種連接狀態

nginx服務器顯示status
……
    location /status {
           stub_status on;
           access_log off;
    }
……

[root@web01 ~]# for ip in 7 8 9 ;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

Active connections: 1
server accepts handled requests
 7 7 7
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

服務端測試

[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上添加

技術分享圖片

監控項

技術分享圖片

添加圖形

技術分享圖片

將模板關聯到主機

技術分享圖片

查看添加的圖形

技術分享圖片

技術分享圖片

第6章 自動發現與自動註冊

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 自動發現--被動模式

 第一個裏程碑:完成之前的安裝

zabbix Server安裝完畢

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

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

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

    web界面:配置 >> 自動發現 >> Local network
        使用自帶的自動發現規則(進行修改)即可

技術分享圖片

    在ip範圍內輸入ip,註意格式;
    延遲在實際的生產環境中要大一些,實驗環境可以小一些

技術分享圖片

創建發現動作

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

技術分享圖片

① 配置動作

技術分享圖片

② 在條件中添加條件,讓添加更準確

技術分享圖片

③ 在操作中添加

a) 添加主機與啟用主機

技術分享圖片

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

6.3 自動註冊--主動模式

 第一個裏程碑:zabbix Server安裝完畢 (完成)

zabbix Server安裝完畢

第二個裏程碑:zabbix agent安裝完畢,需要額外增加的配置

vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61
# Hostname=Zabbix server
HostnameItem=system.hostname
 
systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix

源文件與修改後對比

技術分享圖片技術分享圖片

  第三個裏程碑:在web見面上進行配置

1 配置 >> 動作 >> 事件源(自動註冊) >> 創建動作

技術分享圖片

創建動作,添加名稱即可

技術分享圖片

條件中也無需修改

技術分享圖片

在動作中添加動作

(添加主機、添加到主機群組、鏈接到模板)

技術分享圖片

添加完動作後,等待就行了

註意:重啟客戶端可以加速發現。但是在生產環境中勿用。

技術分享圖片

第7章 分布式監控與SNMP監控

7.1 分布式監控

7.1.1 作用

  分擔壓力,減輕負載

  多機房監控

  zabbix Server ===》 zabbix agent (只能同一個局域網監控)

分擔壓力,降低負載

  zabbix Server ===》  zabbix proxy  ===》zabbix agent1 agent2 agent3 。。。
    172.16.1.61           172.16.1.21        172.16.1.0/24
                ===》  zabbix proxy  ===》zabbix agent4 agent5 agent6 。。。

多機房監控

    zabbix Server(北京)           ==》  zabbix proxy(每個機房搭建)  ==》 zabbix agent
    122.71.240.233/172.16.1.61          122.71.241.11/172.16.2.21     172.16.2.0/24

7.1.2 環境說明

    zabbix server m01
    zabbix proxy cache01
    zabbix agent  cache01

7.1.3 配置zabbix proxy

 第一個裏程碑:配置zabbix yum源,並安裝proxy

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-proxy-mysql -y

第二個裏程碑:安裝數據庫

zabbix proxy也需要數據庫,這個數據庫不是用於存儲監控數據的 只是用於存儲配置信息

#安裝數據庫

yum -y install mariadb-server
systemctl start mariadb.service

#建立數據庫

mysql
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@‘localhost‘ identified by ‘zabbix‘;
exit

#導入數據文件

zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

#配置zabbix proxy 連接數據庫

sed -i.ori ‘162a DBPassword=zabbix‘ /etc/zabbix/zabbix_proxy.conf
sed -i ‘s#Server=127.0.0.1#Server=172.16.1.61#‘ /etc/zabbix/zabbix_proxy.conf
sed -i ‘s#Hostname=Zabbix proxy#Hostname=cache01#‘ /etc/zabbix/zabbix_proxy.conf

# Hostname 作為後面添加的代理程序名稱,要保持一致

#啟動

systemctl restart zabbix-proxy.service

#檢查端口

[root@cache01 ~]# netstat -lntup |grep zabbix
tcp        0      0 0.0.0.0:10050     0.0.0.0:*       LISTEN      105762/zabbix_agent
tcp        0      0 0.0.0.0:10051   0.0.0.0:*         LISTEN      85273/zabbix_proxy 
tcp6       0      0 :::10050       :::*      LISTEN      105762/zabbix_agent
tcp6       0      0 :::10051  :::*           LISTEN      85273/zabbix_proxy 

第三個裏程碑:修改agent配置指向 proxy

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.61
ServerActive=172.16.1.61

[root@cache01 ~]# sed -i ‘s#172.16.1.61#172.16.1.21#g‘ /etc/zabbix/zabbix_agentd.conf

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.21
ServerActive=172.16.1.21

[root@cache01 ~]# systemctl restart zabbix-agent.service

第四個裏程碑:web界面添加代理

管理 >> agent代理程序 >> 創建代理

技術分享圖片

代理程序名稱要填寫主機名

技術分享圖片

稍等片刻就能在程序中出現代理

技術分享圖片

在主機中能發現主機代理

技術分享圖片

7.2 SNMP監控

7.2.1 使用範圍

  無法安裝agent 很多前輩的監控軟件都可以監控各種設備 都是通過snmp監控

  snmp simple network manager protocol 簡單網絡管理協議

  簡單網絡管理協議(SNMP),由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關註的情況。

7.2.2 安裝snmp程序

yum -y install net-snmp net-snmp-utils

7.2.3 配置snmp程序

sed -i.ori ‘57a view systemview   included  .1‘ /etc/snmp/snmpd.conf
systemctl start snmpd.service

7.2.4 測試snmp

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01

說明:

   # snmpwalk 類似 zabbix_get

   # -v 2c 指定使用snmp協議的版本 snmp分為v1 v2 v3

   # -c public 指定暗號

   # sysname 類似zabbix的key

7.2.5 在web界面進行配置

添加新的主機,註意使用snmp接口

技術分享圖片

選擇模板,註意使用SNMP的模板

技術分享圖片

添加完成就能夠在主機中看到snmp監控對的主機

技術分享圖片

7.2.6 附錄

    ##SNMP OID列表 監控需要用到的OID
    http://www.ttlsa.com/monitor/snmp-oid/
    cmdb 資源管理系統

Zabbix 3.0 從入門到精通(zabbix使用詳解)