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的體系結構圖

wKiom1Ny4dPDa9JUAALCwVlhA0g382.jpg

 

二、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)]> GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'linux' WITH GRANT OPTION;
Query OK, 0 rows affected (0.06 sec)

MariaDB [none]> GRANT ALL ON zabbix.* TO 'zabbix'@'172.16.%.%' IDENTIFIED BY 'linux';
Query OK, 0 rows affected (0.27 sec)

 

MariaDB [(none)]> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.01 sec)


MariaDB [(none)]> CREATE DATABASE zabbix;

Query OK, 0 rows affected (0.31 sec)

 

MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.16 sec)

MariaDB [(none)]>

 

第三步:在服務器端安裝上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 < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql 
[root@node1 ~]# mysql -uroot -plinux -h172.16.27.88 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql 

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

# 而后再回去172.16.27.88這台主機上的數據庫中查看一下導入的數據是否成功

MariaDB [(none)]> USE zabbix
Database changed
MariaDB [zabbix]> SHOW TABLES;
+-----------------------+
| Tables_in_zabbix      |
+-----------------------+
| acknowledges          |
| actions               |
| alerts                |
| applications          |

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

103 rows in set (0.07 sec)

MariaDB [zabbix]>

# 再回到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

wKiom1NzBCiCgx7kAAPJ6kMwRI4944.jpg

wKiom1NzBG3DSI57AANrHc7qWZU530.jpg

wKiom1NzBLqTQws4AAGJXrk4p8I194.jpg

wKioL1NzBLvR7zImAAFZQOM_XPE355.jpg

wKioL1NzBNnic8PEAAGJarsTVdA124.jpg

wKioL1NzBPbg6_8-AADFBKoikAw206.jpg

wKiom1NzBTug6dN5AAGltdw5QEg201.jpg

wKioL1NzBTuwYTTvAARjtCt72Lw178.jpg

 

到這里就就算是配置安裝好了,那接下來的的很多操作基本上都是在這個界面上完成的,定義各個監.控對象等。現在我們再找幾個節點,也就是再弄幾台虛擬機安裝上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

 

2、添加監.控主機到zabbix服務中去,在這里要說的是里面的選項很多,不過官方文檔有很詳細的說明,https://www.zabbix.com/documentation/2.0/manual/config/hosts/host

wKiom1NzOQWCRNgjAAPlYqncxuA931.jpg

wKioL1NzORGQsRGYAAQjuYDwuTA488.jpg

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

wKioL1NzOWqSvWJ9AAKzHYFy6cA259.jpg

wKiom1NzOcDiS-70AAODvWe7Hyo857.jpg

wKioL1NzObjTMdseAANS20_QqwU825.jpg

   4、創建圖形展示數據,點擊Graphs,再點create graphs就可以創建圖形展示數據了,填上相關的參數:

wKiom1NzOhKx1vUpAALJHSh0eWI255.jpg

wKioL1NzOhCzetSYAAPHEhQS2kM282.jpg

wKiom1NzOm3xtXbHAAK5-TMrPkI725.jpg

5、多個圖組合在一個屏幕上查看的創建,也就是定義screens:

wKioL1NzOmPhSi3hAAFeK1dqXRY848.jpg

wKioL1NzOpSwiyzaAAErob9By5k698.jpg

wKiom1NzOtux0SGXAANX77yHZFM116.jpg

wKiom1NzOvrw5WofAAPcXar9GPE343.jpg

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

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

wKiom1NzY82zmiqoAALsAiDoC_k396.jpg

wKiom1NzZATyeCW-AAKWO1q-8LE849.jpg

wKioL1NzZBSBVucAAAHs3215yR8064.jpg

wKiom1NzZMLxy4qkAAIukFwQArw331.jpg

 

定義一個發現規則:

wKioL1NzZ0HRPsGAAAJJDfTh7QE475.jpg

wKioL1NzZXHRLh8tAAGIQhTw34s421.jpg

wKiom1NzZcyQkauLAAEgKrvF1_0560.jpg

wKioL1NzZqegztsXAAILmlrbPk0719.jpg

wKiom1NzZvWQIq9EAAGcw8oKwXs029.jpg

wKiom1NzZ72BtefRAAPeUZXY6z0444.jpg

wKioL1NzZ7TT7HVDAACZJHJJWz8049.jpg

 

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

wKiom1NzemWB9vSkAAGMI2v2r2g079.jpg

wKioL1NzembiE8LwAAI8tMwcwfU947.jpg

wKiom1NzerDSpNwYAAHx2GCvvNw425.jpg

wKioL1NzeqnTcdU_AAKKbWUIrDk504.jpg

wKiom1NzewPTigyRAAD4Nzacoi4066.jpg

wKioL1Nze8Cg1IkvAALb8xifCcM511.jpg

定義一個actions:

wKiom1Nze33QJTPWAALgD-hDM2E863.jpg

wKioL1Nze3ng316qAAKpQLUo2Tk082.jpg

wKiom1Nze8Gi6bOFAAHlUl2aK00026.jpg

當流量超過我們定義的閾值時就會發送報告信息,通過郵件發送信息給我們的監.控用戶:

 

總結:

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

本文出自 “溫水煮青蛙” 博客,請務必保留此出處http://tanxw.blog.51cto.com/4309543/1411328


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM