ZABBIX 3.0 使用詳解

第1章 zabbix監控

1.1 爲何要監控

     在須要的時刻,提早提醒咱們服務器出問題了php

     當出問題以後,能夠找到問題的根源html

     網站/服務器 的可用性node

1.1.1 網站可用性

  在軟件系統的高可靠性(也稱爲可用性,英文描述爲HA,High Available)裏有個衡量其可靠性的標準——X個9,這個X是表明數字3~5。X個9表示在軟件系統1年時間的使用過程當中,系統能夠正常使用時間與總時間(1年)之比,咱們經過下面的計算來感覺下X個9在不一樣級別的可靠性差別。python

    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 監控什麼東西

監控一切須要監控的東西,只要可以想到,可以用命令實現的都能用來監控mysql

1.2.1 監控範疇

1.3 怎麼來監控

1.3.1 遠程管理服務器

若是想遠程管理服務器就有遠程管理卡,好比Dell idRAC,HP ILO,IBM IMMlinux

1.3.2 監控硬件

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

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

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 mpstatgit

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

[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監控範疇

  ²  硬件監控 :Zabbix IPMI Interface

  ²  系統監控 :Zabbix Agent Interface

  ²  Java 監控:ZabbixJMX Interface

  ²  網絡設備監摶:Zabbix SNMP Interface

  ²  應用服務監控:Zabbix Agent UserParameter

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

  ²  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=,
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[,,,]  鍵值,檢測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[,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[,,,]   進程數。返回整數
    net.tcp.port[,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監控對的主機

 

相關文章
相關標籤/搜索