1. 安裝epel擴展包,并升級ca證書ssl
yum install -y epel-release
yum --disablerepo=epel -y update ca-certificates
如果你想知道為什么,那么一定要參考這個文章,當然不想了解的話就算了
------------->認識epel<-------------
2. 安裝Apache、nagios和nagios插件、nrpe工具
yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
3. 設置nagios后臺的用戶名和密碼
htpasswd -c /etc/nagios/passwd nagiosadmin
回車后輸入密碼,賬戶就是nagiosadmin,可以自定義
4. 檢查配置文件
nagios -v /etc/nagios/nagios.cfg
5. 重啟httpd和nagios
(重啟目的,加載/etc/httpd/conf.d目錄中生成的nagios.conf)
service httpd restart
service nagios start
6. 查看本機監控
用windows瀏覽器輸入ip/nagios進入監控頁面
10.2.3.110/nagios
點擊左側的services即可看到當前所監控的本機服務項
7. 添加客戶機監控
7.1 安裝epel擴展包,并升級ca證書ssl
yum install -y epel-release
yum --disablerepo=epel -y update ca-certificates
7.2 安裝 nagios 以及 nagios插件和nrpe工具
yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
7.3 編輯客戶端配置文件
vim /etc/nagios/nrpe.cfg
找到
allowed_hosts=127.0.0.1,::1
改為
allowed_hosts=127.0.0.1,10.2.3.110
后面的ip為服務器ip
找到
dont_blame_nrpe=0
改為
dont_blame_nrpe=1
7.4 啟動客戶端的nrpe服務
service nrpe start
7.5. 編輯服務器端配置文件
vim /etc/nagios/conf.d/10.2.3.111.cfg
10.2.3.111.cfg可以用自己ip命名,添加如下內容
define host{
use linux-server
host_name 10.2.3.111
alias 0.12
address 10.2.3.111
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_ping
check_command check_ping!100.0,20%!200.0,50%
max_check_attempts 5
normal_check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_ssh
check_command check_ssh
max_check_attempts 5
normal_check_interval 1
notification_interval 60
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_http
check_command check_http
max_check_attempts 5
normal_check_interval 1
}
這里定義了一臺主機:10.2.3.111,和這臺主機要監控的三個服務ping,ssh,httpd
我們重啟nagios
service nagios restart
我們再去查看監控頁面,點擊左側的services,即可看到如下圖所示
但是我們想監控的不是這些服務,我們來更換下所監控的服務
vim /etc/nagios/conf.d/10.2.3.111.cfg
將以前的更換成如下內容
define host{
use linux-server
host_name 10.2.3.111
alias 3.111
address 10.2.3.111
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_load
check_command check_nrpe!check_load
max_check_attempts 5
check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_disk_sda1
check_command check_nrpe!check_sda1
max_check_attempts 5
check_interval 1
}
define service{
use generic-service
host_name 10.2.3.111
service_description check_disk_sda2
check_command check_nrpe!check_sda2
max_check_attempts 5
check_interval 1
}
然后我們要去修改commands.cfg,這是檢測腳本,因為我們執行的腳本是check_nrpe!***,但是我們默認腳本中沒這個命令,所以我們要添加命令check_nrpe
vim /etc/nagios/objects/commands.cfg
在底下添加如下內容
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
然后我們要去客戶機修改nrpe.cfg配置文件
vim ?/etc/nagios/nrpe.cfg
搜索check_load,這行就是在服務端上要執行的腳本了。把check_hda1更改一下:
/dev/hda1改為/dev/sda1。
再加一行
command[check_sda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
客戶機上重啟nrpe服務
service nrpe restart
服務器上重啟nagios服務
service nagios restart
去監控頁面刷新后即可看到我們所監控的服務
7.6 監控自定義服務
在服務器段增加要監控的服務
vim /etc/nagios/conf.d/10.2.3.111.cfg
define service{
use generic-service
host_name 10.2.3.111
service_description check_lk
check_command check_nrpe!check_lk
max_check_attempts 5
check_interval 1
contact_groups common
notifications_enabled 1
notification_period 24x7
notification_options w,u,c,r
}
然后我們在客戶端要編寫要執行的監控腳本,首先我們指定要執行腳本的位置
vim /etc/nagios/nrpe.cfg
添加下面一行命令:
command[check_lk]=/usr/lib/nagios/plugins/check_lk.sh
然后我們來編寫腳本
vim /usr/lib/nagios/plugins/check_lk.sh
#!/bin/bash
echo 100
然后重啟客戶端的nrpe服務,回到客戶端,點擊左側的services可以看到新加的服務
8. 添加郵件監控
第一步我們要安裝sendmail,我們就是用這個來發送郵件的
yum install -y sendmail
service sendmail start
chkconfig sendmail on
然后定義郵件的接受者,在服務器端操作
vim/etc/nagios/objects/contacts.cfg
增加如下內容,但是要把郵箱換成自己的郵箱
define contact{
contact_name lk
use generic-contact
alias liuke
email 1324598012@qq.com
}
define contact{
contact_name wr
use generic-contact
alias wangr
email 15639151996@163.com
}
define contactgroup{
contactgroup_name common
alias common
members lk,wr
}
我們在監控的服務或者主機中加上告警相關配置,其實告警有很多配置項,也可以加在不同的地方,我們可以去看下一個官方提供的模板文件,看看人家對各種參數的解釋與語法
less /etc/nagios/objects/templates.cfg
一定要去看一下,為了理解下面的內容
下面我們自己來加告警配置到一個服務中去,我選擇加到我之前配置的監控項lk
define service{
use generic-service
host_name 10.2.3.111
service_description check_lk
check_command check_nrpe!check_lk
max_check_attempts 5
check_interval 1
contact_groups common
notifications_enabled 1
notification_period 24x7
notification_options w,u,c,r
}
這時我這個服務就被設置了郵件告警,我們來手動的將監控配置設為錯誤,來看下是否會發送錯誤信息
在客戶機上修改監控腳本:
vim /usr/lib/nagios/plugins/check_lk.sh
在最后加上exit 2
我們重啟客戶端的nrpe
service nrpe restart
去網頁監控查看發現已經發現錯誤
同時收到郵件提醒
如果qq郵箱不能收到郵件,請看