天天看點

CentOS 6.5 Zabbix監.控系統功能及基本使用

一、Zabbix基本介紹:

   zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案。它能監視各種網絡參數,保證伺服器系統的安全營運;并提供柔軟的通知機制以讓系統管理者快速定位/解決存在的各種問題。

zabbix由2部分構成,zabbix server與可選元件zabbix agent。

   zabbix server:可以通過SNMP,zabbix agent,ping,端口監視等方法提供對遠端伺服器/網絡狀态的監視,資料收集等功能,它可以運作在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。

   zabbix agent:需要安裝在被監視的目标伺服器上,它主要完成對硬體資訊或與作業系統有關的記憶體,CPU等資訊的收集。zabbix agent可以運作在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista等系統之上。

   Server:指安裝zabbix服務的伺服器(以下簡稱伺服器端),是最重要的部份,主要安裝在linux系統上(支援多種作業系統),采用mysql存儲監.控資料并使用apache+php的方式呈現。

Agent:指安裝在被監.控裝置上的zabbix代理(以下簡稱代理),被監.控裝置上的資料由代理收集後統一上傳到伺服器端由伺服器端收集、整理并呈現。

SNMP:也是agent的一種,指支援SNMP協定的裝置(也可以是伺服器),通過設定SNMP的參數将相關監.控資料傳送至伺服器端(大部份的交換機、防火牆等網絡裝置都支援SNMP協定)。

IPMI:Agent的另一種方式,主要應用于裝置的實體性能監.控,例如裝置的溫度、風扇的轉速等。

zabbix的體系結構圖:

<a href="http://s3.51cto.com/wyfs02/M01/27/6C/wKiom1Ny4dPDa9JUAALCwVlhA0g382.jpg" target="_blank"></a>

二、Zabbix安裝配置

第一步:下載下傳所需要用的的程式包:

1、zabbix-2.0.8-3.el6.x86_64.rpm                # 主程式包

2、zabbix-agent-2.0.8-3.el6.x86_64.rpm          # 被監.控端需要安裝的代理程式包

3、zabbix-get-2.0.8-3.el6.x86_64.rpm            # 去被監.控端拉取資料的程式包

4、zabbix-sender-2.0.8-3.el6.x86_64.rpm         # 發送資料所需要安培的程式包

5、zabbix-server-2.0.8-3.el6.x86_64.rpm         # 做為伺服器端所需要安裝的各

6、zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm   # 伺服器端安裝資料庫程式包

7、zabbix-web-2.0.8-3.el6.noarch.rpm            # web界面需要安裝的程式包

8、zabbix-web-mysql-2.0.8-3.el6.noarch.rpm      # web界面需要安裝的資料庫程式包

# 作為伺服器端需要安裝的程式包除了2和4都要安裝

[root@node1 ~]# yum -y install zabbix-2.0.8-3.el6.x86_64.rpm zabbix-get-2.0.8-3.el6.x86_64.rpm zabbix-server-2.0.8-3.el6.x86_64.rpm zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm zabbix-web-2.0.8-3.el6.noarch.rpm zabbix-web-mysql-2.0.8-3.el6.noarch.rpm

# 安裝好之後可以檢視一下資料庫程式包安裝的位置,特别要注意紅色的資料庫檔案

[root@node1 ~]# rpm -ql zabbix-server-mysql

/usr/sbin/zabbix_server_mysql

/usr/share/doc/zabbix-server-mysql-2.0.8

/usr/share/doc/zabbix-server-mysql-2.0.8/create

/usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql

/usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql

/usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql

[root@node1 ~]# cd /etc/zabbix/

[root@node1 zabbix]# ls 

web  zabbix_server.conf

[root@node1 zabbix]# vim zabbix_server.conf

DBHost=172.16.27.88  # 連接配接資料庫的主機名

DBName=zabbix  # 資料庫名

DBUser=zabbix  # 連接配接資料庫所使用的使用者

DBPassword=linux # 使用者的資料

DBPort=3306   # 連接配接資料庫的端口

配置檔案中各參數的詳細說明如下表,按需要啟動這些參數:

DBName=zabbix

zabbix所屬資料庫名稱

DBUser=zabbix

zabbix所屬資料庫使用者

DBPassword=www.tanxw.com

zabbix資料庫密碼

StartPollers=30

開啟多線程數,一般不要超過30個

StartIPMIPollers=4

IPMI輪詢的初始值

StartPollersUnreachable=30

該線程用來單獨監控無法連接配接的主機,1個即可

StartTrappers=8

trapper線程數

StartPingers=4

fping線程數

StartDiscoverers=0

自動發現的線程數

CacheSize=384M

緩存空間大小

CacheUpdateFrequency=300

緩存更新的頻率

StartDBSyncers=8

與資料庫同步資料的線程數

TrendCacheSize=128M

總趨勢緩存大小

AlertScriptsPath=/path/something/script

腳本的存放位置

LogSlowQueries=1000

日志慢查詢設定

第二步:如果資料庫跟zabbix server不在同一台主機上,那就要去遠端主機上建立資料庫了和給使用者授權了,這裡我們也是在不同的上機上進行操作:

[root@node0 ~]# mysql -uroot -p

Enter password: 

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 8174

Server version: 10.0.10-MariaDB-log MariaDB Server

Copyright (c) 2000, 2014, Oracle, SkySQL Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]&gt; GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'linux' WITH GRANT OPTION;

Query OK, 0 rows affected (0.06 sec)

MariaDB [none]&gt; GRANT ALL ON zabbix.* TO 'zabbix'@'172.16.%.%' IDENTIFIED BY 'linux';

Query OK, 0 rows affected (0.27 sec)

MariaDB [(none)]&gt; FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]&gt; CREATE DATABASE zabbix;

Query OK, 0 rows affected (0.31 sec)

MariaDB [(none)]&gt; SHOW DATABASES;

+--------------------+

| Database           |

| information_schema |

| mysql              |

| performance_schema |

| test               |

| zabbix             |

5 rows in set (0.16 sec)

MariaDB [(none)]&gt;

第三步:在伺服器端安裝上mysql用戶端,或者把上面安裝zabbix-server-mysql生成的資料庫檔案複制到資料庫伺服器上去,再導入到資料庫中去,這裡我們使用的是遠端導入,就是在zabbix伺服器端安裝上mysql用戶端,再把/usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql、/usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql、/usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql這三個檔案導入到已經建立好的資料庫中去;

[root@node1 zabbix]# rpm -q mysql

mysql-5.1.71-1.el6.x86_64

# 使用剛授權的遠端使用者把資料導入到資料庫中去

[root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix &lt; /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql 

[root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix &lt; /usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql 

[root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix &lt; /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql

# 而後再回去172.16.27.88這台主機上的資料庫中檢視一下導入的資料是否成功

MariaDB [(none)]&gt; USE zabbix

Database changed

MariaDB [zabbix]&gt; SHOW TABLES;

+-----------------------+

| Tables_in_zabbix      |

| acknowledges          |

| actions               |

| alerts                |

| applications          |

.........................

103 rows in set (0.07 sec)

MariaDB [zabbix]&gt;

# 再回到zabbix-server伺服器端修改一下時區

[root@node1 zabbix]# vim /etc/php.ini

date.timezone = Asia/Shanghai

[root@node1 zabbix]# service httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

[root@node1 zabbix]#

第四步:啟動zabbix-servere服務,這裡要注意的是httpd安裝好和php也要安裝上,啟動httpd服務和zabbix-server之後就可以在頁面上通路安裝了,zabbix-server會啟動一大堆程序,預設監聽的端口是10051:

[root@node1 zabbix]# service zabbix-server start

Starting Zabbix server:                                    [  OK  ]

[root@node1 zabbix]# ss -tlnp

<a href="http://s3.51cto.com/wyfs02/M02/27/6D/wKiom1NzBCiCgx7kAAPJ6kMwRI4944.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/6E/wKiom1NzBG3DSI57AANrHc7qWZU530.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/6E/wKiom1NzBLqTQws4AAGJXrk4p8I194.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/6E/wKioL1NzBLvR7zImAAFZQOM_XPE355.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/6E/wKioL1NzBNnic8PEAAGJarsTVdA124.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/6E/wKioL1NzBPbg6_8-AADFBKoikAw206.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/6E/wKiom1NzBTug6dN5AAGltdw5QEg201.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/6E/wKioL1NzBTuwYTTvAARjtCt72Lw178.jpg" target="_blank"></a>

到這裡就就算是配置安裝好了,那接下來的的很多操作基本上都是在這個界面上完成的,定義各個監.控對象等。現在我們再找幾個節點,也就是再弄幾台虛拟機安裝上zabbix-agent,把這幾個安裝了zabbix-agent的主機添加到監.控服務中來:

1、在被監.控的主機上安裝zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm這幾個包,但sender這個包不是必須的,隻有在被監.控端主動向伺服器端發送監.控資料庫時才需要安裝,這裡我們就一并安裝了吧,先把資料庫這台主機安裝上agent,而後再安裝其實主機測試使用:

[root@node0 ~]# yum -y locainstall zabbix-2.0.8-3.el6.x86_64.rpm zabbix-agent-2.0.8-3.el6.x86_64.rpm zabbix-sender-2.0.8-3.el6.x86_64.rpm

# 修改配置檔案,指定zabbix的伺服器端的位址

[root@node0 ~]# cd /etc/zabbix/

[root@node0 zabbix]# ls 

zabbix_agentd.conf  zabbix_agentd.d

[root@node0 zabbix]# vim zabbix_agentd.conf 

Server=172.16.27.1# 隻需要改這個監.控伺服器位址就可以啟動了

[root@node0 ~]# service zabbix-agent start

Starting Zabbix agent:                                     [  OK  ]

[root@node0 ~]# ss -tnlp # zabbix agent監聽的端口是10050sss

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKiom1NzOQWCRNgjAAPlYqncxuA931.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKioL1NzORGQsRGYAAQjuYDwuTA488.jpg" target="_blank"></a>

3、再建立一個監.控項item,點選上圖中的Item項,再點選右上角的create item就可以建立item項了,這裡我們添加兩個做為測試,一個是eth0的資料流出量和流入量:

<a href="http://s3.51cto.com/wyfs02/M01/27/81/wKioL1NzOWqSvWJ9AAKzHYFy6cA259.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKiom1NzOcDiS-70AAODvWe7Hyo857.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKioL1NzObjTMdseAANS20_QqwU825.jpg" target="_blank"></a>

   4、建立圖形展示資料,點選Graphs,再點create graphs就可以建立圖形展示資料了,填上相關的參數:

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKiom1NzOhKx1vUpAALJHSh0eWI255.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/81/wKioL1NzOhCzetSYAAPHEhQS2kM282.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKiom1NzOm3xtXbHAAK5-TMrPkI725.jpg" target="_blank"></a>

5、多個圖組合在一個螢幕上檢視的建立,也就是定義screens:

<a href="http://s3.51cto.com/wyfs02/M02/27/81/wKioL1NzOmPhSi3hAAFeK1dqXRY848.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/81/wKioL1NzOpSwiyzaAAErob9By5k698.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/81/wKiom1NzOtux0SGXAANX77yHZFM116.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/81/wKiom1NzOvrw5WofAAPcXar9GPE343.jpg" target="_blank"></a>

   基本的監.控對象定義大概就是這個步驟,很多的監.控項還需要多花時間去了解認識,還是要結合官方文檔了解清楚,這樣才可以準确定義我們所需要監.控的對象,那接下來我們再來定義郵件通知、自動發現并添加主機和定義模闆:

1、定義模闆和發現主機,并自動添加主機:

<a href="http://s3.51cto.com/wyfs02/M02/27/9B/wKiom1NzY82zmiqoAALsAiDoC_k396.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9B/wKiom1NzZATyeCW-AAKWO1q-8LE849.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/9B/wKioL1NzZBSBVucAAAHs3215yR8064.jpg" target="_blank"></a>

定義一個發現規則:

<a href="http://s3.51cto.com/wyfs02/M02/27/9C/wKioL1NzZ0HRPsGAAAJJDfTh7QE475.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/9C/wKioL1NzZXHRLh8tAAGIQhTw34s421.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9B/wKiom1NzZcyQkauLAAEgKrvF1_0560.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9C/wKioL1NzZqegztsXAAILmlrbPk0719.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/9B/wKiom1NzZvWQIq9EAAGcw8oKwXs029.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/9B/wKiom1NzZ72BtefRAAPeUZXY6z0444.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9C/wKioL1NzZ7TT7HVDAACZJHJJWz8049.jpg" target="_blank"></a>

2、報警發送郵件的定義,先定義一個媒介,而後再去定義一個使用者,用來接收郵件的:

<a href="http://s3.51cto.com/wyfs02/M01/27/9E/wKiom1NzemWB9vSkAAGMI2v2r2g079.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9E/wKioL1NzembiE8LwAAI8tMwcwfU947.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/9E/wKiom1NzerDSpNwYAAHx2GCvvNw425.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/9E/wKioL1NzeqnTcdU_AAKKbWUIrDk504.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9E/wKiom1NzewPTigyRAAD4Nzacoi4066.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/27/9E/wKioL1Nze8Cg1IkvAALb8xifCcM511.jpg" target="_blank"></a>

定義一個actions:

<a href="http://s3.51cto.com/wyfs02/M01/27/9E/wKiom1Nze33QJTPWAALgD-hDM2E863.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/27/9E/wKioL1Nze3ng316qAAKpQLUo2Tk082.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/27/9E/wKiom1Nze8Gi6bOFAAHlUl2aK00026.jpg" target="_blank"></a>

當流量超過我們定義的門檻值時就會發送報告資訊,通過郵件發送資訊給我們的監.控使用者:

總結:

   zabbix是一個很強大并且開源的監.控系統,很多功能有待我們去了解去發現,通過上面的一些相關配置我們大概了解一這個監.控系統的基本的配置過程了,當然,于由水準有限,不難會出錯或做得不到位的,還望大神多多指點。

本文轉自 wei0164 51CTO部落格,原文連結:http://blog.51cto.com/tanxw/1411328,如需轉載請自行聯系原作者