?三種軟件的官方文檔地址:
cacti:http://docs.cacti.net/manual:087:1_installation#installation
nagios:http://www.nagios.org/documentation
ganglia:http://ganglia.info/
在監控平臺領域,這三款監控軟件各有所長各有所短,這篇文檔先介紹三款軟件的安裝配置方法,然后再將三種軟件整合起來,使得每款軟件的優點得到利用。
系統環境:rhel6 selinux and iptables disabled
cacti:
cacti軟件通過net-snmp協議定時采集主機信息,并保存在mysql數據庫中,當用戶要查看的時候數據庫中找到對應的rra文件,通過rrdtool軟件進行繪圖,然后將圖形返回給用戶。他的優勢在于可以生成直觀的報表。
所以cacti運行的前提是安裝了rrdtool,mysql,php以及一個網頁發布程序,本文采用apache。
首先安裝需要的軟件及依賴性:
?
# yum?install?httpd?mysql?mysql-server?mysql-devel?php?php-mysql?php-snmp?net-snmp?net-snmp-utils?net-snmp-libs?net-snmp-devel?libart_lgpl-devel?libpng-devel?freetype-devel?cairo-devel?pango-devel?gcc?make?? 注意php-snmp包在Optional庫里
安裝好以后啟動mysql和apache
?
#?/etc/init.d/httpd?start?#?/etc/init.d/mysqld?start? 配置PHP:只需要修改/etc/php.ini文件,將時區設置為上海:?
date.timezone = Asia/shanghai
配置snmp:
cacti官方文檔中snmp的配置過于繁瑣,建議按照http://www.cyberciti.biz/nixcraft/linux/docs/uniqlinuxfeatures/mrtg/mrtg_config_step_3.php中的步驟進行配置。
?
#?vi?/etc/snmp/snmpd.conf? 對配置中的一些語句進行替換
?
#com2sec?notConfigUser??default???????public?com2sec?local?????localhost???????????public?com2sec?mynetwork?192.168.0.0/24??????public??#group???notConfigGroup?v1???????????notConfigUser?#group???notConfigGroup?v2c???????????notConfigUser?group?MyRWGroup?v1?????????local?group?MyRWGroup?v2c????????local?group?MyRWGroup?usm????????local?group?MyROGroup?v1?????????mynetwork?group?MyROGroup?v2c????????mynetwork?group?MyROGroup?usm????????mynetwork???#view????systemview????included???.1.3.6.1.2.1.1?#view????systemview????included???.1.3.6.1.2.1.25.1.1?view?all????included??.1??#access??notConfigGroup?""??????any???????noauth????exact??systemview?none?none?access?MyROGroup?""??????any???????noauth????exact??all????none???none?access?MyRWGroup?""??????any???????noauth????exact??all????all????none??#syslocation?Unknown?(edit?/etc/snmp/snmpd.conf)?#syscontact?Root?<root@localhost>?(configure?/etc/snmp/snmp.local.conf)?syslocation?Linux?(RH3_UP2),?Home?Linux?Router.?syscontact?yejk?<mrye1990@gmail.com>? 啟動snmpd
#?chkconfig?snmpd?on?#?service?snmpd?start? ?安裝rrdtool
?
#?yum?install??libxml2-devel?#?tar?zxf?rrdtool-1.4.4.tar.gz?#?cd?rrdtool-1.4.4?#?./configure??#?make?#?make?install?#?ln?-s??/opt/rrdtool-1.4.4/bin/rrdtool??/usr/local/bin? 安裝cacti:
#?tar?zxf?cacti-0.8.7h.tar.gz?#?mv?cacti-0.8.7h?/var/www/html/cacti?#?cd?/var/www/html/cacti/?#?useradd?cacti?#?chown?-R?cacti?rra?log?#?mysql?cacti?<?cacti.sql? 在數據庫中創建一個供cacti使用的用戶,僅有對cacti庫操作的權限:
#mysql?mysql>?grant?all?on?cacti.*?to?cacti@localhost?identified?by?'cacti';?mysql>?flush?privileges;?mysql>?quit? ? 編輯cacti的配置文件,修改登錄數據庫的用戶和密碼
#?vim?include/config.php??$database_type?=?"mysql";?$database_default?=?"cacti";?$database_hostname?=?"localhost";?$database_username?=?"cacti";?$database_password?=?"cacti";?$database_port?=?"3306";?$database_ssl?=?false;?$url_path?=?"/cacti/";? 為cacti用戶寫一個crontab,使他沒五分鐘收集一次主機信息
#?su?-?cacti?$?crontab?-e?*/5?*?*?*?*?cactiuser?php?/var/www/html/cacti/poller.php?>?/dev/null?2>&1? 安裝cacti加速器:cacti-spine:
?
#?yum?install?automake?libtool?#?tar?zxf?cacti-spine-0.8.7h.tar.gz??#?cd?cacti-spine-0.8.7h?#?aclocal?#?libtoolize?--force?#?autoheader??#?autoconf??#?automake?#?./configure??#?make?#?make?install?#?cd?/usr/local/spine/etc/?#?mv?spine.conf.dist?spine.conf?#?vim?spine.conf??DB_Host?????????localhost?DB_Database?????cacti?DB_User?????????cacti?DB_Pass?????????cacti?DB_Port?????????3306?DB_PreG?????????0? ?
打開http://192.168.0.100/cacti
在console-settings-paths-alternate poller path 寫上 /usr/local/spine/bin/spine
再將console-settings-poller-poller type改為spine
注意如果文字是亂碼的話需要安裝中文支持
安裝cacti插件管理器:
cacti可以通過安裝插件大大豐富它的功能,插件安裝葉非常簡便,只要安裝好插件管理器以后將要安裝的插件文件夾放在/var/www/html/cacti/plugins中就可以在網頁里進行安裝。下面時安裝插件管理器的方法:
?
?
# tar?zxf?cacti-plugin-0.8.7h-PA-v3.0.tar.gz??# cd?cacti-plugin-arch/?#?mysql?-ucacti?-pcacti?cacti?<?pa.sql?# cp?cacti-plugin-0.8.7h-PA-v3.0.diff?/var/www/html/cacti/?# cd?/var/www/html/cacti/?# patch?-p1?-N?<?cacti-plugin-0.8.7h-PA-v3.0.diff? ?
?
打開http://192.168.0.100/cacti
在console-utilities-user management-admin-realm permissions勾選plugin management
?
安裝三款插件:
?
tar?zxf?settings-0.5.tar.gz?-C?/usr/local/apache/htdocs/cacti/plugins??tar?zxf?monitor-0.8.2.tar.gz?-C?/usr/local/apache/htdocs/cacti/plugins??tar?zxf?thold-0.4.2.tar.gz?-C?/usr/local/apache/htdocs/cacti/plugins? 打開http://192.168.0.100/cacti,進入插件管理器可直接進行安裝,并可在settings中進行設置。
一些cacti簡單的介紹:
?
Cacti 其實是一套 php 程序,一個 rrdtool 工具。它運用 snmpget 采集數據,使用 rrdtool 繪圖。界面非常漂亮,它提供了強大的數據管理和用戶管理功能,一張圖是屬于一個 host 的,每一個 host 又可以掛載到一個樹狀的結構上。用戶的管理上,作為一個開源軟件,它做到為指定一個用戶能查看的“樹”、host、甚至每一張圖,還可以與 LDAP 結合進行用戶的驗證。 Cacti 還提供自己增加模板的功能,讓你添加自己的 snmp_query和 script 。功能相當強大!
?cacti 是用 php 語言實現的一個軟件,它的主要功能是用 snmp 服務獲取數據, snmp 需要的變量數據是通過讀取 mysql 數據庫得到,然后用 rrdtool 儲存和更新數據,當用戶需要查看數據的時候用 rrdtool 生成圖表呈現給用戶。rrdtool 對數據的更新和存儲就是對 rrd 文件的處理,rrd 文件是大小固定的檔案文件,它能夠存儲的數據筆數在創建時就已經定義。1. Snmp 用來收集數據;2. Rrdtool 用來存儲數據和生成圖表;3. Mysql 用來配合 PHP 程序存儲一些變量數據并對變量數據進行調用。
nagios: cacti默認是以郵件發送警告信息的,雖然可以安裝插件以實現其他方式進行告警,但不是他的強項,nagios有著強大的報警機制,下面是部署方法:
#?yum?install?httpd?gcc?make?gd-devel?perl-ExtUtils-Embed?#安裝編譯所需要的軟件包?#?useradd?nagios?#運行nagios服務的用戶?#?usermod?-G?nagios?apache?#將apache用戶加入到nagios組中,因為nagios程序通過apache發布與修改,而httpd程序的執行用戶是apache,所以需要讓apache有權限修改查看nagios文件?#?tar?jxf?nagios-cn-3.2.3.tar.bz2?#?cd?nagios-cn-3.2.3?#?./configure?--enable-embedded-perl?#?make?#?make?all?#?make?install?#?make?install-init?#?make?install-commandmode?#?make?install-config?#?make?install-webconf? ?安裝nagios插件:
?
#?yum?install?mysql-devel?openssl-devel?-y?#安裝編譯所需的安裝包?#?tar?zxf?nagios-plugins-1.4.15.tar.gz??#?cd?nagios-plugins-1.4.15?#?./configure?--with-nagios-user=nagios?--with-nagios-group=nagios?--enable-extra-opts?--enable-libtap?--enable-perl-modules?#?make?#?make?install? ?#nagios 配置
#?vi?/usr/local/nagios/etc/nagios.cfg?#nagios?配置?cfg_file=/usr/local/nagios/etc/objects/hosts.cfg?#新建?hosts.cfg?文件,存放主機與主機組定義?cfg_file=/usr/local/nagios/etc/objects/services.cfg?#新建?services.cfg?文件,存放服務與服務組定義?#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg??#注釋?localhost.cfg?文件? 注意,這里軟件裝好的時候默認時讀取licalhost.cfg這個文件中的被監控的主機與服務的設置,我們把它注釋掉,新加入兩個文件,分別管理被監控的主機、主機組與被監控的服務與服務組
編輯被監控主機與主機組的文件:
#?cd?/usr/local/nagios/etc/objects?#?vim?/usr/local/nagios/etc/objects/hosts.cfg??define?host{?????????use?????????????????????linux-server?????????host_name???????????????監控主機?????????alias???????????????????nagios?服務器?????????address?????????????????127.0.0.1?????????icon_p_w_picpath??????????????web.gif?????????statusmap_p_w_picpath?????????web.gd2?????????2d_coords???????????????100,300?????????3d_coords???????????????100,300,100?????????}??define?hostgroup{???????????????;主機組不是必須的?????????hostgroup_name??linux-servers??????????alias???????????Linux?Servers??????????????????members?????????*?????????????}? 編輯被監控服務的時候因為內容很多,所以可以拷貝原來的localhost.cfg文件進行一些修改來使用:
cp?localhost.cfg?services.cfg? ?對services.cfg進行修改,在vi編輯器中的命令模式下用d1G去掉servicegroup以上的hosts部分,并用:%s/田朝陽家用機/監控主機/g命令將文件中用于被監控的主機全部改為剛剛在hosts文件中設置的主機,并在servicegroup部分做如下修改,其他不變:
?
define?servicegroup{?????????servicegroup_name?系統負荷檢查?????????alias?負荷檢查?????????members?監控主機,進程總數,監控主機,登錄用戶數,監控主機,根分區,監控主機,>交換空間利用率?????????}??define?servicegroup{?????????servicegroup_name?全部聯通性檢查?????????alias?聯通性檢查?????????members?監控主機,PING?????????}? ?
使用命令
#?htpasswd?-c?/usr/local/nagios/etc/htpasswd.users?nagiosadmin? 修改nagios管理員的登錄密碼,注意必須是nagiosadmin,否則可以登錄但是無法查看狀態
?
使用命令
/usr/local/nagios/bin/nagios?-v?/usr/local/nagios/etc/nagios.cfg? ?校驗配置文件語法的正確性,沒有錯誤的話
?
service?nagios?start??service?httpd?start?? ?
?
?
用nagios監控 mysql 主機
在mysql服務器端創建一個監控檢測賬戶,只給select權限,不需要密碼:
?
mysql>?create?database?nagdb;?mysql>?grant?select?on?nagdb.*?to?nagdb@'192.168.0.86'?;?mysql>?flush?privileges;? ?
在 nagios 主機上檢測是否可以連接 mysql 主機上的 mysql 服務
?
/usr/local/nagios/libexec/check_mysql?-H?192.168.0.36?-u?nagdb?-d?nagdb?Uptime:?286??Threads:?1??Questions:?16??Slow?queries:?0??Opens:?15??Flush?tables:?1??Open?tables:?8??Queries?per?second?avg:?0.55? ?
轉載于:https://blog.51cto.com/yejiankang/863725
總結
以上是生活随笔為你收集整理的三种监控平台配置及其整合(cacti nagios ganglia)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。