天天看點

Zabbix系列之入門介紹(一)

一、監控系統現狀

此文章首發于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),