監控利器---Zabbix(一)


開源監控軟件對比

  • Cacti(英文含義仙人掌)

是一套基於PHP、MySQL、SNMP和RRDtool開發的網絡流量監測圖形分析工具,它通過snmpget來獲取數據使用RRDtool繪圖,簡化RRDtool使用。提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、主機設備以及任何一張圖,還可以與LDAP結合進行用戶認證,同時也能自定義模板。在歷史數據展示監控方面,其功能相當不錯。

Cacti通過添加模板,使不同設備的監控添加具有可復用性,並且具備可自定義繪圖的功能,具有強大的運算能力(數據的疊加功能)

  •  nagios

Nagios是一款開源的免費網絡監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網絡設置,打印機等。

Nagios 可以監控的功能有:
1、監控網絡服務(SMTP、POP3、HTTP、NNTP、PING等);
2、監控主機資源(處理器負荷、磁盤利用率等);
3、簡單地插件設計使得用戶可以方便地擴展自己服務的檢測方法;
4、並行服務檢查機制;
5、具備定義網絡分層結構的能力,用"parent"主機定義來表達網絡主機間的關系,這種關系可被用來發現和明晰主機宕機或不可達狀態;
6、當服務或主機問題產生與解決時將告警發送給聯系人(通過EMail、短信、用戶定義方式);
7、具備定義事件句柄功能,它可以在主機或服務的事件發生時獲取更多問題定位;
8、自動的日志回滾;
9、可以支持並實現對主機的冗余監控;
10、可選的WEB界面用於查看當前的網絡狀態、通知和故障歷史、日志文件等;

  • Ganglia

是一個跨平台的、可擴展的、高性能的分布式監控系統,如集群和網格。它基於分層設計,使用廣泛的技術,用RRDtool存儲數據。具有可視化界面,適合對集群系統的自動化監控。其精心設計的數據結構和算法使得監控端到被監控端的連接開銷非常低。目前已經有成千上萬的集群正在使用這個監控系統,可以輕松的處理2000個節點的集群環境。

Ganglia的強大在於:ganglia服務端能夠通過一台客戶端收集到同一個網段的所有客戶端的數據,ganglia集群服務端能夠通過一台服務端收集到它下屬的所有客戶端數據。

  • Zabbix

是一個基於web界面的分布式監控系統,支持多種采集方式采集客戶端,有專用的Agent代理,也支持SNMP、IPMI、JMX、Telnet、SSH等多種協議,它將采集到的數據存放到數據庫,然后對其進行分析整理,達到條件觸發告警。其靈活的擴展性和豐富的功能是其他監控系統所不能比的。

clip_image002

結論:

從以上各種監控系統的對比來看,Zabbix都是具有優勢的,其豐富的功能、可擴展的能力、二次開發的能力和簡單易用的特點,讀者只要稍加學習,即可構建自己的監控系統。

Zabbix

選擇zabbix的理由:

- 安裝與配置簡單,學習成本低
- 支持多語言(包括中文)
- 免費開源

- 數據采集到數據庫,可二次分析監控數據的。
- 自動發現服務器與網絡設備
- 分布式監視以及WEB集中管理功能
- 可以無agent監視
- 用戶安全認證和柔軟的授權方式
- 通過WEB界面設置或查看監視結果
- email等通知功能
等等

組成:

zabbix server:可以通過SNMP、zabbixagent、ping、端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它可以運行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台之上。

zabbix agent(可選組件):安裝在被監視的目標服務器上,它主要完成對硬件信息或與操作系統有關的內存,CPU等信息的收集。

生命周期

clip_image004

目前推薦使用Zabbix2.2

安裝

准備:

epel源、mysql已安裝(yum install mysql-server)、zabbix官方倉庫(http://repo.zabbix.com/

1. 安裝epel源

# wget –O  /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

2. 安裝Zabbix官方源碼:

#rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

安裝zabbix server:

3. 安裝依賴包yum install -y OpenIPMI

clip_image006

4. yum install -y zabbix-server zabbix-server-mysql

clip_image008

5. 創建數據庫

mysql> create database zabbix;

mysql> grant all on zabbix.* to zabbix@localhost identified by "zabbix_pass";

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix # 測試

# rpm -ql zabbix-server-mysql

導入server端數據表(注意順序):

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/schema.sql  <--導入數據結構

#mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/images.sql  <--導入圖片

# mysql -uzabbix -pzabbix_pass -hlocalhost zabbix </usr/share/doc/zabbix-server-mysql-2.2.11/create/data.sql   <--導入數據

6. 修改配置文件 # vim /etc/zabbix/zabbix_server.conf   <--增加zabbix使用數據庫的密碼

[root@zabbix-server ~]# egrep -v "^#|^$" /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix_pass   <--需修改同數據庫設置

DBSocket=/tmp/mysql.sock 

SNMPTrapperFile=/var/log/snmptt/snmptt.log

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

7. 啟動zabbix server

#service zabbix-server start

# netstat -ntlpu|grep 10051 ß檢查啟動狀態

# chkconfig zabbix-server on   ß添加開機啟動

server端安裝zabbix web:

1. # yum install zabbix-web zabbix-web-mysql

clip_image012

默認安裝了httpd服務,啟動httpd

# chkconfig httpd on    ß添加開機啟動

2. 訪問http://ip/zabbix進入安裝

clip_image014

==>解決:修改時區 # vim /etc/httpd/conf.d/zabbix.conf

clip_image016

3. 登錄默認用戶admin 密碼:zabbix

4. 修改字體

vim /usr/share/zabbix/include/locales.inc.php

yum -y install wqy-microhei-fonts ß安裝中文字體集

rm -f /etc/alternatives/zabbix-web-font #刪除原有字體連接文件

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

安裝agent

客戶端和服務端都安裝

1. # yum install -y zabbix-agent

clip_image018

# vim /etc/zabbix/zabbix_agentd.conf     //修改被動模式IP為zabbix server ip

clip_image020

:(一個Agent是可以同時向多個服務器端發送數據,多個Ip用逗號隔開)

Server:被動模式,允許哪台服務器連接Agent。

ServerActive:主動模式,向哪台服務器傳送數據。

# /etc/init.d/zabbix-agent start //啟動agent

# netstat -lntp |grep 10050 //驗證端口

 

如果提示不能正常運行,分別檢查zabbix_server.conf中的各項配置文件、Selinux、Iptables等。配置文件請檢查以下文件的正確配置參數。

1./etc/zabbix/zabbix_server.conf中的參數。

#
DBHost=localhost         ß數據庫的IP(域名)地址

DBName=zabbix              ß數據庫的名稱

DBUser=zabbix                ß數據庫的用戶

DBPassword=zabbix        ß數據庫的密碼

2./etc/zabbix/web/zabbix.conf.php中的配置。

[root@linux-node1 ~]# cat
/etc/zabbix/web/zabbix.conf.php

<?php

// Zabbix GUI configuration file.

global $DB;

$DB[‘TYPE’]    = ‘MYSQL’;          //數據庫類型

$DB[‘SERVER’]  = ‘localhost’;              //數據庫的IP(域名)地址

$DB[‘PORT’]    = ‘0’;           //數據庫的端口

$DB[‘DATABASE’] = ‘zabbix’;           //數據庫的名稱

$DB[‘USER’]    = ‘zabbix’;            //數據庫的用戶

$DB[‘PASSWORD’] = ‘zabbix’;          //數據庫的密碼

// Schema name. Used for IBM DB2 and PostgreSQL.

$DB[‘SCHEMA’] = ”;

$ZBX_SERVER     = ‘localhost’;          ßZabbix-Server的IP(域名)地址

$ZBX_SERVER_PORT = ‘10051’;              ßZabbix-Server的端口

$ZBX_SERVER_NAME = ‘Zabbix-Xuliangwei’;          ßZabbix-Server web界面的標識

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

?>

監控流程

image

Zabbix-Get使用

Zabbix-Get是Zabbix中的一個程序,用於Zabbix-Server到Zabbix-Agent的數據獲取,通常可以用來檢測驗證Agent的配置是否正確。

用法:zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>

-s:遠程Zabbix-Agent的IP地址或者是主機名。

-p:遠程Zabbix-Agent的端口。

-l:本機出去的IP地址,用於一台機器中又多個網卡的情況。

-k:獲取遠程Zabbix-Agent數據所使用的Key。

實現監控cpu(zabbix server主機上操作)

# yum install -y zabbix-get //安裝zabbix-get工具

# zabbix_get -s 192.168.3.113 -k system.cpu.util[,user]

clip_image024

Agent數據采集方式:passive、active

Other Agent:SNMP、IPMI、Java Gateway

 

到此記錄,謝謝觀摩,待續…


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM