日均百萬PV架構第四彈(分佈式監控)

應該能更早出的第四彈,被虛擬機錯誤攪亂,遲遲沒有上線,不得已將所有

節點用puppet完成上線,稍後整理第五彈(非你不可自動化)也即將上線 : )

wKiom1N4mKWiPepeAAF1cIW1BPs388.jpg


zabbix簡介
   zabbix是基於Php的開源監控軟件
   基於多重數據採集 SNMP , Agent , Ping , Port
   多重告警通知 Mail , Jabber , SMS
   可以完成多種操作平臺甚至於設備(route,switch,io)的監控工作
   易於定製重用(模板機制,函數),甚至於二次開發
   告警及時幾乎無延遲
   它與cacti最大的不同之處在於它還提供一個分佈式企業監控解決方案


zabbix組成
   zabbix-server 主要完成監控數據的存儲與分析告警
   zabbix-proxy 分佈式環境重要一環,提server完成的數據存儲壓力
   zabbix-agent 數據採集重要節點
   zabbix-web 數據展示與監控配置
   這些節點便完成了自動化監控中: 數據採集 , 數據存儲 , 數據展示 , 分析告警


zabbix組件關係示意

wKioL1N4mJWTwJQrAAF31fzdbT0477.jpg


規劃如下

server.king.com 172.16.43.6  192.168.43.6

       zabbix-server , zabbix-web , php , httpd , mysql

proxy.king.com 172.16.43.5

       zabbix-proxy , mysql

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/images.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端口是否開啓

wKiom1N4mbqyEnxKAAopgQpwTYI698.jpg

# 瀏覽器訪問配置

http://172.16.43.6/zabbix

wKiom1N4mdPCpyCnAAxjGdI64ks946.jpg


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/images.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端口是否開啓

wKioL1N4mffgnlebAAn8w8HKIOM463.jpg


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下菜單欄路徑)

wKiom1N4mp7g8iSoAAEOhZt7uyQ370.jpg

# 配置自動發現規則

Configuration -> Discovery -> Create discovery rule ->

wKioL1N4mqvCxrsmAAGS4mwglAI194.jpg

# 配置發現後的動作

Configuration -> Actions -> Create action -> Event source(Discovery) ->

wKioL1N4msjCQ-LVAAHLAK7rMVw909.jpg

wKiom1N4mvTCMDMOAAIH0sbkzRg341.jpg

wKioL1N4msmjtfC2AAEPU3qz59U014.jpg

# 配置完畢重啓zabbix-proxy等待即可

wKiom1N4nT-jrNHbAAbR5CNqfPU505.jpg

wKioL1N4nRTQdR9AAAOVWq_jCZc624.jpg


5. 使用基本規則完成對cpu,io,net參數的監控

# zabbix內置了很多模板,我們可以使用來完成第5項的監控

# 改動剛纔Actions除了發現主機將主機添加至監控列表外,額外定義link to templates即可

# 可以選擇 Template OS Linux

# 這樣發現之後的主機便可以完成對cpu,io,net的基本監控

wKioL1N4nTjCjTpSAAJxRuf7vwc822.jpg

# 最後我們還可以定義自動移除規則

Configuration -> Actions -> Create action -> Event source(Discovery) ->

wKiom1N4nYGDlENiAAHlSxqaTQI873.jpg


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,

wKiom1N4niHQYcG_AASSTFhtx6I752.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章