兩種監控軟件ganglia與zabbix各自的搭建


一.  Ganglia的搭建


Ganglia是一個分佈式的,監控服務器,集羣的開源軟件,能夠用曲線圖表現最近一個小時,最近一天,最近一週,最近一月,最近一年的服務器或者集羣的cpu負載,內存,網絡,硬盤等指標。

Ganglia的強大在於:ganglia服務端能夠通過一臺客戶端收集到同一個網段的所有客戶端的數據,ganglia集羣服務端能夠通過一臺服務端收集到它下屬的所有客戶端數據。這個體系設計表示一臺服務器能夠通過不同的分層能夠管理上萬臺機器。這個功能是其他mrtg,nagios,cacti所不能比擬。

ganglia有兩個Daemon, 分別是:客戶端Ganglia Monitoring Daemon (gmond)和服務端Ganglia Meta Daemon (gmetad),還有Ganglia PHP Web Frontend(基於web的動態訪問方式組成)是一個Linux下圖形化監控系統運行性能的軟件,界面美觀、豐富,功能強大。

 

(1)安裝ganglia 

可以將tar包製作成rpm包然後快速安裝。

在服務機(server3)

#yum install -y libart_lgpl-devel gcc-c++ python-devel libconfuse-devel-2.6.3.e16.x86_64.rpm pcre-devel expat-devel rrdtool-devel apr-devel rpm-build //製作gangliarpm包依賴這些組件。

#rpmbuild -tb ganglia-3.4.0.tar.gz ganglia-web-3.4.2.tar.gz //製作ganglia.rpm 和 ganglia-web.rpm

#rpm -ivh /root/rpmbuild/RPMS/noarch/ganglia-web-3.4.2.1.noarch.rpm /root/rpmbuild/RPMS/x86_64/*  //安裝ganglia-web gmetad gmond 

#cd /root/rpmbuild/RPMS/x86_64

#scp ganglia-gmond-3.4.0-1.x86_64.rpm ganglia-gmond-modules-python-3.4.0-1.x86_64.rpm libganlia-3.4.0-1.x86_64.rpm 172.25.0.2:

#scp ~/libconfuse* 172.25.0.2:  //複製相應組件到客戶端

#vim /etc/ganglia/gmetad.conf

data_source後面改爲自定義名稱如 big cluster   //修改集羣名稱

#/etc/init.d/gmetad start  //啓動gmetad服務

#vim gmond.conf  name後面改爲 big cluster

#/etc/init.d/gmond start  //啓動gmond服務(監控本機,所以啓動gmond服務)

#service httpd start  

在客戶端(server2)

#rpm -ivh ganglia-gmond* libganglia-3.4.0-1.x86_64.rpm libconfuse*   //安裝gmond

#vim /etc/ganglia/gmond.conf name後面改爲big cluster

啓動gmond

 

Firefox上輸入 172.25.0.3/gweb 如圖

 wKiom1dgNlOghmPmAAIDqovqHfY094.png-wh_50

 

(2) 將ganglia整合到nagios

server3

#tar zxf ganglia-3.4.0.tar.gz

#cd ganglia-3.4.0/contrib

#cp check_ganglia.py /usr/local/nagios/libexec

#chown nagios.nagios check_ganglia.py

#vim check_ganglia.py

編輯成如下圖

 wKioL1dgN6OyYixPAAIQw_d690w116.png-wh_50

                                                              //將大於閾值時報警改爲低於閾值報警

 #cd /var/lib/ganglia/rrds/big\ cluster 

可以看到很多以rrd結尾的文件,這些都是ganglia採集的數據

#/usr/local/nagios/libexec/check_ganglia.py -h server2.example.com -m disk_free_precent_rootfs -w 20 -c 10  //查看根分區使用情況

下面是修改nagios的配置文件(cfg文件)來整合ganglia。

nagioscommand.cfg中,添加

define command {

command_name check_ganglia

command_line $USER1$/check_ganglia.py -h $HOSTADDRESS$ -m $ARG1$ -w

$ARG2$ -c $ARG3$

}

hosts.cfg中,添加

define host {

use linux-server

host_name server4.example.com

address 172.25.0.4

}

define hostgroup {

hostgroup_name ganglia-servers

alias ganglia-servers

members server4.example.com

}

並在hostgroup中添加server4.example.com   //添加了被監控機server4,相應配置與server2一樣

templates.cfg中,添加

define service {

use local-service

name ganglia-service

hostgroup_name ganglia-server

sservice_groups ganglia-metrics

}

nagiosservice.cfg中,添加

define servicegroup {

servicegroup_name ganglia-metrics

alias Ganglia Metrics

}

define service{ ganglia-service

use ganglia-service

Service-description根分區

check_command check_ganglia!disk_free_percent_rootfs!20!10

define service{

use ganglia-service

service_description 內存空閒

check_command check_ganglia!mem_free!50000!30000

#service nagios retart

wKiom1dgN6TxcqivAAM33AIelQ8970.png-wh_50

 

整合完成。

 


 

二.   Zabbix的搭建


Zabbix 是一款功能強大的分佈式開源監控系統,可以提供企業級的開源分佈式監控解決方案。天生自帶分佈式監控,大批量主機運維監控優勢明顯。

Zabbix 通過 C/S 模式採集數據,通過 B/S 模式在 web 端展示和配置。

被監控端:主機通過安裝 agent 方式採集數據,網絡設備通過 SNMP 方式採集數據

Server :通過收集 SNMP 和 agent 發送的數據,寫入數據庫(MySQL,ORACLE ),再通過 php+apache 在 web 前端展示。

Zabbix 運行條件:

Server:Zabbix Server 需運 行在 LAMP( Linux+Apache+Mysql+PHP)環 境下或者

LNMP),對硬件要求低

Agent:目前已有的 agent 基本支持市面常見的 OS,包含 LinuxHPUXSolarisSun

windows

SNMP:支持各類常見的網絡設備

 

 

(1) 安裝zabbix

server端(server3)上

#yum install zabbix-2.4.5-1.el6.x86_64.rpm zabbix-agent-2.4.5-1.el6.x86_64.rpm  zabbix-server-mysql-2.4.5-1.el6.x86_64.rpm  zabbix-web-2.4.5-1.el6.noarch.rpm  zabbix-web-mysql-2.4.5-1.el6.noarch.rpm  php-bcmath-5.3.3-26.el6.x86_64.rpm  php-mbstring-5.3.3-26.el6.x86_64.rpm zabbix-server-2.4.5-1.el6.x86_64.rpm  fping-2.4b2-16.el6.x86_64.rpm  iksemel-1.4-2.el6.x86_64.rpm  iksemel-utils-1.4-2.el6.x86_64.rpm 

   //安裝zabbix-serverzabbix-agentzabbixweb支持

 

agent端(server2)上

#rpm -ivh zabbix-agent-2.4.5-1.e16.x86_64.rpm  zabbix-2.4.5-1.e16.x86_64.rpm  //安裝zabbix-agent

 

server3上,

mysql上創建zabbix庫並加入一個 zabbix用戶 密碼redhat

mysql->create database zabbix character set utf8 collate utf8_bin;

        ->grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';


#cd /usr/share/doc/zabbix-server-mysql-2.4.5/create/

#mysql -uzabbix -predhat zabbix  < schema.sql

#mysql -uzabbix -predhat zabbix  < images.sql

#mysql -uzabbix -predhat zabbix  < data.sql   //zabbixmysql組件導入到zabbix用戶的zabbix庫中

#vim /etc/zabbix/zabbix_server.conf

DBPassword後面改爲 redhat(修改zabbix配置文件的數據庫密碼)

重啓httpdzabbix-server

 

在瀏覽器上輸入172.25.0.3/zabbix/,啓動zabbix web界面。

php time zone error主要是在php.ini文件中未設置導致,編輯php.文件(vim /etc/php.ini)
選擇Asia/Shanghai,記得去掉前面的分號。
保存退出後重啓httpd服務:service httpd restart
進入網頁zabbix,然後點擊retry或者刷新即可。

配置如下

Database type Mysql

Database host localhost

Database port 0  (0爲數據庫默認端口)

Databasename zabbix

User zabbix

Password redhat

wKioL1dgOeCQjxU8AAGKLVjMERc893.png-wh_50

 

 點擊test connection,成功後點擊next,然後配置如下:

Host 172.25.0.3

Port 10051

Name server3.example.com

點擊next後輸入默認用戶名和密碼爲Admin/zabbix

 

server2上,

#vim /etc/zabbix/zabbix_agentd.conf  //修改zabbix_agent配置

Server=172.25.0.3

ServerActive=172.25.0.3

Hostname 改爲server2.example.com,

重啓zabbix-agent服務。

server3上,同上。不過server2改爲server3.

 

(2) zabbix發現主機。

在zabbix的web界面上,點擊 configuration-> actions ->auto register-> create action  

自定義name

operation選項卡中

添加 add host 自動註冊主機添加到hosts列表

Add to host groups  自動註冊主機加入任一組如linux servers

Link to templates  自動註冊主機應用模板 template os linux

點擊configuration -> hosts可以看到新加的主機

 

(3)配置監控服務

 http服務爲例,點擊configure -> templates 選擇需要鏈接的模板template app http service

選擇需要鏈接的主機 server2.example.com

這樣主機server2.example.com的監控項中就出現了http服務

監控zabbix_server上的mysql服務

添加mysql模板

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 文件中指定了 zabbix agent 如何獲取 mysql服務的各種信息可以在 zabbix_server.conf 文件中找到密碼。

server3上,

#mysqladmin -uzabbix -pwestos ping  //檢查mysqld是否運行

#mkdir /var/lib/zabbix

#vim /var/lib/zabbix/.my.cnf  ///var/lib/zabbix目錄中新建“.my.cnf”文件,用以指定 zabbix agent 如何登陸數據庫,默認使用的是 zabbix 用戶

寫入 

[mysql]

host = localhost

user = zabbix

password = westos

socket = /var/lib/mysql/mysql.sock

[mysqladmin]

host = localhost

user = zabbix

password = westos

socket = /var/lib/mysql/mysql.sock

重啓zabbix-agent zabbix-server

web上即可看到統計圖表

點擊Configuration->hosts->zabbix server Graphs即可看到關於mysql的兩個監控圖形

wKiom1dgOeGAOwhgAAJjypgNH8U071.png-wh_50 

 

(4)Zabbix報警 

使用110雲告警:

登陸www.onealert.com 註冊帳號,掃描二維碼綁定微信。按照網頁中的文檔說明安裝配置110雲告警插件。告警方式有郵件,微信,電話,短信等。

 

總結

zabbix的主要特點

- 安裝與配置簡單,學習成本低

- 支持多語言(包括中文)

- 免費開源

- 自動發現服務器與網絡設備

- 分佈式監視以及WEB集中管理功能

- 可以無agent監視

- 用戶安全認證和柔軟的授權方式

- 通過WEB界面設置或查看監視結果

- email等通知功能

Zabbix主要功能:

- CPU負荷

- 內存使用

- 磁盤使用

- 網絡狀況

- 端口監視

- 日誌監視

 


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