應該能更早出的第四彈,被虛擬機錯誤攪亂,遲遲沒有上線,不得已將全部php
節點用puppet完成上線,稍後整理第五彈(非你不可自動化)也即將上線 : )mysql
zabbix簡介
zabbix是基於Php的開源監控軟件
基於多重數據採集 SNMP , Agent , Ping , Port
多重告警通知 Mail , Jabber , SMS
能夠完成多種操做平臺甚至於設備(route,switch,io)的監控工做
易於定製重用(模板機制,函數),甚至於二次開發
告警及時幾乎無延遲
它與cacti最大的不一樣之處在於它還提供一個分佈式企業監控解決方案linux
zabbix組成
zabbix-server 主要完成監控數據的存儲與分析告警
zabbix-proxy 分佈式環境重要一環,提server完成的數據存儲壓力
zabbix-agent 數據採集重要節點
zabbix-web 數據展現與監控配置
這些節點便完成了自動化監控中: 數據採集 , 數據存儲 , 數據展現 , 分析告警nginx
zabbix組件關係示意web
規劃以下sql
server.king.com 172.16.43.6 192.168.43.6數據庫
zabbix-server , zabbix-web , php , httpd , mysqlvim
proxy.king.com 172.16.43.5瀏覽器
zabbix-proxy , mysqlbash
slave1-4.king.com 172.16.43.1-4
zabbix-agent
配置過程以下
1 配置安裝zabbix-server(172.16.43.6)
i)準備以下文件 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 mariadb-10.0.10-linux-x86_64.tar.gz(安裝過程參見) php-5.4.26.tar.bz2(安裝過程參見) httpd-2.2(系統自帶) # # ii)安裝配置 yum -y install *.rpm # 建立zabbix數據庫及帳號 mysql -e "create database zabbix;" mysql -e "grant all on *.* to 'zabbix'@'172.16.%.%' identified by 'zabbix';" mysql -e "flush privileges;" # 導入zabbix web所需表 mysql -h172.16.43.6 -uzabbix -p -D zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql mysql -h172.16.43.6 -uzabbix -p -D zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/p_w_picpaths.sql mysql -h172.16.43.6 -uzabbix -p -D zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql # 編輯配置文件,配置數據訪問信息 vim /etc/zabbix/zabbix_server.conf DBHost=172.16.43.6 (#81) DBName=zabbix (#90) DBUser=zabbix (#107) DBPassword=zabbix (#115) # 區別於mysql的二進制或編譯安裝 DBSocket=/tmp/mysql.sock (#124) # 啓動zabbix,httpd服務 service zabbix-server start service httpd start
# 查看10051端口是否開啓
# 瀏覽器訪問配置
http://172.16.43.6/zabbix
2 代理服務器安裝配置(172.16.43.5)
i) 準備以下文件 zabbix-2.0.8-3.el6.x86_64.rpm zabbix-proxy-2.0.8-3.el6.x86_64.rpm zabbix-proxy-mysql-2.0.8-3.el6.x86_64.rpm mariadb-10.0.10-linux-x86_64.tar.gz(安裝過程參見) # # ii) 安裝配置 yum -y install *.rpm # 建立zabbix數據庫及帳號 mysql -e "create database zabbixproxy;" mysql -e "grant all on *.* to 'zabbixproxy'@'172.16.%.%' identified by 'zabbixproxy';" mysql -e "flush privileges;" # 導入zabbix web所需表 mysql -h172.16.43.5 -uroot -p -D zabbixproxy < /usr/share/doc/zabbix-proxy-mysql-2.0.8/create/schema.sql mysql -h172.16.43.5 -uroot -p -D zabbixproxy < /usr/share/doc/zabbix-proxy-mysql-2.0.8/create/p_w_picpaths.sql mysql -h172.16.43.5 -uroot -p -D zabbixproxy < /usr/share/doc/zabbix-proxy-mysql-2.0.8/create/data.sql # 編輯配置文件,配置數據訪問信息 vim /etc/zabbix/zabbix_proxy.conf Server=172.16.43.6 (#25) Hostname=proxy.king.com (#44) DBHost=172.16.43.5 (#119) DBName=zabbixproxy (#130) DBUser=zabbixproxy (#145) DBPassword=zabbixproxy (#153) # 啓動zabbix-proxy服務 service zabbix-proxy start
# 查看10051端口是否開啓
3 客戶端配置(172.16.43.1 - 172.16.43.4)
i) 準備以下文件 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 # # ii) 安裝配置 yum -y install 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 # 編輯配置文件 vim /etc/zabbix/zabbix_agentd.conf Server=172.16.43.5 (#86) ServerActive=172.16.43.5 (#127) Hostname=slave4.king.com (#138) # 啓動zabbix-agent服務 service zabbix-agent start
# 查看10050端口是否開啓
4. 配置自動發現規則將客戶端添加至監控體系
# 配置代理服務器
Administration -> DM -> Create Proxy (均指在WebGui下菜單欄路徑)
# 配置自動發現規則
Configuration -> Discovery -> Create discovery rule ->
# 配置發現後的動做
Configuration -> Actions -> Create action -> Event source(Discovery) ->
# 配置完畢重啓zabbix-proxy等待便可
5. 使用基本規則完成對cpu,io,net參數的監控
# zabbix內置了不少模板,咱們能夠使用來完成第5項的監控
# 改動剛纔Actions除了發現主機將主機添加至監控列表外,額外定義link to templates便可
# 能夠選擇 Template OS Linux
# 這樣發現以後的主機即可以完成對cpu,io,net的基本監控
# 最後咱們還能夠定義自動移除規則
Configuration -> Actions -> Create action -> Event source(Discovery) ->
6. 使用自定義函數完成對 nginx , varnish , mysql等服務的監控
# zabbix已經對mysql的自定義參數作出了範例,咱們能夠進行訪問來完成對更多服務的監控 vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf # # 監控nginx的鏈接活動數,訪問數,處理個數 vim /etc/zabbix/zabbix_agentd.d/nginx.conf UserParameter=Nginx.active[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}' UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}' UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}' # # 監控varnish的鏈接數,命中數,命中率 vim /etc/zabbix/zabbix_agentd.d/varnish.conf UserParameter=varnish.conn,/usr/bin/varnishstat -1 | grep "client_conn" | awk '{print $2}' UserParameter=varnish.hit,/usr/bin/varnishstat -1 | grep "cache_hit" | awk '{print $2}' #
# 定義好後能夠將自動key添加到item,