溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Nagios的安裝與配置詳解

發(fā)布時(shí)間:2020-06-08 08:55:26 來(lái)源:網(wǎng)絡(luò) 閱讀:525 作者:gnayji 欄目:移動(dòng)開發(fā)

Nagios是一款功能強(qiáng)大的網(wǎng)絡(luò)監(jiān)視工具,它可以有效的監(jiān)控windows、linux、unix主機(jī)狀態(tài)以及路由器交換機(jī)的網(wǎng)絡(luò)設(shè)置,打印機(jī)工作狀態(tài)等,并將狀態(tài)出現(xiàn)異常的服務(wù)及時(shí)以郵件、msn短信等形式第一時(shí)間通告管理員。由于它是一款遵循GPLv2的開源網(wǎng)絡(luò)監(jiān)控軟件,以其出色的性能低廉的使用成本,深受廣大用戶的好評(píng)。

nagios的主要監(jiān)控功能有:
1)監(jiān)控網(wǎng)絡(luò)服務(wù)(HTTP、POP3、SMTP、PING、MySQL等)
2)監(jiān)控主機(jī)資源(磁盤空間利用率、內(nèi)存利用率、CPU負(fù)載等)
3)簡(jiǎn)潔的插件設(shè)計(jì)接口,使得用戶可以輕松開發(fā)所需的檢測(cè)腳本(運(yùn)維則可直接找到相關(guān)腳本并使用)
4)并行服務(wù)模式
5)輕松描述網(wǎng)絡(luò)結(jié)構(gòu),并且能夠區(qū)辨“宕機(jī)”和“主機(jī)不可達(dá)”
6)通過(guò)郵件或用戶自定義的方式將主機(jī)或服務(wù)的工作狀態(tài)變化情況通知給管理員6)當(dāng)服務(wù)或主機(jī)問(wèn)題產(chǎn)生與解決時(shí)將告警發(fā)送給聯(lián)系人(通過(guò)EMail、短信、用戶定義方式) 可以通過(guò)飛信,等方式實(shí)現(xiàn)時(shí),既可傳遞給管理員,可高效的保證服務(wù)器的維護(hù)
7)自動(dòng)日志滾動(dòng)
8)支持以冗余方式進(jìn)行主機(jī)監(jiān)控
工作原理不在贅述,直接上圖:
下文將包括這些內(nèi)容:安裝配置最新版nagios V3.3.1、添加定義被監(jiān)控Windows主機(jī)和Linux主機(jī)、具體服務(wù)的監(jiān)控、出現(xiàn)異常情況報(bào)警手段定義以及配置過(guò)程中筆者所遇到并解決的一些問(wèn)題。
廢話不多說(shuō),直接開始配置內(nèi)容
1.到nagios官網(wǎng)下載到最新版的nagios-3.3.1.tar、nagios-plugins-1.4.15.tar、nrpe-2.12.tar以及windows的客戶端nsclient_201.zip
2.安裝nagios部署過(guò)程中需要依賴到得其他軟件和庫(kù)文件
yum groupinstall -y 'Development Libraries' 'Development Tools" 'Legacy Software Development' 'X Software Development'
 
yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel openssl-devel
# 安裝Nagios必須的基本組件的運(yùn)行依賴于httpd、mysql、gd以及編譯用到的gcc
Nagios 監(jiān)控端程序的安裝及配置
1.添加nagios用戶和組
groupadd nagcmd
#添加與nagios運(yùn)行相關(guān)服務(wù)的組
useradd -m nagios
#添加nagios用戶
usermod -a -G nagcmd nagios
#將nagios用戶追加附加組
usermod -a -G nagcmd apache
#將apache用戶追加nagcmd組使之工作時(shí)具有足夠的權(quán)限
2.編譯安裝nagios 3.3.1
 
tar xvf nagios-3.3.1.tar.gz
cd nagios
# ./configure --with-command-group=nagcmd --enable-event-broker
#默認(rèn)安裝路徑在/usr/local/nagios/
make all && make install && make install-init && make install-config && make install-commandmode && make install-webconf
#安裝主程序、添加初始化程序、生成配置文件、生成web配置文件
make install-webconf的作用:在/etc/httpd/conf.d/nagios.conf生成web相關(guān)配置文件,用于定義nagios使用的CGI選項(xiàng),web的身份認(rèn)證等
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagios
#為nagios的web頁(yè)面創(chuàng)建賬號(hào)密碼,對(duì)訪問(wèn)進(jìn)行身份認(rèn)證
service httpd restart
chkconfig httpd on
#啟動(dòng)httpd,并設(shè)置開機(jī)啟動(dòng)
PS:此處用戶名盡量使用默認(rèn)nagiosadmin,否則就需要修改cgi.cfg文件中所有關(guān)于認(rèn)證選項(xiàng)的用戶
3.編譯安裝nagios-plugins
nagios的所有監(jiān)控工作都是由nagios-plugins插件完成的,因此,在啟動(dòng)nagios之前還需要為其安裝nagios-plugins。
tar xvf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-mysql
#添加mysql依賴
make && make install
#編譯并安裝
Ps:作者在安裝nagios-cn-3.2.3.tar過(guò)程中,在此處編譯完成發(fā)現(xiàn)mysql關(guān)聯(lián)庫(kù)文件本跳過(guò)。經(jīng)分析原因是由于在編譯nagios時(shí)修改了nagios的默認(rèn)安裝路徑(非/usr/local/nagios)。 解決辦法:
 
cp /usr/lib/mysql/mysql_config /usr/lib/pkgconfig/
#將mysql的配置文件放在這個(gè)目錄下使之能夠在編譯過(guò)程中讀到相關(guān)配置選項(xiàng)
再進(jìn)行編譯安裝nagios-plugins
4.測(cè)試配置文件語(yǔ)法并嘗試啟動(dòng)nagios
chkconfig --add nagios
chkconfig nagios on
#添加nagios到開機(jī)啟動(dòng)項(xiàng)
vim /etc/profile
PATH=$PATH:/usr/local/nagios/bin
#向profile加入這一行,指明nagios命令的path
. /etc/profile
nagios -v /usr/local/nagios/etc/nagios.cfg
#檢查配置文件的語(yǔ)法
service nagios start
#如語(yǔ)法監(jiān)測(cè)為報(bào)錯(cuò)則嘗試開啟服務(wù)
注意:此時(shí)需要關(guān)閉SELINUX或針對(duì)nagios對(duì)SELIUNX進(jìn)行配置
方法一、直接關(guān)閉selinux
getenforce
#查看selinux的運(yùn)行狀態(tài)
setenforce 0
#如果是enforce(開啟)狀態(tài),則關(guān)閉
Ps:如果您想在今后的使用中完全關(guān)閉selinux,可以通過(guò)編輯/etc/sysconfig/selinux文件,將其中的selinux后面的值“force”修改為“disable”即可。

方法二、修改相關(guān)文件的type
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
chcon -R -t httpd_sys_content_t /usr/local/nagios/share
#進(jìn)行這些操作就可以在selinux開啟的狀態(tài)下正常訪問(wèn)nagios
5.打開瀏覽器檢測(cè)nagios的工作情況
http://serverIP/nagios
注意:如果htpasswd生成的密碼沒有使用的默認(rèn)的nagiosadmin則會(huì)導(dǎo)致無(wú)法正常顯示監(jiān)控信息,將cgi.cfg中use_authentication=1改成0雖能顯示主機(jī)信息但在手動(dòng)刷新服務(wù)狀態(tài)時(shí)報(bào)錯(cuò)
解決方法:將cgi.cfg中認(rèn)證用戶改成htpasswd生成的用戶;或按照cgi.cfg認(rèn)證功能用戶從新生成htpasswd。
配置監(jiān)控Windows主機(jī)
1.修改nagios主配置文件
vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
#將這一行注釋去掉
2.修改用來(lái)定義windows的配置文件
vim /usr/local/nagios/etc/objects/windows.cfg
define host{
use windows-server ; Inherit default values from a template
host_name winserver ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 192.168.0.72 ; windowsIP
}
#修改IP,此ip為windows主機(jī)IP
配置監(jiān)控Linux主機(jī)
1.編譯安裝nrpe
tar xvf nrpe-2.12.tar
cd nrpe-2.12
./configure --enable-ssl --with-ssl-lib=/lib/
make all && make install-plugin
2.在nagios中定義nrpe
vi /usr/local/nagios/etc/objects/commands.cfg
#check nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
#在末行添加這些內(nèi)容
3.創(chuàng)建定義linux的配置文件
vim /usr/local/nagios/etc/objects/mylinux.cfg
define host{
use linux-server
host_name mylinux
alias mylinux
address 192.168.1.2#客戶端IP即被監(jiān)控的IP
}

define service{
use generic-service
host_name mylinux
service_description check-load
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name mylinux
service_description check-users
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name mylinux
service_description otal_procs
check_command check_nrpe!check_total_procs
}
chown -R nagios:nagios mylinux.cfg
#修改配置文件的屬主屬組
4.修改配置文件
vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg
#在主配置文件指明linux主機(jī)的配置文件路徑
Windows 監(jiān)控端配置
安裝NSClient,進(jìn)入安裝目錄修改配置文件NSC.ini,將[module]下所有庫(kù)文件的注釋刪去。運(yùn)行nsclient。
Linux 監(jiān)控端配置
1.添加nagios用戶
useradd nagios
2.編譯安裝nagios-plugin
tar zxf nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
3.編譯安裝nrpe
yum install openssl-devel
#先安裝openssl解決依賴
tar -zxvf nrpe-2.12.tar.gz
cd nrpe-2.12.tar.gz
./configure --enable-ssl --with-ssl-lib=/usr/lib/
make all && make install-plugin && make install-daemon && make install-daemon-config
#編譯安裝
4.配置并啟用nrpe
vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=192.168.1.1
#監(jiān)控端的IP
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
#開啟進(jìn)程
監(jiān)控端重啟nagios服務(wù)
service nagiso restart
瀏覽器刷新頁(yè)面,即出現(xiàn)windows和linux被監(jiān)控主機(jī)
監(jiān)控服務(wù)的添加
下面就添加被監(jiān)控主機(jī)mysql服務(wù)為例進(jìn)行說(shuō)明
1.被監(jiān)控機(jī)(192.168.1.2)安裝mysql并創(chuàng)建監(jiān)控用戶
yum install mysql mysql-server
#簡(jiǎn)單起見yum安裝mysql
service mysqld start
#啟動(dòng)mysql
mysqladmin -uroot -p password '123456'
#給root用戶創(chuàng)建mysql密碼
mysql -uroot -p
#進(jìn)入mysql
mysql> create database nagios;
#創(chuàng)建數(shù)據(jù)庫(kù)
mysql> grant select on nagios.* to
nagios@'%' identified by 'redhat';
#給nagios用戶賦予查詢權(quán)限
mysql> flush privileges;
#刷新特權(quán)表
2.監(jiān)控機(jī)(192.168.1.1)修改相關(guān)配置文件
vim /usr/local/nagios/etc/objects/command.cfg
#check mysql
define command{
command_name check_mysql
command_line $USER1$/check_mysql -H 192.168.1.2 -u nagios -d nagios -p redhat
}
#在命令配置文件中添加這些字段
 
vim /usr/local/nagios/etc/objects/mylinux.cfg
define service{
use generic-service
host_name mylinux
service_description check_mysql
check_command check_mysql
}
#在linux主機(jī)配置文件中定義服務(wù)
重啟服務(wù)
service nagios restart
刷新瀏覽器頁(yè)面
異常報(bào)警
這里選用飛信作為異常報(bào)警手段,異常事件出發(fā)直接以短信形式通知運(yùn)維人員
1.飛信的安裝
unzip fetion.zip
cd ../fetion
mv fetion /usr/bin/
#將飛信腳本放在/usr/lib
chmod +x /usr/bin/fetion
#添加執(zhí)行權(quán)限
mv ./* /usr/lib
#將剩余所有庫(kù)文件移動(dòng)到/usr/lib
Ps:飛信程序已上傳至本文附件中
2.修改nagios相關(guān)配置文件
vim /usr/local/nagios/etc/templates.cfg
define contact{
name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-fetion
host_notification_commands notify-host-by-fetion
register 0
}
#修改成上面字段

vim /usr/local/nagios/etc/commands.cfg
commands.cfg
define command{
command_name notify-service-by-fetion
command_line /usr/bin/fetion --mobile 您的手機(jī)號(hào) --pwd 您的飛信密碼 --to 您的手機(jī)號(hào) --msg-tpye=0 --msg-utf8 $HOSTNAME
}
#添加這些字段
重啟服務(wù)使配置文件生效
 
9)可以通過(guò)web方式直觀的查看當(dāng)前網(wǎng)絡(luò)狀態(tài)、通知和問(wèn)題歷史、日志文件等等,此組件為可選
Nagios相關(guān)的配置文件:
nagios.cfg為其主配置文件其中可以定義nagios的一些基本工作狀態(tài)可監(jiān)控機(jī)的配置文件;
command.cfg其為nagios的監(jiān)控命令配置文件,在其中可定義nagios在監(jiān)控過(guò)程中針對(duì)某項(xiàng)服務(wù)所使用到得命令;
contact.cfg其為nagios報(bào)警途徑配置文件,它用來(lái)定義一旦監(jiān)控到某臺(tái)主機(jī)狀態(tài)異?;蚰撤?wù)狀態(tài)為離線通知運(yùn)維人員的方法;
timeperiods.cfg用于定義nagios向運(yùn)維人員發(fā)送報(bào)警的周期時(shí)間頻率等; resource.cfg用于定義nagios監(jiān)控服務(wù)所使用到腳本所在路徑;
templates.cfg中定義的是nagios監(jiān)控各項(xiàng)主機(jī)或服務(wù)屬性狀態(tài)所需的模板。
 
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI