zabbix3.0監控詳解



第1章 前言

1.1 我們的職責

1.    保障企業數據的安全可靠。

2.    爲客戶提供7*24小時服務。

3.    不斷提升用戶的體驗。

    http://blog.csdn.net/pan_tian/article/details/23270119

網站可用性

所謂網站可用性(availability)也即網站正常運行時間的百分比,業界用 N 9 來量化可用性, 最常說的就是類似 49(也就是99.99%) 的可用性。

    描述    通俗叫法    可用性級別  年度停機時間

    基本可用性  2個9   99% 87.6小時

    較高可用性  3個9   99.9%   8.8小時

    具有故障自動恢復能力的可用性    4個9   99.99%  53分鐘

    極高可用性  5個9   99.999% 5分鐘

1.2 通過命令監控服務器

        如果想遠程管理服務器就有遠程管理卡,比如Dell idRACHP ILOIBM IMM

        查看硬件的溫度/風扇轉速,電腦有擼大師,服務器就有ipmitool。使用ipmitool實現對服務器的命令行遠程管理

    查看硬件的溫度/風扇轉速,電腦有擼大師,服務器就有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.2.1 查看cpu的信息

[root@m01 tools]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 78
Model name:            Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz
Stepping:              3
CPU MHz:               2400.001
BogoMIPS:              4800.00
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              3072K
NUMA node0 CPU(s):     0,1
[root@m01 tools]#

1.2.2 查看系統負載


[root@m01 tools]# uptime
 03:17:33 up  1:03,  2 users,  load average: 0.18, 0.05, 0.01
當前系統時間up 運行時間 2users登錄的用戶數 平均負載 1,5,15minutes


最佳負載:過去一分鐘的平均負載等於CPU的核數(或者兩倍)

怎麼判斷服務器的負載過高:就是看你的過去1分鐘的平均負載是否超過CPU的核數(或者2倍)

1.2.3 top實時動態


top - 03:27:14 up  1:13,  2 users,  load average: 0.00, 0.02, 0.00
#第一行和uptime一樣
Tasks:  90 total,   1 running,  89 sleeping,   0 stopped,   0 zombie
#第二行 顯示當前進程統計信息
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  #第三行 CPU的統計信息  0.0%us,用戶使用的cpu百分比 0.2%sy,系統使用CPU百分比 %id空閒的CPU百分比
Mem:   1004112k total,   395132k used,   608980k free,    26712k buffer #第四行:內存的統計信息
Swap:   786428k total,        0k used,   786428k free,   256904k cached
#第五行:swap統計信息  
   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
     1 root      20   0 19352 1528 1228 S  0.0  0.2   0:01.70 init     
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd 
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.87 migration/
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0
     6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
     7 root      RT   0     0    0    0 S  0.0  0.0   0:00.53 migration/
     8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1
     9 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/ 快捷鍵 z 加顏色 x高亮顯示 > 向右<向左


1.2.4 顯示內存信息(freevmstat

[root@m01 tools]# free -h
             total       used       free     shared    buffers     cached
Mem:          980M       480M       500M       228K        26M       341M
-/+ buffers/cache:       112M       868M
Swap:         767M         0B       767M
說明:centos6.5以前沒有-h參數,只有-m

vmstat用法

l  參數

l  -a:顯示活躍和非活躍內存

l  -f:顯示從系統啓動至今的fork數量 -m:顯示slabinfo

l  -n:只在開始時顯示一次各字段名稱。

l  -s:顯示內存相關統計信息及多種系統活動數量。

u  delay:刷新時間間隔。如果不指定,只顯示一條結果。

u  count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮。

l  -d:顯示磁盤相關統計信息。

l  -p:顯示指定磁盤分區統計信息

l  -S:使用指定單位顯示。參數有 k K m M ,分別代表1000102410000001048576字節(byte)。默認單位爲K1024 bytes

l  -V:顯示vmstat版本信息。

[root@m01 ~]# vmstat 2    #每二秒顯示一次系統內存的統計信息
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   5748   7808  24796 168440    0    1    88   243   74  143  1  1 95  4  0   
 0  0   5748   7644  24828 168444    0    0     2    42   68  123  3  1 93  4  0   
 0  0   5748   7644  24828 168444    0    0     0     0   28   56  0  0 100  0  0  
 0  0   5748   7620  24852 168444    0    0     0   138   41  126  0  0 99  0  0   
^C
說明: 類別    項目    含義                                        說明
Procs    r        等待執行的任務數                            展示了正在執行和等待CPU資源的任務個數。當這個值超過了CPU數目,就會出現CPU瓶頸了
        b        處在非中斷睡眠狀態的進程數     
       
Memory    swpd    正在使用的swap大小單位K    
        free    空閒的內存空間    
        buff    已使用的buff大小,對塊設備的讀寫進行緩衝    
        cache    已使用的cache大小,文件系統的cache    
        inact    非活躍內存大小     
        active    活躍的內存大小     
       
Swap    si    交換內存使用,由磁盤調入內存    
        so    交換內存使用,由內存調入磁盤    
       
IO      bi    從塊設備讀入的數據總量(讀磁盤) (KB/s),    
        bo    寫入到塊設備的數據總理(寫磁盤) (KB/s)    
       
System    in    每秒產生的中斷次數    
          cs      每秒產生的上下文切換次數                        上面這2個值越大,會看到由內核消耗的CPU時間會越多
       
CPU       us    用戶進程消耗的CPU時間百分比                     us 的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超過50% 的使用,那麼我們就該考慮優化程序算法或者進行加速了
          sy    內核進程消耗的CPU時間百分比                     sy 的值高時,說明系統內核消耗的CPU資源多,這並不是良性的表現,我們應該檢查原因。
          id    空閒    
          wa    IO等待消耗的CPU時間百分比                       wa 的值高時,說明IO等待比較嚴重,這可能是由於磁盤大量作隨機訪問造成,也有可能是磁盤的帶寬出現瓶頸(塊操作)。 [root@m01 ~]# vmstat 2 5   #每二秒顯示一次系統內存的統計信息,總共5次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0   5748   8108  25668 168456    0    1    86   239   73  142  1  1 95  3  0   
 0  0   5748   8108  25724 168472    0    0     0   180   48  108  0  0 99  1  0   
 0  0   5748   8108  25740 168456    0    0     0    16   33   76  0  1 100  0  0  
 0  0   5748   8108  25788 168480    0    0     2    68   77  143  3  0 96  1  0   
 0  0   5748   8108  25788 168476    0    0     0     0   26   57  0  1 100  0  0  
[root@m01 ~]#

1.2.5 htop

安裝
echo "192.168.12.200 mirrors.aliyun.com" >> /etc/hosts
wget -O /etc/yum.repos.d/CentOS-Base.repo http://192.168.12.200/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://192.168.12.200/repo/epel-6.repo
yum clean all
yum -y install htop

image.png

1.2.6 顯示磁盤信息

[root@m01 tools]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  1.1G  7.4G  13% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot
[root@m01 tools]#
[root@m01 tools]# dd if=/dev/zero of=tese.data bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0389443 s, 269 MB/s
[root@m01 tools]# if input file輸入文件 /dev/zero 這是系統的特殊設備,能夠源源不斷的產生0字符流 of  output file 輸出設備
bs block size 塊大小
count block 快的數量 總結:產生的test.data文件大小 bs * count 經驗:最佳測試磁盤寫的速度的測試文件

 

 

1.2.7 iotop實時查看系統io(輸入輸出)負載

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO   COMMAND< 
 1308 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % -bash
 2488 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % -bash
   50 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [aio/0]
   51 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [aio/1]
   22 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [async/mgr]
   33 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ata_aux]
   34 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ata_sff/0]
   35 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ata_sff/1]
   25 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bdi-~fault]
  773 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bluetooth]
   19 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cgroup]
   52 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [crypto/0]
   53 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [crypto/1]
   66 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [deferwq]

1.2.8 網絡太卡找iftop nethogs

yum -y install iftop nethogs
iftop:查看網卡流量(默認監控網卡eth0)
[root@m01 tools]# iftop
interface: eth0
IP address is: 10.0.0.61
MAC address is: 00:0c:29:ab:6f:34
              12.5Kb         25.0Kb        37.5Kb         50.0Kb   62.5Kb
└─────────────┴──────────────┴─────────────┴──────────────┴──────────────
10.0.0.61              => 10.0.0.253               992b   1.17Kb  1.50Kb
                       <=                          160b    160b    187b
10.0.0.255             => 10.0.0.253                 0b      0b      0b
                       <=                            0b    187b     78b
10.0.0.61              => public1.alidns.com         0b     55b     91b
                       <=                            0b    117b    179b
 
 
 
 
─────────────────────────────────────────────────────────────────────────
TX:             cum:   4.77KB   peak:   4rates:    992b   1.22Kb  1.59Kb
RX:                    1.30KB           1.84Kb     160b    464b    444b
TOTAL:                 6.07KB           6.33Kb    1.12Kb  1.68Kb  2.02Kb
監控eth1網卡
[root@m01 tools]# iftop -i eth1
interface: eth1
IP address is: 172.16.1.61
MAC address is: 00:0c:29:ab:6f:3e
              12.5Kb         25.0Kb        37.5Kb         50.0Kb   62.5Kb
└─────────────┴──────────────┴─────────────┴──────────────┴──────────────
 
 
 
 
 
 
 
 
 
 
─────────────────────────────────────────────────────────────────────────
TX:             cum:      0B    peak:    rates:      0b      0b      0b
RX:                       0B               0b        0b      0b      0b
TOTAL:                    0B               0b        0b      0b      0b
nethogs:查看每個進程流量
[root@m01 tools]# nethogs
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
NetHogs version 0.8.5
 
    PID USER     PROGRAM             DEV        SENT      RECEIVED      
   2486 root     sshd: root@pts/2    eth0        0.142       0.047 KB/sec
      ? root     unknown TCP                     0.000       0.000 KB/sec
 
  TOTAL                                          0.142       0.047 KB/sec

1.2.9 實時監控cpu

mpstatMultiprocessor Statistics的縮寫,是實時系統監控工具。其報告與CPU的一些統計信息,這些信息存放在/proc/stat文件中。在多CPUs系統裏,其不但能查看所有CPU的平均狀況信息,而且能夠查看特定CPU的信息。mpstat最大的特點是:可以查看多核心cpu中每個計算核心的統計數據;而類似工具vmstat只能查看系統整體cpu情況。

語法

mpstat [-P {|ALL}] [internal [count]]

參數

-P {|ALL} 表示監控哪個CPU, cpu在[0,cpu個數-1]中取值

internal 相鄰的兩次採樣的間隔時間、

count 採樣的次數,count只能和delay一起使用

當沒有參數時,mpstat則顯示系統啓動以後所有信息的平均值。有interval時,第一行的信息自系統啓動以來的平均信息。從第二行開始,輸出爲前一個interval時間段的平均信息。

實例1-1 #查看多核CPU核心的當前運行狀況信息, 2秒更新一次


[root@m01 ~]# mpstat -P ALL 2
Linux 2.6.32-696.el6.x86_64 (m01)   10/10/2017  _x86_64_    (1 CPU)
 
04:25:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
04:25:06 PM  all    3.02    0.00    0.00    2.51    0.00    0.00    0.00    0.00   94.47
04:25:06 PM    0    3.02    0.00    0.00    2.51    0.00    0.00    0.00    0.00   94.47
 
04:25:06 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
04:25:08 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
04:25:08 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
 
04:25:08 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
04:25:10 PM  all    0.00    0.00    0.00    1.50    0.00    0.00    0.00    0.00   98.50
04:25:10 PM    0    0.00    0.00    0.00    1.50    0.00    0.00    0.00    0.00   98.50
 
04:25:10 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
04:25:12 PM  all    0.00    0.00    0.50    7.00    0.00    0.00    0.00    0.00   92.50
04:25:12 PM    0    0.00    0.00    0.50    7.00    0.00    0.00    0.00    0.00   92.50
說明: %user      在internal時間段裏,用戶態的CPU時間(%),不包含nice值爲負進程  (usr/total)*100
%nice      在internal時間段裏,nice值爲負進程的CPU時間(%)   (nice/total)*100
%sys       在internal時間段裏,內核時間(%)       (system/total)*100
%iowait    在internal時間段裏,硬盤IO等待時間(%) (iowait/total)*100
%irq       在internal時間段裏,硬中斷時間(%)     (irq/total)*100
%soft      在internal時間段裏,軟中斷時間(%)     (softirq/total)*100
%idle      在internal時間段裏,CPU除去等待磁盤IO操作外的因爲任何原因而空閒的時間閒置時間(%) (idle/total)*100


1.3 需要監控什麼

l  內存

l  磁盤

l  網絡

l  cpu負載

l  硬件、溫度、風扇

l  軟件服務

第2章 zabbix介紹

2.1 zabbix簡介

一個軟件能夠實現99%監控

Zabbix是一個企業級的、開源的、分佈式的監控套件

Zabbix可以監控網絡和服務的監控狀況. Zabbix利用靈活的告警機制,允許用戶對事件發送基於Email的告警. 這樣可以保證快速的對問題作出相應. Zabbix可以利用存儲數據提供傑出的報告及圖形化方式. 這一特性將幫助用戶完成容量規劃.

Zabbix支持pollingtrapping兩種方式. 所有的Zabbix報告都可以通過配置參數在WEB前端進行訪問. Web前端將幫助你在任何區域都能夠迅速獲得你的網絡及服務狀況. Zabbix可以通過儘可能的配置來扮演監控你的IT基礎框架的角色,而不管你是來自於小型組織還是大規模的公司.

Zabbix是零成本的. 因爲Zabbix編寫和發佈基於GPL V2協議. 意味着源代碼是免費發佈的.

2.2 常見的監控軟件:nagios+cactizabbix

1.      nagios+cacti

Nagios是插件式的結構,它本身沒有任何監控功能,所有的監控都是通過插件進行的,因此其是高度模塊化和富於彈性的。Nagios監控的對象可分爲兩類:主機和服務。主機通常指的是物理主機,如服務器、路由器、工作站和打印機等,這裏的主機也可以是虛擬設備,如xen虛擬出的Linux系統;而服務通常指某個特定的功能,如提供http服務的httpd進程等。而爲了管理上的方便,主機和服務還可以分別被規劃爲主機組和服務組等。

Nagios不監控任何具體數值指標(如操作系統上的進程個數),它僅用四種抽象屬性對被監控對象的狀態進行描述:OKWARNING, CRITICALUNKNOWN。於是,管理員只需要對某種被監控對象的WARNINGCRITICAL狀態的閾值進行關注和定義即可。Nagios通過將WARTINGCRTICAL的閾值傳遞給插件,並由插件負責某具體對象的監控及結果分析,其輸出信息爲狀態信息(OK,WARNING,CRITICALUNKOWN)以及一些附加的詳細說明信息。

 

Cacti是一套基於PHP,MySQL,SNMPRRDTool開發的網絡流量監測圖形分析工具。

Cacti是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool複雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。界面友好。軟件 Cacti 的發展是基於讓 RRDTool 使用者更方便使用該軟件,除了基本的 Snmp 流量跟系統資訊監控外,Cacti 也可外掛 Scripts 及加上 Templates 來作出各式各樣的監控圖。

cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然後用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,snmprrdtoolcacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。

Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ipsnmp團體名、端口號、模板信息等變量。

snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(Round Robin Archive),它能夠存儲的數據筆數在創建時就已經定義。

 

第3章 zabbix部署

3.1 zabbix服務端

1.環境準備


[root@m01 tools]# hostname -I
10.0.0.61 172.16.1.61
[root@m01 tools]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@m01 tools]# ll -d /tmp/
drwxrwxrwt. 3 root root 4096 Sep 23 02:20 /tmp/
[root@m01 tools]#  cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@m01 tools]#
安裝環境選擇
選擇LAMP還是LNMP
    LAMP 作爲測試軟件快速平臺  開源軟件基於LAMP架構
 
 
    這是全新的物理機:
        yum安裝 LAMP+zabbix
        編譯安裝nginx,php,二進制mysql
          apache==》cp -R /usr/share/zabbix/ /var/www/html/
          nginx ==》 cp -R /usr/share/zabbix/ /application/nginx/html
         
          apache的配置文件是有zabbix安裝包代爲修改
          但是nginx的配置文件就需要自己改了
         
          php :和LAMP一樣的操作,執行sed命令修改配置文件..需要注意php單獨啓動服務和編譯參數的模塊是否齊全
                sed -i.ori 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /application/php/lib/php.ini
 
          MySQL:創建數據庫,授權,導入數據
 
    這是亂七八糟物理機
    能否重裝系統
    只能編譯安裝,yum安裝雖然能夠解決軟件依賴問題,但是解決不了依賴衝突的問題
        編譯安裝LNMP
        編譯安裝zabbix server
2.下載zabbix包
wget http://192.168.12.200/zabbix/zabbix3.0.9_yum.tar.gz


3.安裝zabbix

離線安裝
第一步下載
wget http://192.168.12.200/zabbix/zabbix3.0.9_yum.tar.gz
第二步解壓包
[root@m01 tools]# tar xfP zabbix3.0.9_yum.tar.gz
第三步一鍵安裝
[root@m01 tools]# yum -y --nogpgcheck -C install httpd mysql-server php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath
yum -y --nogpgcheck -C install zabbix-web zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-java-gateway wqy-microhei-fonts net-snmp net-snmp-utils
    (1)安裝LAMP:yum安裝Apache、mysql、PHP5.5
        安裝http:
        yum -y install httpd
        安裝mysql:
        yum -y install mysql-server
        安裝php5.5:
        rpm -ivh http://repo.webtatic.com/yum/el6/x86_64/webtatic-release-6-9.noarch.rpm
        yum -y install php55w php55w-mysql php55w-common php55w-gd php55w-mbstring php55w-mcrypt php55w-devel php55w-xml php55w-bcmath
   
 
    (2)安裝Zabbix Server
        rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
        yum -y install zabbix-web zabbix-server-mysql zabbix-web-mysql
   
   
    安裝配置Zabbix Agent
        yum -y localinstall http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
       
   
    (3)配置相關服務
        MySQL配置
        \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
        啓動MySQL
        /etc/init.d/mysqld start
        創建用戶並授權
        mysql
        create database zabbix character set utf8 collate utf8_bin;
        grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
        flush privileges;
        exit
 
        導入數據文件
        cd /usr/share/doc/zabbix-server-mysql-3.0.9
        zcat create.sql.gz |mysql -uzabbix -pzabbix zabbix
 
        相關數據修改
        # 修改php配置文件
        egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /etc/php.ini
 
        sed -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /etc/php.ini
 
        # 修改zabbix_server配置文件
        sed -i '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
 
        # 網頁文件
        cp -R /usr/share/zabbix/ /var/www/html/
 
        # 文件授權
        chmod -R 755 /etc/zabbix/web
        chown -R apache.apache /etc/zabbix/web
 
        # 啓動apache && zabbix
        echo "ServerName 127.0.0.1:80">>/etc/httpd/conf/httpd.conf
        /etc/init.d/httpd start
        /etc/init.d/zabbix-server start
   
    服務開機啓動順序:必須先啓動mysql,然後啓動zabbix server
    [root@m01 ~]# tail -4 /etc/rc.local
    /etc/init.d/mysqld start
    /etc/init.d/zabbix-server start
    /etc/init.d/httpd start
    /etc/init.d/zabbix-agent start
   
    [root@web01 ~]# tail -1 /etc/rc.local
    /etc/init.d/zabbix-agent start

3.2 zabbix客戶端


客戶端服務端都需要安裝agent程序
        rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.9-1.el6.x86_64.rpm
客戶端配置
    修改配置文件
    sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
   
    啓動agent
    /etc/init.d/zabbix-agent start
   
    在服務端執行檢查命令
    [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.8 -p 10050 -k "system.cpu.load[all,avg1]"
    0.000000   
總結圖示


image.png

3.3 網頁進行安裝

第一步:
http://10.0.0.61/zabbix/setup.php

image.png

第二步:點擊下一步

image.png


第三步:點擊下一步

image.png


第四步:點擊下一步

image.png


第五步

image.png


第六步:點擊完成

image.png


第七步:點擊完成後安裝結束

設置中文顯示中文界面

image.png


最後界面就是中文的界面了。

image.png

 

3.4 添加監控主機

主機名稱:zabbix程序識別用的名字

可見的名稱:給人看,顯示在網頁上的

羣組:同學(主機)與小組(羣組)方便管理

agent代理程序的接口

agent代理程序的接口:指定客戶端IP地址

image.png

image.png

檢查客戶端是否被監控的命令

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

3.5 添加監控主機模板

image.png

 

3.6 查看最新數據

監控出現圖形了,但是可能會出現亂碼

解決中文亂碼
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
    yum -y install wqy-microhei-fonts
    \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

image.png

第4章 zabbix自定義監控

4.1 被監控主機修改配置文件

web01客戶端執行
[root@web01 ~]# sed -i '293a UserParameter=login-user,who|wc -l' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@web01 ~]#
 
服務端操作
[root@m01 ~]# zabbix_get -s 172.16.1.8 -p 10050 -k "login-user"
1
[root@m01 ~]#

4.2 網頁上添加自定義監控

4.2.1 添加模板

模板的功能:一處創建,處處使用


image.png

image.png

4.2.2 添加應用集:一個目錄,統一存放具有相關性的監控項

image.png

image.png

image.png

4.2.3 添加監控項

告訴服務端server你該去哪裏獲取什麼方面數據


image.png

image.png

image.png

4.2.4 添加觸發器

需要報警的監控項設置觸發器

嚴重性:

²  警告級別的報警發給初級運維

²  一般嚴重級別的報警發給初級運維,中級運維

²  嚴重級別的報警發給初級運維,中級運維,高級運維

²  災難級別的報警發給初級運維,中級運維,高級運維,總監

image.png

image.png

image.png

image.png

image.png


4.2.5 添加圖形

image.png

image.png

image.png

image.png

4.2.6 使用模板

image.png

image.png

第5章 報警

5.1 報警種類

郵件報警:存在收不到的風險

微信報警:通知及時

短信報警:不依賴網絡

電話報警:有信號就可以報警

APP報警

5.2 安裝報警客戶端

2安裝 Agent
1.切換到zabbix腳本目錄(如何查看zabbix腳本目錄):
vi /etc/zabbix/zabbix_server.conf
查看AlertScriptsPath
cd /usr/lib/zabbix/alertscripts/
2.獲取OneITSM agent包:
wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.0.tar.gz tar -zxf oneitsm_zabbix_release-1.0.0.tar.gz
cd oneitsm/bin
bash install.sh 7145112f-7f7a-8cfb-cd26-810036d6d479 start to create config file...
Zabbix管理地址: 10.0.0.61/zabbix
Zabbix管理員賬號: Admin
Zabbix管理員密碼:
start to auth by zabbix admin user and password...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0    70    0    70    0   125    847   1514 --:--:-- --:--:-- --:--:--     0
auth success!
start to create mediatype...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
397   130  130   130    0   267   2706   5559 --:--:-- --:--:-- --:--:--     0
media type resonse:{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params.","data":"Media type \"oneitsm media\" already exists."},"id":1}
create media type failed! error message:{"jsonrpc":"2.0","error":{"code":-32602,"message":"Invalid params.","data":"Media type \"oneitsm media\" already exists."},"id":1}
[root@m01 bin]#

image.png

第6章 監控可視化

6.1 聚合圖形

聚合圖形:將同一類型的監控放在一起看,容易對比分析

image.png

image.png

image.png

image.png

image.png 

6.2 幻燈片演示

  幻燈片:輪流播放聚合圖形
       . 模板的共享
       https://github.com/zhangyao8/zabbix-community-repos
       https://share.zabbix.com/

image.png

image.png

第7章 應用服務監控

7.1 監控rsync服務端口

1.      創建一個監控認識有哪些服務端口的模板

image.png

image.png

2.      添加一個應用集

image.png

image.png

3.      新建一個監控項

image.png

4.      添加觸發器

 image.png

image.png

7.2 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常


怎麼監控進程?

        proc.num[<name>,<user>,<state>,<cmdline>]   進程數。返回整數
        zabbix_get -s 172.16.1.8 -p 10050 -k 'proc.num[nginx]'
[root@m01 bin]# zabbix_get -s 172.16.1.31 -p 10050 -k "proc.num[nfsd]"
8
[root@m01 bin]#

怎麼監控端口?

        net.tcp.listen[port]    檢查 TCP 端口 是否處於偵聽狀態。返回 0 - 未偵聽;1 - 正在偵聽
        net.tcp.port[<ip>,port] 檢查是否能建立 TCP 連接到指定端口。返回 0 - 不能連接;1 - 可以連接 [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,80]'
        1
        [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[,873]'
        1
        [root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k 'net.tcp.port[873]'
        ZBX_NOTSUPPORTED: Invalid second parameter.

7.3 監控3web服務器

網頁創建模板進行監控80端口
三個web服務器中進行web檢測
寫腳本
[root@web01 conf]# cat  /server/scripts/nginx_check.sh
char=`curl -s http://10.0.0.8/test.html`
[ "$char" == "oldboy" ] && echo 1 ||echo 0
[root@web01 conf]#
寫模板文件
[root@web01 conf]# cat  /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
UserParameter=nginx_check,/bin/sh /server/scripts/nginx_check.sh
[root@web01 conf]#
重啓客戶端
[root@web01 conf]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
監控機進行測試
[root@m01 bin]# zabbix_get -s 172.16.1.8 -p 10050 -k "nginx_check"
1
[root@m01 bin]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_check"
1
[root@m01 bin]# zabbix_get -s 172.16.1.9 -p 10050 -k "nginx_check"
1
[root@m01 bin]#
[root@m01 bin]# zabbix_get -s 172.16.1.7 -p 10050 -k "nginx_check"
0  #0是不正常1是正常
[root@m01 bin]#

7.4 監控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@db01 zabbix_agentd.d]# tail -2 userparameter_mysql.conf
UserParameter=mysql.ping,/application/mysql/bin/mysqladmin -uroot -p123456  ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V
重啓
 [root@db01 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
服務端測試
[root@m01 zabbix_agentd.d]# zabbix_get -s 172.16.1.51 -p 10050 -k 'mysql.ping'
0#發現mysql命令找不到 在客戶端模板配置文件裏面命令使用絕對路徑
[root@m01 zabbix_agentd.d]# zabbix_get -s 172.16.1.51 -p 10050 -k 'mysql.ping'
1
[root@m01 zabbix_agentd.d]#

7.5 監控URL地址來更精確的監控我們的網站運行正常

image.png

image.png

image.png

image.png

image.png


最後在監測中查看web監測

image.png

7.6 監控Nginx7種連接狀態

修改配置加入server標籤
[root@web03 ~]# cat /application/nginx/conf/nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
######status#########
    server {
        listen       127.0.0.1:80;
            stub_status on;
            access_log off;
        }
server {
        listen       10.0.0.9;
        location / {
            root   html;
            index  index.html index.htm;
                   }
      }
include extra/www.conf;
include extra/bbs.conf;
include extra/blog.conf;
 }
重啓服務
檢查狀態
[root@web03 ~]# curl 127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
 8 8 8
Reading: 0 Writing: 1 Waiting: 0
[root@web03 ~]#
[root@web03 ~]# cat >> /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf <<END
> UserParameter=nginx_active,curl -s  127.0.0.1/nginx_status|awk '/Active/ {print $NF}'
> UserParameter=nginx_accepts,curl -s  127.0.0.1/nginx_status|awk 'NR==3 {print $1}'
> UserParameter=nginx_handled,curl -s  127.0.0.1/nginx_status|awk 'NR==3 {print $2}'
> UserParameter=nginx_requests,curl -s  127.0.0.1/nginx_status|awk 'NR==3 {print $3}'
> UserParameter=nginx_reading,curl -s  127.0.0.1/nginx_status|awk 'NR==4 {print $2}'
> UserParameter=nginx_writing,curl -s  127.0.0.1/nginx_status|awk 'NR==4 {print $4}'
> UserParameter=nginx_waiting,curl -s  127.0.0.1/nginx_status|awk 'NR==4 {print $6}'
> END
[root@web03 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@web03 ~]#
服務端測試
[root@m01 bin]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_waiting"
Reading: 0 Writing: 1 Waiting: 0
[root@m01 bin]# zabbix_get -s 172.16.1.8  -p 10050 -k "nginx_accepts"
 58 58 58
[root@m01 bin]#
網頁進行自定義監控

image.png

image.png

image.png

image.png

image.png

image.png

 

第8章 自動發現和自動註冊

8.1 自動發現:服務端發現客戶端

服務端自動發現局域網中所有的客戶端agent(主動模式)

優點:方便找到所有的客戶端,不會遺漏

       缺點:一旦agent過多,server壓力很大,每隔一段時間server會掃描一次局域網中的所有機器

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

8.2 自動註冊:客戶端主動到服務端登記信息

所有的客戶端agent主動去服務端server登記註冊(小弟上門求收留)被動模式

       優點:對服務端的壓力最低。

       缺點:配置過程稍微複雜

應用場景:當自動發現時,server端壓力過大時,用自動註冊

修改配置文件
[root@web03 zabbix_agentd.d]# sed -i 's#Hostname=Zabbix server#Hostname=web03#' /etc/zabbix/zabbix_agentd.conf
[root@web03 zabbix_agentd.d]# sed -i 's#ServerActive=127.0.0.1#ServerActive=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf [root@web03 zabbix_agentd.d]#  sed -i '176a HostMetadataItem=system.uname' /etc/zabbix/zabbix_agentd.conf
重啓
[root@web03 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@web03 zabbix_agentd.d]#

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

第9章 分佈式監控

默認只能監控同一個局域網的機器

一臺sever的監控主機數量是有限的

功能:

能夠減輕服務端的壓力

zabbix server 只能在同一個局域網中監控

9.1 常規安裝部署

9.1.1 在客戶端進行下載安裝

[root@web01 tools]# wget http://192.168.12.200/zabbix/zabbix-proxy-mysql-3.0.9-1.el6.x86_64.rpm
echo "192.168.12.200 mirrors.aliyun.com" >> /etc/hosts
wget -O /etc/yum.repos.d/CentOS-Base.repo http://192.168.12.200/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://192.168.12.200/repo/epel-6.repo
 
yum clean all
yum -y  localinstall zabbix-proxy-mysql-3.0.9-1.el6.x86_64.rpm

9.1.2 安裝配置數據庫

zabbix proxy需要數據庫存儲相關配置,但不存儲監控數據
生產環境:在proxy
 
1  
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.06 sec)
 
mysql> grant all privileges on zabbix_proxy.* to zabbix@'172.16.1.%' identified by 'zabbix';
Query OK, 0 rows affected (0.15 sec)
 
mysql>

9.1.3 導入sql文件

web客戶端傳文件到服務端
scp /usr/share/doc/zabbix-proxy-mysql-3.0.9/schema.sql.gz 10.0.0.61:/server/
m01導入文件
zcat /server/schema.sql.gz |mysql -uroot   zabbix_proxy

9.1.4 配置文件修改

vim /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.61
Hostname=web01
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=zabbix DBHost=172.16.1.61

 

9.1.5 啓動並檢查日誌

[root@web01 tools]# /etc/init.d/zabbix-proxy start
Starting Zabbix proxy:                                     [  OK  ]
[root@web01 tools]# tailf /var/log/zabbix/zabbix_proxy.log
 39637:20171013:113558.590 cannot send heartbeat message to server at "172.16.1.61": proxy "web01" not found
 39651:20171013:113558.608 proxy #16 started [housekeeper #1]
 39652:20171013:113558.618 proxy #17 started [http poller #1]
 39654:20171013:113558.619 proxy #19 started [history syncer #1]
 39650:20171013:113558.621 proxy #15 started [icmp pinger #1]
 39653:20171013:113558.621 proxy #18 started [discoverer #1]
 39655:20171013:113558.626 proxy #20 started [history syncer #2]
 39658:20171013:113558.639 proxy #23 started [self-monitoring #1]
 39657:20171013:113558.642 proxy #22 started [history syncer #4]
 39656:20171013:113558.648 proxy #21 started [history syncer #3]

9.1.6 配置zabbix agent

[root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.8#g' /etc/zabbix/zabbix_agentd.conf
[root@web01 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]
[root@web01 ~]#

9.2 開始網頁操作部署

將代理節點註冊到zabbix server

 

 image.png

image.png

image.png

image.png

image.png

第10章 snmp監控(交換機監控)

能用zabbix agent:系統能夠安裝zabbix軟件的時候用,交換機打印機等智能設備不能使用zabbix程序。

SNMP是專用來設備監控

優點:軟件小巧,所以設備都可以安裝使用

缺點:支持功能少

生產環境建議:先安裝使用agent,若不能安裝則使用SNMP

10.1 Linux系統安裝啓動服務

[root@m01 server]# rpm -qa |grep snmp
net-snmp-5.5-60.el6.x86_64
net-snmp-utils-5.5-60.el6.x86_64
net-snmp-libs-5.5-60.el6.x86_64
[root@m01 server]#
沒有就安裝
    yum -y install net-snmp net-snmp-utils
配置snmp
[root@m01 ~]# sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf
[root@m01 ~]# [root@m01 ~]# /etc/init.d/snmpd start
Starting snmpd:                                            [  OK  ]
[root@m01 ~]#
使用
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01
[root@m01 ~]# [root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysContact
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 SysService
SNMPv2-MIB::sysServices = No Such Instance currently exists at this OID
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 hrSWRunName
HOST-RESOURCES-MIB::hrSWRunName.1 = STRING: "init"
HOST-RESOURCES-MIB::hrSWRunName.2 = STRING: "kthreadd"
HOST-RESOURCES-MIB::hrSWRunName.3 = STRING: "migration/0"
HOST-RESOURCES-MIB::hrSWRunName.4 = STRING: "ksoftirqd/0"
HOST-RESOURCES-MIB::hrSWRunName.5 = STRING: "stopper/0" 說明: http://www.ttlsa.com/monitor/snmp-oid/

10.2 在網頁上配置使用

image.png

image.png

image.png

image.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章