zabbix

                            spacer.gif

01-zabbix簡介

The Enterprise-class Monitoring Solutionfor Everyone

www.zabbix.com

SLA:Service-Level Agreement:服務等級協議

 

監控解決方案應該具有哪些功能?

數據採集(Datagathering)

         ZabbixAgent

                   Passive/Active方式,內置常用監控項,多平臺支持

         SNMP

                   對路由/交換等設備提供SNMP支持

         IPMI

                   支持IPMI協議,常用於監控傳感器(機箱溫度,風扇轉速等)

         JavaGateway

                   原生提供JavaGateway,支持JMX監控(Tomcat,Resin)

         Custom

                   支持高度自定義監控,提供UserParameterZabbixTrapper等方式

告警(Alerting)

         Trigger

                   Zabbix內置豐富的Triggerfunction,非常易於進行復雜的告警觸發

         Action

                   故障發生後,可以通過靈活的Action規則進行告警及執行命令,並支持告警升級

         Event

                   故障發生及恢復,觸發的Action均會記錄,並支持ACK

         Maintenance

                   支持提前定義的維護, 可以配置維護時刻不採集數據或不發送告警

數據存儲(Datastorage)

         多數據庫支持

                   mysql,oracle,postgresql,sqlite,DB2

         數據存儲方式

                   History詳細的監控數據

                   Trend歷史數據縮減機制,存儲每小時的最小值,平均值,最大值

可視化(Visualisation)

         SimpleGraph

                   所有數值類型監控項,均可以直接通過simple graph查看

         Graph

                   可以靈活的將多監控項繪製在同一張圖上,並且支持多種圖形樣式

         Screen

                   可以將多張圖,文字等放在同一個screen中,便於集中大屏展示

         Map

                   可以創建更復雜NX的圖形(拉全國IDC監控圖),便於給BOSS展示

 

 

Enterprise-class

Discovery

         NetworkDiscovery

                   基於定義的規則掃描指定的IP範圍,自動發現已有的網絡設備

         AutoRegistration

                   允許activeagent進行自動註冊

         LowLevel Discovery

                   自動創建Items,Triggers,Graphs

         DistributedMonitoring

                   分佈式

         API

 

 

ZABBIX

開發公司:Zabbix SIA

開發語言:C(後端)+PHP(前端)

2001First GPLRelease(V0.1)

官方網站:http://www.zabbix.com

學習手冊:http://www.zabbix.com/documentation.php

學習書籍《Mastering Zabbix》《Zabbix1.8 Network Monitoring

Zabbix企業級分佈式監控系統》《Zabbix 監控系統深度實踐》

 

 

 

02-zabbix server安裝

環境:CentOS 6.6  2.6.32-504.el6.x86_64iptable關閉 Selinux關閉

Zabbix版本:2.4.7

Server ip: 192.168.50.93

agent ip: 192.168.50.246

 

目標:

  • 成功安裝ZabbixServer

  • 成功安裝ZabbixWeb

  • 瞭解Zabbix Web頁面佈局

 

 

yum install gcc gcc-c++autoconf httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perlmod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpcphp-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-develcurl-devel -y

 

service mysqld start

service httpd start

mysqladmin password rinimei

 

http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.6/zabbix-2.4.6.tar.gz

tar xf zabbix-2.4.6.tar.gz

cd zabbix-2.4.6

 

groupadd zabbix

useradd zabbix -gzabbix

 

mysql>createdatabase zabbix character set utf8;

mysql>grantall on zabbix.* to zabbix@localhost identified by "rinimei";

mysql>flushprivileges;

 

cdzabbix-2.4.7/database/mysql/

mysql -uzabbix-prinimei zabbix < schema.sql

mysql -uzabbix-prinimei zabbix < p_w_picpaths.sql

mysql-uroot-prinimei zabbix < data.sql

 

cd zabbix-2.4.6

./configure \

--prefix=/usr/local/zabbix\

--enable-server \

--enable-agent \

--with-mysql \

--with-net-snmp \

--with-libcurl \

make &&make install

 

服務端口定義

vim /etc/services

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

 

修改zabbix server配置文件

vim/usr/local/zabbix/etc/zabbix_server.conf

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=rinimei

 

cpzabbix-2.4.6/misc/init.d/fedora/core/zabbix_server /etc/init.d

chmod +x/etc/init.d/zabbix_server

 

修改啓動腳本

vim/etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix

CONFILE=$BASEDIR/etc/zabbix_server.conf

#搜索start,修改啓動選項,默認是去/etc下面找配置文件

action$"Starting $BINARY_NAME:"$FULLPATH -c $CONFILE

servicezabbix_server start

 

03-zabbix server安裝- Zabbix Web

cp -r frontents/php/var/www/html/zabbix

chown -R apache:root /var/www/html/zabbix

 

訪問http://serverip/zabbix,通過頁面安裝zabbix web端有關date()的錯誤提示解決方法:

vim /etc/php.ini

data.timezone=Asia/Shanghai

 

post_max_size = 16M

max_excution_time = 300

max_input_time = 300

 

/var/www/html/zabbix/include

cd /usr/share/zabbix/include

vim locales.inc.php +58

/zh_CN

true

 

頁面繪圖中文顯示方框

yum install wqy-microhei-fonts-y

 

cd /etc/alternatives/

ll zabbix-web-font

zabbix-web-font ->/usr/share/fonts/dejavu/DcjaVuSans.ttf

 

rm -f /etc/alternatives/zabbix-web-font

ln -s /usr/share/fonts/wqy-microhei/wqy-microhci.ttc/etc/alternatives/zabbix-web-font

 

 

cd /var/www/html/zabbix/fonts

cp/usr/share/fonts/wqy-microhei/wqy-microhei.ttc .

cp wqy-microhei.ttc.bak DejaVuSans.ttf

/usr/lib/zabbix/alertscripts/51com.sh

/usr/local/zabbix/share/zabbix/alertscripts

 

04-zabbix agent

目標:

  • 安裝zabbixagent

  • 完成linux cpu監控

  • 學習使用模板

spacer.gif

 

wget http://www.zabbix.com/downloads/2.4.6/zabbix_agents_2.4.6.linux2_6.amd64.tar.gz

mkdir /usr/local/zabbix

tar xf zabbix_agents_2.4.6.linux2_6.amd64.tar.gz-C /usr/local/zabbix

 

cd /usr/local/zabbix/etc

vim zabbix_agentd.conf

LogFile=/tmp/zabbix_agentd.log

Server=         #服務器IP

ServerActime=   #主動模式服務器IP

Hostname=         #設定主機名

 

下載的包裏沒有腳本,但在服務端zabbix源碼包裏有

scp misc/init.d/fedora/core/zabbix_agentdip:/etc/init.d

vim /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix

CONFILE=$BASEDIR/etc/zabbix_agentd.conf

action $"Starting $BINARY_NAME:"$FULLPATH -c $CONFILE

servicezabbix_agentd start                                                                                                

 

windows客戶端下載:

http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip

zabbix_agentd.exe -c zabbix_agentd.conf –i

 

 

 

#

Yum install zabbix

Yum install zabbix-agent-2.4.6-1.el6.x86_64.rpm

 

chkconfig --add zabbix-agent

chkconfig --level 3 zabbix-agent on

 

 

05-zabbix key&自定義key

 

./zabbix_get -s ip -k net.tcp.service[ssh]

key

net.tcp.service[service,<ip>,<port>]

agent.hostname 返回agent定義的hostname

agent.ping                 檢測agent能否ping通,能返回1,不能返回0

agent.version    返回agent版本

net.tcp.listen[port] 檢測是否監聽端口

net.tcp.port[<ip>,<port>] 檢測是否監聽端口

net.tcp.service[service,<ip>,<port>]檢測是否啓動該服務

net.tcp.service.perf[service,<ip>,<port>]檢測該服務性能

net.udp.listen[port]檢測是否監聽該端口UDP

proc.num[<name>,<user>,<state>,<cmdline>]返回進程數量

 

spacer.gif spacer.gif

spacer.gif spacer.gif spacer.gif

spacer.gif spacer.gif

spacer.gif

 

 spacer.gif

 

spacer.gif

spacer.gif

 

自定義key

a.編輯agent配置文件zabbix_agentd.conf

UserParameter=TestMysql,mysql -uzabbix-prinimei -e 'show status' &>/dev/null && echo 1

b.重啓zabbix_agentd

service zabbix_angetd restart

c.測試該key

./zabbix_get -s ip -k TestMysql

 

 

nginx需要監控哪些內容?

可用性

進程是否存在?

端口是否監聽?

服務是否正常?

性能指標

當前連接數?

每秒鐘處理多少連接?

每秒鐘處理多少請求?

當前讀寫連接有多少?

 

zabbix_get -s 10.0.0.8 -k proc.num[nginx]

 

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,80]

 

 

spacer.gif

 

wgethttp://raw.githubusercontent.com/pengyao/zabbix-1/master/scripts/zabbix_nginx_check.sh

 

./zabbix_nginx_check.sh active_connections

 

cd zabbix_agentd

vim nginx.conf

UserParameter=custom.nginx.status[*],/etc/zabbix/scripts/zabbix_nginx_check.sh$1

 

 

nginx進程數

zabbix_get -s 10.0.0.8 -k proc.num[nginx]

proc.num[nginx]

 

nginx服務狀態

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,]

zabbix_get -s 10.0.0.8 -knet.tcp.service[http,,80]

net.tcp.service[http,,80]

 

nginx當前連接數

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[active_connections]

custom.nginx.status[active_connections]

 

nginx每秒處理的連接數

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[handled_connections]

custom.nginx.status[handled_connections]

store value Delta(speed per second)

 

nginx每秒處理的請求數

zabbix_get -s 10.0.0.8 -kcustom.nginx.status[handled_requests]

custom.nginx.status[handled_requests]

store value Delta(speed per second)

 

 

觸發器

                             

avg平均值

{ip:vm.memory.size[pused].avg(60)}>80       #60s內平均值大於80

last最後收到的值

{ip:vm.memory.size[pused].last(0)}>90        #最後收到的值大於90

{ip:vm.memory.size[pused].last(#6)}>90      #最後收到的第6個值大於90

{ip:vm.memory.size[pused].last(0,60)}>90    #60s前收到的值大於90

nodata沒有收到數據

{ip:vm.memory.size[pused].nodata(60)}=1    #60s內沒收到值爲真

sum求和

{ip:vm.memory.size[pused].sum(60)}>100    #60s內收到的值的和大於100爲真

{ip:vm.memory.size[pused].sum(#4)}>100    #最後4個值大於100爲真

min最小值

{ip:vm.memory.size[pused].min(300)}>100k  #5分鐘內流入流量最小大於100K爲真

count計數

{ip:vm.memory.size[pused].count(1800,0)>5  #三分鐘內收到0的數量大於5爲真

06-zabbix Maintenance&用戶控制

目標:

瞭解Maintenance應用場景及用法

熟悉Zabbix Web用戶權限控制

 

Maintenance

用於滿足預知的維護計劃,不再發送告警的需求

當前Maintenance作用於Host/Group,不能作用於Trigger

 

zabbix web用戶權限控制

用戶類型:

Zabbix User:允許訪問Monitoring,只能讀取Usergroup中指定的主機狀態信息

Zabbix Admin:允許訪問MonitoringConfiguration,只能獲取及配置User中制定的主機

Zabbix Super Admin:能夠訪問配置一切

 

限制訪問制定的Group狀態:User Group Only

 

 

07-zabbix 分佈式部署

目標:

瞭解Zabbix Proxy適用場景

部署並配置Zabbix分佈式監控

 

spacer.gif

 

Zabbix Proxy常用於:

Zabbix無法直接連接對應的節點或遠程中心Server網絡不可靠時完成遠程監控

當監控大量設備時,使用Proxy可以降低Server負載

構建易於維護的分佈式監控

 

安裝zabbix proxy

yum install zabbix-proxy zabbix-proxy-mysql-y

yum install mysql-server -y

vim /etc/my.cnf

default-character-set= utf8                                                                                            

mysql>create database zabbix_proxy;

mysql>grant all on zabbix_proxy.* tozabbix_proxy@localhost identified by "zabbix_proxy";

mysql -uzabbix_proxy -hlocalhost-pzabbix_proxy zabbix_proxy </usr/share/doc/zabbix-proxy-mysql-2.2.9/create/schema.sql

 

 

vim /etc/zabbix/zabbix_proxy.conf

Server=

Hostname=

DBName=

DBUser=

DBPassword=

 

service zabbix-proxy restart

more /var/log/zabbix/zabbix_proxy.log

 

Administration-DM-create proxy

 

 

 

 


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