隨着網站的上線,對網站的一套監控體系也陸續完成,主要用cacti對服務器的網卡流量、CPU Usage 、Load Average、 Memory Usage做了監控,也是用了PERCONA 提供的模板對mysql的相關監控點做了監控,可以直觀的在監控圖上顯示各個監控點的狀態,具體實現方式博文會有講解。
考慮到對業務監控的需求,又搭建了zabbix,主要對各個服務的process NUM,port,free disk space,host status,processor load ,及web頁面,主要還是業務監控的添加,通過開發提供的需求,閥值或需要獲得狀態值,通過自定義腳本來實現對zabbix中無默認key值得監控。
關於zabbix的文章魚龍混雜,本系列將從zabbix的安裝到監控添加,郵件及短信報警,mysql模板添加,zabbix默認key及自定義key的演示,及web頁面的監控等。但也僅僅是簡單使用zabbix,zabbix相當強大,想用好用活zabbix還需仔細研究。
1, zabbix的安裝
此處簡單說明 zabbix不像cacti只需要安裝服務端,就可以直接對各個server進行監控,(cacti是通過snmp協議獲取數據,然後使用rrdtool存儲和更新,及snmp和rrdtool是cacti的關鍵所在,當然也要mysql或者其他數據庫的存儲的支持)。zabbix則是通過client端獲取host信息,server端定時(item中配置時間)通過定義的key值獲取client端狀態值來進行繪圖或者監控。
安裝,依然通過編譯,版本2.2.3 下載見附件
yum -y install curl curl-devel net-snmp net-snmp-devel net-snmp-libs net-snmp-utils perl-DBI
創建用戶賬號(server,agent)
# groupadd zabbix
# useradd -g zabbix zabbix
# usermod -s /sbin/nologin zabbix
創建zabbix數據庫並導入zabbix數據庫數據(server)
# mysql -u root -p123456
> grant all on zabbix.* to zabbix@localhost identified by 'zabbixpwd';
> create database zabbix;
# tar zxvf zabbix-2.2.3.tar.gz
# cd zabbix-2.2.3
# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/schema.sql
# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/p_w_picpaths.sql
# mysql -uzabbix -pzabbixpwd zabbix < database/mysql/data.sql
編譯 server 端
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl
# make install
編譯client 端
./configure --prefix=/usr/local/zabbix --enable-agent 即可
server端配置文件配置 172.16.16.201
vi /usr/local/etc/zabbix_server.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpwd
vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=127.0.0.1,172.16.16.201 寫上本機ip
UnsafeUserParameters=1 打開可以自定義key值選項。
agent: (172.16.8.1)需要監控的Ip,都要裝,都要配置。
# vi /usr/local/etc/zabbix_agentd.conf
修改如下內容並刪除其他未修改參數條目:
-------------
LogFile=/var/log/zabbix_agentd.log
Server=172.16.16.201 指向server端IP
UnsafeUserParameters=1
-------------
# touch /var/log/zabbix_server.log
# chmod 777 /var/log/zabbix_server.log
# touch /var/log/zabbix_agentd.log
# chmod 777 /var/log/zabbix_agentd.log
啓動進程
/usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_agentd 服務器端講打開10050 10051 端口 客戶端只打開10050,zabbix之間通信也是使用10050端口,可以使用telnet進行檢測,注意selinux,iptables,要做好策略或者進行關閉。
安裝web端
zabbix代碼是php開發,需要安裝php相關進行支持
php php-bcmath php-cli php-common php-gd php-ldap php-mbstring php-mysql php-odbc php-pdo php-pear php-xml php-xmlrpc 其中好像 php-bcmath 跟php-mbstring 我yum源裏沒有,單獨下載的。
把解壓出來的frontends/php 下面的php源代碼文件拷貝到web服務器html文件目錄下面,我用的apache,由於只需要提供web環境,也是yum安裝的apache並把/php目錄下的所有文件capy到了/var/www/html/zabbix下,根據自己情況選擇吧。
輸入url http://172.16.16.201/zabbix/,就會自動跳轉
具體web安裝,請參照其他博文,推薦http://showerlee.blog.51cto.com/2047005/1189484
修改php.ini 文件 解除相關錯誤
注:我在第一次安裝過程中出新php-gd的一直報錯,手動編譯安裝的gd庫,才解決問題。
需修改該PHP文件配置文件參數:
# vi /usr/local/php5/lib/php.ini
查找如下參數並修改爲:
----------------
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----------------
加載PHP下gettext模塊
# cd /root/php-5.4.13/ext/gettext
# /usr/local/php5/bin/phpize
# ./configure --with-php-config=/usr/local/php5/bin/php-config
# make && make install
加載該模塊
# vi /usr/local/php5/lib/php.ini
添加如下行:
extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"
重啓apache服務
# service httpd restart
根據每一部指示,填寫用戶名密碼,即完成安裝,
zabbix默認用戶 admin 密碼 zabbix 。