一、監控系統現狀
此文章首發于http://www.beyond362.com/2014/11/02/zabbix系列之入門介紹(一)/
在開源監控軟體中,現在使用最多的大概就是cacti、nagios和zabbix了。作為一個後起之秀,zabbix以其靈活的擴充性和豐富的功能迅速俘獲了一大批運維人員的青睐,尤其以功能強大的報警機制更讓人愛不釋手。本文也将以zabbix作為監控系統來進行介紹。
由百度、Google結果來看,cacti作為老牌開源軟體以其出現時間早、配置簡單、畫面直覺、漢化成功等的原因依然受到廣大使用者的青睐,但zabbix已經與nagios旗鼓相當了,相信不久的将來,zabbix必将成為運維人員首選的監控利器。
二、監控系統原理
在一個監控系統中,構成要素為監控伺服器端程式、資料存儲、被采集節點等子產品,其告警分析和自動故障處理功能由伺服器端執行。簡單點說,就是采集資料-->分析處理資料-->判斷是否異常-->是否屬于告警條件-->發送郵件、短信進行報警。
而采集方式來說,有采集用戶端(Agent)和協定(SNMP、IPMI、JMX、Telnet、SSH等)兩種方式,無論使用哪種方式,都會将采集到的資料存放到資料庫,然後對其進行分析整理。
從采集的工作模式來講,又可以分為兩種:主動監控和被動監控,後邊會說到這兩種監控方式的差別
三、Zabbix的安裝與使用
當我們需要了解一個産品的時候,最好的方式就是官方介紹以及官方文檔。zabbix的官方網站http://www.zabbix.com,官方文檔位址http://www.zabbix.com/documentation.php,
Zabbix為PHP語言開發,是以環境平台搭建比較容易,支援監控N多作業系統,在開源軟體的選擇上也是多樣的Linux、Apache/Nginx、MySQL/Oracle/Postgresql、PHP等。
四、編譯安裝zabbix
環境:
系統:CentOS release 6.4 (Final)
IP位址:192.168.101.216
準備工作:
安裝LAMP環境,也就是Apache、MySQL和PHP環境,在安裝之前,為了避免麻煩,首先我們需要将iptables和selinux進行關閉。兩種方式如下
第一種:
關閉iptables
service iptables stop
關閉selinux
setenforce 0
不需要重新開機伺服器,即可生效,重新開機伺服器後失效!
第二種:
關閉防火牆
chkconfig iptables off
關閉selinux
vi /etc/selinux/config
SELINUX=enforcing 改為 SELINUX=disabled
需要重新開機伺服器,永久禁用
由于我的主機是最小化安裝的,是以首先需要安裝兩個開發包組“Development tools”和“Server Platform Development”,以便後邊手動編譯zabbix。yum -y groupinstall “Development tools” “Server Platform Development”
然後安裝Apache、MySQL和PHP
yum -y install httpd mysql mysql-server mysql-devel php php-mysql php-xml php-mbstring php-gd php-bcmath
配置MySQL資料庫
打開/etc/my.cnf檔案,添加以下兩行資訊
innodb_file_per_table = 1 #設定字元集為utf8
character-set-server=utf8 #讓InnoDB的每個表檔案單獨存放
設定字元集為utf8很好了解,讓InnoDB的每個表檔案單獨存放在說到MySQL資料庫的存儲引擎的時候會說到為什麼這麼做。
然後啟動MySQL資料庫
service mysqld start
然後啟動Apache,測試lamp環境是否正常
service httpd start
添加測試頁面,儲存到/var/www/html/index.php
打開通路位址:http://192.168.101.216/index.php,出現如下頁面表示配置正确,lamp環境搭建成功。 安裝zabbix 下載下傳zabbix源碼安裝
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz
[Downlink href='http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.1/zabbix-2.4.1.tar.gz']zabbix2.4.1[/Downlink]點選左側連結即可下載下傳
編譯安裝zabbix
為了以後的友善,建議安裝支援snmp協定
yum -y install net-snmp net-snmp-devel libcurl
tar xf zabbix-2.4.1.tar.gz
cd zabbix-2.4.1
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-net-snmp --with-mysql --with-libcurl
--prefix=/usr/local/zabbix 指定zabbix安裝路徑
--enable-server 支援zabbix-server端
--enable-agent 支援zabbix-agent端
--with-net-snmp 支援snmp協定
--with-mysql 支援mysql資料庫
--with-libcurl 支援curl,用于WEB監控
出現下方資訊,表示編譯通過,接下來即可進行安裝
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
make && make install
zabbix安裝已經完成,接下來開始配置zabbix
編輯伺服器端口,添加以下兩個端口
vi /etc/services
#Zabbix Trapper && Zabbix Agent
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper 10051/tcp #Zabbix Trapper
zabbix-trapper 10051/udp #Zabbix Trapper
安裝啟動腳本
cp /root/zabbix-2.4.1/misc/init.d/fedora/core/* /etc/init.d -p
編輯啟動腳本,修改以下項
vi /etc/init.d/zabbix_server
BASEDIR=/usr/local ==> BASEDIR=/usr/local/zabbix
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local ==> BASEDIR=/usr/local/zabbix
添加zabbix_server和zabbix_agentd為服務
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
編輯/usr/local/zabbix/etc/zabbix_server.conf檔案
cat zabbix_server.conf | grep -v "^#" | grep -v "^$"
LogFile=/tmp/zabbix_server.log #zabbix_server 日志檔案
DBHost=localhost #資料庫位址
DBName=zabbix #zabbix資料庫
DBUser=zabbix #zabbix資料庫賬号
DBPassword=123.com# #zabbix資料庫密碼
複制Web應用到Web目錄下
cp -R ~/zabbix-2.4.1/frontends/php /var/www/html/zabbix
建立資料庫,導入zabbix資料庫
[root@localhost ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE DATABASE zabbix1;
Query OK, 1 row affected (0.00 sec)
mysql> GRANT ALL ON zabbix1.* TO zabbix@localhost IDENTIFIED BY '123.com#';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> source /root/zabbix-2.4.1/database/mysql/schema.sql;
mysql> source /root/zabbix-2.4.1/database/mysql/data.sql;
mysql> source /root/zabbix-2.4.1/database/mysql/p_w_picpaths.sql;
添加zabbix使用者,啟動zabbix_server和zabbix_agentd服務
groupadd zabbix
useradd -g zabbix zabbix
啟動zabbix_server和zabbix_agentd
[root@localhost ~]# service zabbix_server start
Starting zabbix_server: [ OK ]
[root@localhost ~]# service zabbix_agentd start
Starting zabbix_agentd: [ OK ]
[root@localhost ~]# ss -tunl
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
udp UNCONN 0 0 *:161 *:*
tcp LISTEN 0 128 :::80 :::*
tcp LISTEN 0 128 :::22 :::*
tcp LISTEN 0 128 *:22 *:*
tcp LISTEN 0 100 ::1:25 :::*
tcp LISTEN 0 100 127.0.0.1:25 *:*
tcp LISTEN 0 128 *:10050 *:*
tcp LISTEN 0 128 *:10051 *:*
tcp LISTEN 0 128 127.0.0.1:199 *:*
tcp LISTEN 0 50 *:3306 *:*
[root@localhost ~]#
10050和10051端口已經啟動,證明服務啟動成功
五、頁面安裝
通路http://192.168.101.216/zabbix進行zabbix的最後安裝步驟
點選下一步,進行安裝
紅色部分是報錯部分,我用①标注出來的問題可以通過修改/etc/php.ini檔案搞定,搜尋option後邊的關鍵字即可找到修改位置;用②标注出來的問題可以通過安裝相關php包解決,例如 PHP bcmath 顯示off,那麼就隻需要yum -y install php-bcmath即可,其他同理
修改報錯資訊
cat /etc/php.ini |grep -E "max_input_time|max_execution_time"
; max_input_time
max_execution_time = 300
max_input_time = 300
service httpd restart
cat /var/www/html/zabbix/include/locales.inc.php | grep "zh_CN"
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),