目錄 Cacti+nagios監控部署步驟... 2 一、Cacti安裝... 2 1需要安裝的依賴軟體包:... 2 2安裝rrdtool 2 3啟動資料庫和httpd服務... 3 4將servername和ip對應寫入hosts 3 5安裝cacti 3 6創建cacti資料庫並授權:... ...
目錄
Cacti+nagios監控部署步驟... 2
一、Cacti安裝... 2
1需要安裝的依賴軟體包:... 2
2安裝rrdtool 2
3啟動資料庫和httpd服務... 3
4將servername和ip對應寫入hosts 3
5安裝cacti 3
6創建cacti資料庫並授權:... 3
7導入cacti的數據表... 3
8修改配置文件,提供php連接mysql的用戶名、密碼(如圖)... 3
9登錄網頁按照嚮導提示完成安裝:... 4
10 配置本機snmp. 6
11 通過WEB頁面添加監控設備... 7
12 為新創建圖形生成數據,並將輪詢加入計劃任務... 9
13 更改php時區... 9
14 安裝高效輪詢器spine. 9
二、Cacti插件安裝... 11
1 如不需打補丁(在cacti-0.8.8b版中預設已帶plugin management),則只修改配置文件即可 11
2 安裝monitor、settings、thold插件... 11
3 刷新web頁面plugin management,出現插件的藍色圖標,依次全部啟用... 12
4 thold警報功能... 12
5 安裝weathermap插件... 15
三、cacti系統的客戶端配置... 18
1 linux主機... 18
2 windows主機... 19
四、Nagios安裝... 20
1 安裝依賴關係... 20
2 創建用戶組... 20
3 編譯安裝... 21
4 安裝插件... 21
5 創建登錄頁面的密碼文件... 21
6 創建Apache首頁文件,啟動nagios 21
7 登錄地址,輸入設定的用戶名密碼... 22
8 檢查nagios配置文件語法是否錯誤... 22
五、將nagios集成到cacti 22
1 安裝ndoutils 22
2 導入資料庫... 23
3 修改配置文件... 23
Cacti+nagios監控部署步驟
一、Cacti安裝
搭建cacti需下載的軟體集合:
cacti-0.8.8b.tar.gz
cacti-spine-0.8.8b.tar.gz
monitor-v1.3-1.tgz
rrdtool-1.2.27.tar.gz
settings-v0.71-1.tgz
thold-v0.5.0.tgz
php-weathermap-0.97b.zip
其餘為預設網路安裝。
1需要安裝的依賴軟體包:
# yum install httpd php php-mysql php-ldap php-xml net-snmp-utils mysql mysql-server net-snmp crond lm_sensors mysql-devel php-pdo php-devel –y
2安裝rrdtool
2.1安裝rrdtool所需軟體:
# yum install -y gcc gcc-c++ libart_lgpl-devel zlib-devel libpng-devel freetype-devel perl-devel zlib libpng perl
2.2解壓rrdtool源碼包安裝:
# tar zxvf rrdtool-1.2.27.tar.gz
# cd rrdtool-1.2.27
# ./configure --prefix=/usr/local/
# make && make install
3啟動資料庫和httpd服務
# service httpd start;chkconfig httpd on
# service mysqld start;chkconfig mysqld on
4將servername和ip對應寫入hosts
# echo '192.168.2.81 monitor' >>/etc/hosts
5安裝cacti
# tar zxvf cacti-0.8.8b.tar.gz
# mv cacti-0.8.8b /var/www/html/cacti
創建cacti用戶,並設置相關目錄屬主、屬組
# useradd cactiuser
# cd /var/www/html/
# chown -R root.root *
# cd cacti
# chown -R cactiuser.cactiuser rra log
6創建cacti資料庫並授權:
# mysql -uroot –p
mysql> show databases;
mysql> create database cactidb default character set utf8;
mysql> grant all on cactidb.* to 'cactiuser'@'localhost' identified by 'cactiuser';
mysql> grant all on cactidb.* to 'cactiuser'@'127.0.0.1' identified by 'cactiuser';
mysql> grant all on cactidb.* to 'cactiuser'@'%' identified by 'cactiuser';
mysql> flush privileges;
mysql> \q
7導入cacti的數據表
# cd /var/www/html/cacti
# mysql -ucactiuser -pcactiuser cactidb <cacti.sql
8修改配置文件,提供php連接mysql的用戶名、密碼(如圖)
# vim include/config.php
# vim include/global.php
……
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "用戶名";
$database_password = "密碼";
$database_port = "3306";
……
9登錄網頁按照嚮導提示完成安裝:
預設admin,首次登錄後會要求修改密碼:
修改完密碼進入管理界面:
10 配置本機snmp
10.1 修改配置文件
# vim /etc/snmp/snmpd.conf
……
com2sec notConfigUser 192.168.2.81 public
access notConfigGroup "" any noauth exact all none none
view all included .1 80
10.2 啟動服務
# service snmpd start;chkconfig snmpd on
11 通過WEB頁面添加監控設備
在Device中將預設主機刪除:
在Device中添加監控主機:
Create完成後,在Associated Data Queries欄將SNMP*項全部Add,其餘點X刪除。
點擊save保存。
為監控項繪製圖形:
在覆選框中選擇監控項目,然後Create
將新創建圖形加入圖形樹
12 為新創建圖形生成數據,並將輪詢加入計劃任務
# su – cactiuser
$ php /var/www/html/cacti/poller.php
$ crontab -e
*/1 * * * * /usr/bin/php /var/www/html/cacti/poller.php &> /dev/null
$ exit
# service crond restart
按此方式添加其他主機。
13 更改php時區
# /etc/php.ini
date.timezone = Asia/Shanghai (另外,若虛擬環境平臺CACTI伺服器最好進行時間同步)
14 安裝高效輪詢器spine
(下載Cacti-spine對應版本)
14.1 安裝依賴
# yum -y install net-snmp-devel help2man openssl-devel
# tar -zxvf cacti-spine-0.8.8b.tar.gz
# cd cacti-spine-0.8.8b/
# ./configure //預設是安裝在/usr/local/spine下
# make && make install
14.2 修改配置文件信息和位置
# cd /usr/local/spine/etc/
# mv spine.conf.list spine.conf
# vim spine.conf
……
DB_Host localhost
DB_Database cactidb
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
# cp spine.conf /etc/spine.conf
14.3 運行spine
# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8b starting
SPINE: Time: 1.1267 s, Threads: 5,
Hosts: 3
如上提示表示安裝成功!
14.4 修改Cacti配置
Console -> Cacti Settings->Paths->Spine
Poller File Path,填入路徑 /usr/local/spine/bin/spine
Console -> Cacti Settings->Poller->Poller Type,在下拉中選擇spine切換到spine
Console -> Cacti Settings->Poller->Poller Interval,Cron Interval->Every Minute
Console -> Cacti Settings->Poller->Spine Specific Execution Parameters 里的 Maximum Threads per Process 為監控伺服器cpu個數的2倍
(依次或批量)修改Console-Management->Templates->Data Templates中step和heartbeat的值:
(1) 在Associated
RRA's更改圖形模板顯示
(2) 將step設置為60s 繪圖一次
(3) 將Heartbeat設置為120s
14.5 重建 Poller 緩存
Console -> System Utilities -> Rebuild Poller Cache
二、Cacti插件安裝
主程式安裝完成後,還需要通過安裝插件來實現一些擴展的功能,例如定義警報閾值、添加模塊選項等。
1 如不需打補丁(在cacti-0.8.8b版中預設已帶plugin management),則只修改配置文件即可
# cd /var/www/html/cacti/
# vim include/global.php
……
$database_type = "mysql";
$database_default = "cactidb";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
……
# vim include/config.php
$url_path = "/cacti/" (預設)
2 安裝monitor、settings、thold插件
monitor:通過簡單明瞭的圖標提供伺服器的運行狀態。
settings:給不同的插件提供一些共用的信息,如郵件信息,dns信息。
thold :提供設備異常預警。
將所需的對應插件下載解壓並拷貝到相關目錄下即可:
# cd /root/cacti/
# tar zxvf settings-v0.71-1.tgz
# tar zxvf thold-v0.5.0.tgz
# tar zxvf monitor-v1.3-1.tgz
# mv monitor settings thold /var/www/html/cacti/plugins
# cd –
3 刷新web頁面plugin management,出現插件的藍色圖標,依次全部啟用
4 thold警報功能
4.1 定義通知郵件列表
4.2 設置發送郵件伺服器等相關
設置完點擊save保存,並且可以點擊右上角send a test email發送一封測試郵件。
4.3 郵件告警具體項應用
創建完後,按如下配置,save
查看新添加警告狀態
測試預警
# dd if=/dev/zero of=/boot/mail.img bs=1M count=120
4.4 或者也可以先創建Threshold Templates,保存後創建報警項。
5 安裝weathermap插件
(weathermap可以作為cacti的插件使用,也可以獨立使用,需要php,php-gd支持)
5.1 下載軟體包
php-weathermap-0.97b.zip
5.2 安裝
# cd /root/cacti/
# unzip php-weathermap-0.97b.zip
# mv weathermap/ /var/www/html/cacti/plugins
# cd /var/www/html/cacti/plugins/weathermap/
# chown -R apache.apache configs/ output/
刷新cacti,console——Plugin Management,點擊按鈕安裝
5.3 編輯
# yum install php php-gd
# service httpd restart
在console列表裡找到weathermap,點擊Add,添加一個weathermap配置文件,其中simple.conf是預設配置文件,點擊進行編輯使用即可
或者直接進入weathermap模塊的Editor,進入simple.conf編輯即可
編輯完圖形直接生效,查看編製拓撲圖後的效果
三、cacti系統的客戶端配置
1 linux主機
1.1 安裝相關依賴
# yum install net-snmp* –y
# vim /etc/snmp/snmpd.conf
……
com2sec notConfigUser 192.168.2.82 public
access notConfigGroup "" any noauth exact all none none
view all included .1 80
1.2 啟動snmp
# service snmpd start;chkconfig snmpd on
最後從web頁面添加設備即可。
2 windows主機
在系統服務中開啟snmp服務:
然後在屬性中按如下圖所示修改:
配置完snmp後,安裝snmp informant-std-16.exe程式(需下載)即可。
四、Nagios安裝
搭建nagios需下載的軟體集合
nagios-4.1.1.tar.gz
nagios-plugins-2.1.1.tar.gz
ndoutils-2.0.0.tar.gz
npc-2.0.4.tar.gz
php-json-ext-1.2.1.tar.bz2
nrpe-2.15.tar.gz
NSClient++-Stable-64.msi
其他為預設安裝。
1 安裝依賴關係
# yum -y install httpd php gcc glibc glibc-common gd gd-devel libpng libjpeg zlib openssl-devel mysql-devel php-pdo
2 創建用戶組
# useradd nagios
# usermod -G nagios apache
3 編譯安裝
# tar -zxvf nagios-4.1.1.tar.gz
# cd nagios-4.1.1
# ./configure --with-command-group=nagios
# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# make install-webconf
# make install-exfoliation
# make install-classicui
【註: make install-exfoliation為naigios新的界面,想要換成以前經典主題需要執行make install-classicui老的界面。】
4 安裝插件
# tar zxvf nagios-plugins-2.1.1.tar.gz
# cd nagios-plugins-2.1.1
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make && make install
5 創建登錄頁面的密碼文件
# htpasswd -cm /usr/local/nagios/etc/htpasswd.users nagiosadmin
6 創建Apache首頁文件,啟動nagios
# touch /var/www/html/index.html
# service nagios start;chkconfig nagios on
7 登錄地址,輸入設定的用戶名密碼
8 檢查nagios配置文件語法是否錯誤
# cd /usr/local/nagios
# ./bin/nagios -v etc/nagios.cfg
……………
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 1 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors: 0
五、將nagios集成到cacti
1 安裝ndoutils
# tar zxvf ndoutils-2.0.0.tar.gz
# cd ndoutils-2.0.0
# ./configure --prefix=/usr/local/nagios/ LDFLAGS=-L/usr/lib --with-mysql-inc=/usr/include/mysql/ --with-mysql-lib=/usr/lib64/mysql/(/var/lib/mysql/) --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
# make && make install
2 導入資料庫
# cd db/
# ./installdb -u cactiuser -p cactiuser -h localhost -d cactidb
3 修改配置文件
# cd ..
# cp config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
# cp config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg
# vim /usr/local/nagios/etc/nagios.cfg
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
process_performance_data=1
# service nagios checkconfig
Running configuration check...
OK.
# vim /usr/local/nagios/etc/ndomod.cfg
output_type=tcpsocket
output=127.0.0.1
data_processing_options=-1
# vim /usr/local/nagios/etc/ndo2db.cfg
socket_type=tcp
db_name=cactidb
db_prefix=npc_
db_user=cactiuser
db_pass=cactiuser
debug_level=1
- tar zxvf npc-2.0.4.tar.gz
- mv npc /var/www/html/cacti/plugins/
- vim /var/www/html/cacti/include/config.php
- # 加入:
- $plugins[] = 'npc';
ndomod: Error writing to data sink! Some output may get lost.解決
安裝 npc支持:json(白色未做)
4 安裝json
npc展示需要php中的json支持
1) 安裝依賴
# yum install -y php-devel
2) 安裝json
# tar jxvf php-json-ext-1.2.1.tar.bz2
# cd php-json-ext-1.2.1
# phpize
# ./configure && make && make install
3) 啟用json
# vim /etc/php.d/json.ini
extension=php_json.so
ln –s /usr/lib64/php/modules/json.so /usr/lib64/php/modules/php_json.so
# yum reinstall php-common -y
5 在cacti安裝npc插件
# tar xvf npc2.0.4.tar
# mv npc /var/www/html/cacti/plugins/
在web頁啟用插件
插件配置
修改文件許可權
# cd /usr/local/nagios/etc/
# chmod 644 ndo2db.cfg ndomod.cfg
# chown nagios.nagios ndomod.cfg ndo2db.cfg
# chown .nagios htpasswd.users
啟動服務
# service mysqld restart
# service httpd restart
# /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
# vim /etc/rc.local
/usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg
# service nagios restart
如果網頁Host中無顯示並且日誌內有報錯Aug 26 19:52:54 monitor ndo2db: mysql_error: 'Unknown column 'long_output' in 'field list''時,如下修改資料庫:
mysql> use cactidb;
mysql> alter table npc_eventhandlers add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_hostchecks add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_hoststatus add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_notifications add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_servicechecks add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_servicestatus add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_statehistory add long_output TEXT NOT NULL default '' after output;
mysql> alter table npc_systemcommands add long_output TEXT NOT NULL default '' after output;
修改資料庫後依次重啟服務。
若此標簽框內數據仍空白全部為0,且日誌中有這樣錯誤Aug 28 21:31:19 monitor ndo2db: mysql_error: 'Unknown column 'importance' in 'field list''時,如下修改資料庫:
(到ndoutils中的mysql-upgrade-2.0.0.sql文件, 將mysql-upgrade-2.0.0.sql里所有nagios_修改為npc_)
mysql> use cactidb;
mysql> source /home/cacti/ndoutils-2.0.0/db/mysql-upgrade-2.0.0.sql
最終顯示效果如下,
至此,cacti+nagios框架的整合和基本插件的安裝就完成了。
四、Nagios配置
1 nagios伺服器端配置
1) 只需安裝check_nrpe插件(前面已經安裝完nagios-plugins-2.1.1)
# cd /home/nagioss/
# tar zxvf nrpe-2.15.tar.gz
# yum install openssl openssl-devel
# cd nrpe-2.15
# ./configure && make all && make install
# make install-plugin
# make install-daemon
# make install-daemon-config
# ls /usr/local/nagios/libexec/
2) 定義check_nrpe命令
# cd etc/objects
# vim commands.cfg
# 'check_nt' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
3) 定義主機和服務
# vim hosts.cfg
define host{
use linux-server
host_name monitor
alias monitor
address 192.168.2.81
}
define host{
use windows-server
host_name TESTSERVER
alias TESTSERVER
address 192.168.2.6
}
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members monitor,server-redis-1
}
define hostgroup{
hostgroup_name windows-servers
alias Windows Servers
members UATSERVER,TESTSERVER
}
# vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_dir=/usr/local/nagios/etc/objects/services
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
新建服務目錄,在目錄下創建相應的服務文件
根據被監控端nrpe配置對服務文件做類似修改
# vim object/services/2.5.cfg
……
define service{
use generic-service
host_name server-redis-1
service_description HTTP
check_command check_nrpe!check_http
}
# vim object/services/win2.9.cfg
define service{
use generic-service
host_name UATSERVER
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
4) 檢查文件語法是否正確
# service nagios configtest
或者
# /usr/local/nagios/bin/nagios -v ../../nagios.cfg
這裡有一個警告,是因為複製內容後兩個描述名相同,改一個即可
5)
2 被監控端linux伺服器配置
1) 創建相關用戶和組
# useradd nagios
2) 安裝nagios插件
# tar zxvf nagios-plugins-2.1.1.tar.gz
# cd nagios-plugins-2.1.1
# yum install gcc gcc-c++ -y
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make && make install
3) 安裝nrpe
# tar zxvf nrpe-2.15.tar.gz
# cd nrpe-2.15
# yum install openssl openssl-devel
# ./configure && make all && make install
# make install-plugin
# make install-daemon
# make install-daemon-config
# make install-xinetd
# ls /usr/local/nagios/libexec/
4) 配置nrpe
# vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.2.81
# df –h
5) (以守護進程方式)啟動nrpe daemon
nrpe服務有兩種運行模式:’standalone daemon’ or ‘xinetd’
# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
# echo ‘/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d’ >>/etc/rc.local
查看nrpe埠是否已啟動
# netstat -nptul|grep nrpe
6) 可在監控端測試一下nrpe是否正常通信
# ./check_nrpe -H 192.168.2.5
# ./check_nrpe -H 192.168.2.5 -c check_users(測試2.5上命令check_users是否可運行)
7) 其他,監控redis
在redis服上添加
# vim etc/nrpe.cfg
在監控服上添加
# vim services/2.5.cfg
8) 檢查語法,重啟nagios、httpd
# service nagios configtest
# service nagios restart;service httpd restart
3 被監控端windows伺服器配置
在windows服上需安裝NSClient++程式引擎,安裝後伺服器可通過check_nt來獲取監控數據,如圖:
1) 下載軟體包:
NSClient++-Stable-64.msi
2) 客戶端安裝
一路預設即可,最後全選進行安裝
3) 將NSClient++服務開啟(自動啟動)
4) 配置NSClient++
編輯安裝目錄下的NSC.ini文件,打開NSClient++的埠,因為安裝時候需要的模塊已經勾選了,所以不用再設置。
[Settings]
allowed_hosts=192.168.2.81 //監控伺服器地址
[NSClient]
port=12489 //啟用12489埠
<cmd>查看”12489”和”5666”埠是否已監聽:
5) 監控端伺服器設置
確保命令文件中有check_nt(預設)
6) 測試check_nt是否通信正常
# ./libexec/check_nt -H 192.168.2.6 -v UPTIME -p 12489
# ./check_nt -H 192.168.2.9 -v SERVICESTATE -p 12489 -l ChampBEndService_3
# ./check_nt -H 192.168.2.9 -v PROCSTATE -p 12489 -l CHAMP_SERVICE_3.exe
7) 檢查配置語法,重啟nagios、httpd
# service nagios configtest
# service nagios restart;service httpd restart
五、添加cacti模板監控Mysql服務
1 需下載的軟體包
percona-cacti-templates-1.1.6-1.noarch.rpm
2 將rpm包拷貝到cacti伺服器並解壓
# mv percona-cacti-templates-1.1.6-1.noarch.rpm /opt
# cd /opt
# rpm2cpio percona-cacti-templates-1.1.6-1.noarch.rpm | cpio –div
# cp usr/share/cacti/scripts/ss_get_mysql_stats.php \ usr/share/cacti/resource/percona/templates/cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.6.xml /opt/
# cp /opt/ss_get_mysql_stats.php /var/www/html/cacti/scripts/
# vim /var/www/html/cacti/scripts/ss_get_mysql_stats.php
3 導入模板文件
將/opt/cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.6.xml拷貝到本機,打開cacti頁面——console——Import Templates——找到文件路徑,導入。
導入成功後,Add主機,在相關項選擇使用模板即可。
六、添加cacti模板監控Windows主機
1 windows主機開啟SNMP,安裝informant-std-16.exe
2 下載軟體包
Cacti_SNMP_Informant_Standard_Metrics_v13.zip
3 解壓模板文件,將template文件夾中的模板文件通過界面操作全部導入;
然後將文件夾..\resource\snmp_queries下的snmp_informant_standard_*.xml文件全部放到伺服器的cacti/resource/snmp_queries/路徑下,並且確保所有用戶可讀。
4 添加監控設備,在Host Template以及Associated Graph Templates、Associated Data Queries等相應項中選擇模板。
Create Graph for this Host
七、使用nagios監控windows服務(ChampBEndService_3)
1 先測試插件
# /usr/local/nagios/libexec
# ./check_nt -H 192.168.2.9 -v SERVICESTATE -p 12489 -d SHOWALL -l ChampBEndService_3
# ./check_nt -H 192.168.2.9 -v PROCSTATE -p 12489 -d SHOWALL -l CHAMP_SERVICE_3.exe
若測試OK,則說明被控端NSClient++配置及服務都正確
2 添加設置
# vim objects/commands.cfg
# vim services/win2.9.cfg
3 重啟服務
# service nagios checkconfig
# service nagios restart
# service httpd restart
八、設置nagios發送報警郵件
若日誌中有Warning: Check of host 'monitor' timed out after 30.00 seconds報錯,將nagios.cfg中的notification_timeout=30改成notification_timeout=150。
1 安裝postfix,刪除sendmail
# yum remove sendmail
# service postfix start;chkconfig postfix on
2 將本機發送郵件的地址加入到郵箱白名單,不然會被第三方郵箱當成垃圾郵件。
3 測試收到郵件
九、cacti添加路由器、交換機