一、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的體系結構圖:
二、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 [root@node1 ~]# cd /etc/zabbix/ 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';
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; |
第三步:在服務器端安裝上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 ......................... 103 rows in set (0.07 sec) # 再回到zabbix-server服務器端修改一下時區 [root@node1 zabbix]# vim /etc/php.ini Stopping httpd: [ OK ] |
第四步:啟動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 |
到這里就就算是配置安裝好了,那接下來的的很多操作基本上都是在這個界面上完成的,定義各個監.控對象等。現在我們再找幾個節點,也就是再弄幾台虛擬機安裝上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 ~]# service zabbix-agent start |
2、添加監.控主機到zabbix服務中去,在這里要說的是里面的選項很多,不過官方文檔有很詳細的說明,https://www.zabbix.com/documentation/2.0/manual/config/hosts/host
3、再創建一個監.控項item,點擊上圖中的Item項,再點擊右上角的create item就可以創建item項了,這里我們添加兩個做為測試,一個是eth0的數據流出量和流入量:
4、創建圖形展示數據,點擊Graphs,再點create graphs就可以創建圖形展示數據了,填上相關的參數:
5、多個圖組合在一個屏幕上查看的創建,也就是定義screens:
基本的監.控對象定義大概就是這個步驟,很多的監.控項還需要多花時間去了解認識,還是要結合官方文檔了解清楚,這樣才可以准確定義我們所需要監.控的對象,那接下來我們再來定義郵件通知、自動發現並添加主機和定義模板:
1、定義模板和發現主機,並自動添加主機:
定義一個發現規則:
2、報警發送郵件的定義,先定義一個媒介,而后再去定義一個用戶,用來接收郵件的:
定義一個actions:
當流量超過我們定義的閾值時就會發送報告信息,通過郵件發送信息給我們的監.控用戶:
總結:
zabbix是一個很強大並且開源的監.控系統,很多功能有待我們去了解去發現,通過上面的一些相關配置我們大概了解一這個監.控系統的基本的配置過程了,當然,於由水平有限,不難會出錯或做得不到位的,還望大神多多指點。
本文出自 “溫水煮青蛙” 博客,請務必保留此出處http://tanxw.blog.51cto.com/4309543/1411328