Zabbix對服務器資源進行監控及百度告警的整合

Zabbix介紹

跟nagios同樣是一款開源的服務器資源監控軟件。達到企業級對萬百上千臺服務器、虛擬機、網絡設備進行實時監控。php

安裝

安裝環境:Centos 6.5,相關的下載地址在html

1.yum安裝方式
rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-server-mysql zabbix-server zabbix-agent zabbix-web-mysql
#若是須要還能夠安裝zabbix-proxy
yum install zabbix-proxy-mysql zabbix-proxy
#再安裝一些其它組件
wget http://fping.org/dist/fping-3.13.tar.gz
wget https://github.com/meduketto/iksemel/archive/master.zip && mv master.zip iksemel-master.zip
#有須要下載單獨安裝包的也能夠從下面地址下載
http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/
安裝介紹文檔  
要注意選擇相同的版本安裝

2.手工下載包的安裝方式
#查詢依賴包 rpm -qpR zabbix-server-2.4.6-1.el6.x86_64.rpm
rpm -ivh zabbix-2.4.6-1.el6.x86_64.rpm zabbix-agent-2.4.6-1.el6.x86_64.rpm zabbix-web-mysql-2.4.6-1.el6.noarch.rpm  zabbix-web-2.4.6-1.el6.noarch.rpm zabbix-server-mysql-2.4.6-1.el6.x86_64.rpm zabbix-server-2.4.6-1.el6.x86_64.rpm zabbix-sender-2.4.6-1.el6.x86_64.rpm

#注意,安裝時若是出現 要安裝 database-implement的提示,表示你沒有按上述一塊兒同時安裝的方法,最少須要
#rpm -ivh  zabbix-server-mysql-2.4.6-1.el6.x86_64.rpm zabbix-server-2.4.6-1.el6.x86_64.rpm

yum install OpenIPMI-libs net-snmp unixODBC python python-devel textinfo
#安裝fping
tar xzvf fping-3.13.tar.gz && cd fping-3.13 && ./configure && make && make install
#安裝iksemel
unzip iksemel-master.zip && cd iksemel-master && ./autogen.sh && ./configure && make && make install

#安裝zabbix
rpm -ivh zabbix-2.4.6-1.el6.x86_64.rpm
3.安裝結果,檢查安裝的各包及路徑
rpm -qa|grep zabbix
zabbix-agent-2.4.6-1.el6.x86_64
zabbix-2.4.6-1.el6.x86_64
zabbix-server-mysql-2.4.6-1.el6.x86_64
zabbix-web-2.4.6-1.el6.noarch
zabbix-release-2.4-1.el6.noarch
zabbix-server-2.4.6-1.el6.x86_64
zabbix-web-mysql-2.4.6-1.el6.noarch
#查看配置文件
rpm -ql zabbix-2.4.6

相關從二進制安裝的官方文檔在
python

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

在須要收集信息的機器上安裝agent,有多少臺機器要監控就安裝多少臺mysql

rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
yum install zabbix-agent

若是要下載預編譯好的二進制包agent 可在這裏下載 http://www.zabbix.com/download.phpios

配置服務端

初始化zabbix數據庫nginx

# mysql -uroot -p
>create database zabbix default charset 'utf-8';
>grant all on zabbix.* to zabbix@localhost identified by 'xxx';
# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create
# mysql -uzabbix -p zabbix < schema.sql
# mysql -uzabbix -p zabbix < images.sql
# mysql -uzabbix -p zabbix < data.sql
vi /etc/zabbix/zabbix_server.conf
ListenPort=10051
DBName=zabbix
DBUser=zabbix
DBPassword=xxx
DBUser=zabbix
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306

啓動服務器
git

service zabbix-server start
#查看服務啓動是否正常
tail -f /var/log/zabbix/zabbix_agentd.log

配置agent

vi /etc/zabbix/zabbix_agentd.conf
#注意配置成服務端的ip
Server=127.0.0.1
ListenPort=10050
#注意配置成服務端的ip
ServerActive=127.0.0.1
#注意名稱要與服務端一致!
Hostname=[服務端的主機名]
UnsafeUserParameters=1
#若是是限制了zabbix訪問數據庫,最好以root權限運行
AllowRoot=1

啓動agentdgithub

service zabbix-agent start
#查看服務啓動是否正常
tail -f /var/log/zabbix/zabbix_agentd.log

添加mysql的配置參數

mkdir /var/lib/zabbix
echo "[client]" >> /var/lib/zabbix/.my.cnf
echo "user=root" >> /var/lib/zabbix/.my.cnf
echo "password=xxx" >> /var/lib/zabbix/.my.cnf
#另外注意檢查/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
#是否爲默認形式,特別是mysql.status[*]命令,最後的awk '{print $$2}'注意有兩個$符號!!

配置web

我使用的是nginx+php-fpm+mysqlweb

#vi /etc/nginx/conf.d/zabbix.conf 
server {
    listen       80;
    server_name YOUR_SERVER_NAME;
    root   /usr/share/zabbix;
    location / {
        index  index.php index.html index.htm;
    }
    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_read_timeout 1300;
        }
}
#service nginx restart

注意zabbix web的數據庫連續在2.4版本時是配置在sql

/etc/zabbix/web/zabbix.conf.php
#下面這個文件是輔助的配置,上面的文件沒找到時使用
/usr/share/zabbix/conf/zabbix.conf.php


使用實踐

使用瀏覽器訪問 http://YOUR_SERVER_NAME/

更多自定義key相關的用法請參考官方網站

https://www.zabbix.com/documentation/2.4/manual/config/items/userparameters

添加自定義事件

#cat /etc/zabbix/zabbix_agentd.d/userparameter_zg.conf 
UserParameter=check_process_alive[*],ps aux|grep -v grep|grep $1|wc -l
#service zabbix-agent restart
#要過幾分鐘在管理網站才生效

在管理網站添加Item和trigger,以下圖


trigger表達式語法說明 https://www.zabbix.com/documentation/3.0/manual/config/triggers/expression


與百度告警的整合

首頁在百度告警註冊賬號 http://gaojing.baidu.com/

詳細的整合流程參考 http://help.gaojing.baidu.com/help/?p=345

注意幾個細節:

一、下面這一步添加media type時,Name項要用英文名稱,中文名稱在zabbix上處理上可能有問題;

二、baidu_gaojing.sh 此文件在服務器上屬主要是zabbix的運行用戶,通常是zabbix,不能是root;

三、baidu_gaojing.sh 此文件會輸入日誌,注意日誌目錄對zabbix要可寫;

整合完成後,在zabbix觸發消息,百度告警後臺能夠查看獲得通知,根據你在百度告警配置的升級策略,將會經過電話、短信、微信等方式通知相關人員。效果以下圖:


總結

zabbix功能很是強大,監控規則也很是靈活,亦能夠自定義監控程序擴展其功能,很是適應複雜多變的應用場景,其自身帶了多套模板,若是服務器資源,mysql模板,網絡帶寬模板等等,已經足夠應付大都場景了,還有更多更強大的功能有待自已去發現。

經過與百度告警服務的整合,能夠實現免費的微信報警功能,方便實用!

參考

Zabbix Installation from packages

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

百度告警與zabbix的整合

http://help.gaojing.baidu.com/help/?p=345

<做者 朱淦 350050183@qq.com 2015.11.6>

相關文章
相關標籤/搜索