Nagios 安裝及微信短信提醒

##引言 Nagios 做爲業界很是強大的一款開源監視系統。php

  • 監控網絡服務(SMTP、POP三、HTTP、NNTP、PING 等);
  • 監控主機資源(處理器負荷、磁盤利用率等);
  • 簡單地插件設計使得用戶能夠方便地擴展本身服務的檢測方法;這一點是 Nagios‘er 們很是喜歡的。
  • 當服務或主機問題產生與解決時將告警發送給聯繫人(經過 EMail、短信、用戶定義方式);須要配套的郵件服務器和短信網關對接。

另外還支持 Cacti 、 Ganglia、OpenTSDB 告警接入,強大的 Nagios 還有什麼作不到的?做爲一個告警平臺,Nagios 已是很強大了,然而在通知方面,特別是微信、短信、電話提醒通知方面仍是短板,下面以目前最新版Nagios4.0.8+OneAlert 實現監控和微信提醒。linux

##安裝說明 若是你歷來沒有接觸過 Nagios,請按照如下步驟安裝 Nagios,若是你對 Nagios 很是熟悉或者機器中有 Nagios,請跳過安裝步驟,直接進入 OneAlert 的報警設置。 也能夠參考 Nagios 官網ios

Nagios 服務器: 10.128.6.38 CentOS 6.5 64bit
被監控機器:    10.128.14.102 CentOS 6.7 64bit

安裝 Nagios 和 Nagios 插件(安裝過程當中標紅的操做爲安裝 Apache,方便咱們後面的調試,能夠選擇性安裝,建議安裝 Apache,由於有頁面的交互方面快捷。)apache

##安裝 Nagios 服務器 在服務器10.128.6.38上安裝 Nagios Server 相關軟件。api

1.依賴包安裝 請使用 root 用戶或者 sudo 權限安裝相關依賴包,建議先執行更新:服務器

yum update yum install httpd php yum install gcc glibc glibc-common yum install gd gd-devel微信

2.建立用戶組網絡

建立 Nagios 用戶,並設置初始密碼app

useradd -m nagios(/usr/sbin/useradd -m nagios) passwd nagios(提示輸入兩次密碼)jsp

建立用戶組 nagcmd,容許外部命令經過 Web 接口提交動做,並將 Nagios 和 Apache 用戶加入該用戶組中.

/usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd apache

3.下載 Nagios 和插件 在~目錄建立子目錄 downloads

mkdir ~/downloads cd ~/downloads

下載 Nagios 和插件(visit https://www.nagios.org/download/ ),以 Nagios 4.0.8 和插件 Nagios Plugins 2.0.3爲例:

下載 Nagios 4.0.8

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz

下載 Nagios Plugins 2.0.3插件

wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

4.編譯安裝 Nagios

cd ~/downloads tar xzf nagios-4.0.8.tar.gz cd nagios-4.0.8 ./configure --with-command-group=nagcmd

make all make install make install-init make install-config make install-commandmode

5.編譯安裝插件

cd ~/downloads tar xzf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --with-nagios-user=nagios --with-nagios- group=nagios make make install

6.啓動 Nagios

將 Nagios設置爲開機啓動

chkconfig --add nagios chkconfig nagios on

檢查配置文件是否正確

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

若是沒有錯誤,啓動 Nagios

service nagios start

7.修改 linux 的 SElinux 配置(兩種方法)

  • 設置linux爲混雜模式,該方法重啓後不生效

setenforce 0

  • 或直接修改配置文件

vi /etc/selinux/config

設置爲 SELINUX=permissive,修改完畢後重啓服務器

8.容許 cgi 運行

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

至此 Nagios 和插件都已經安裝完成了。 在這裏咱們要多講一句,Nagios 安裝的只是服務端,真正監控服務器信息的是 Nagios Plugins 2.0.3插件實現的監控。咱們目前僅在本機上安裝了插件,所以僅僅監控的是10.128.6.38這臺機器,想要監控其餘機器的環境,繼續向下看。讓咱們看一下 Nagios的監控界面 Nagios大圖 可是咱們知道,若是服務器出現大問題,咱們須要第一時間收到報警的通知,此時 OneAlert 就要登場了。讓咱們看一下如何使用 OneAlert 對 Nagios 進行報警設置。 或參考 OneAlert 集成 Nagios 安裝文檔

##經過OneAlert微信報警 OneAlert 提供 Agent Shell 腳本命令插件, Nagios 經過新增用戶通知contacts的方式,調用 Shell命令將告警通知發送至 OneAlert雲告警平臺,OneAlert 根據通知策略,分派和通知到用戶,提供微信、短信、電話和郵件方式。

1.註冊並建立應用 猛戳 這裏註冊,OneAlert支持不少應用,咱們如今建立 Nagios 應用,並獲取appkey,3adac4c9-3a82-76af-7b33-0a0bdf16334d

見下圖 建立應用

  • 若是有不少 Nagios,能夠新建多個應用,分別接入。
  • 建議告警關閉時間大於 Nagios 告警提醒間隔,如90分鐘,即超過90分鐘,沒有新的告警,就自動關閉告警。

2.安裝 OneAlert Agent 在 Nagios 服務器10.128.6.38上下載最新版本 OneAlert Agent。參考官網

下文以 Nagios 默認安裝路徑 /usr/local/nagios/ 爲例,若是你的 Nagios 服務器不是安裝在該目錄,請自行替換。

tar xvf alert-agent-4.0.1-RC1.tar.gz cp -R alert-agent /usr/local/nagios/libexec/ cp alert-agent/plugin/nagios-plugin/nagios /usr/local/nagios/libexec/ chmod +x /usr/local/nagios/libexec/nagios cp alert-agent/plugin/nagios-plugin/110monitor.cfg /usr/local/nagios/etc/objects/

3.修改配置

修改默認用戶 110monitor 的聯繫方式,在文件 /usr/local/nagios/etc/objects/110monitor.cfg 中,設置pager爲上面應用的 appkey: 例如 3adac4c9-3a82-76af-7b33-0a0bdf16334d

vi /usr/local/nagios/etc/objects/110monitor.cfg

define contact{        
contact_name                    110monitor                 ; The name of this contact template        
alias                           110monitor                 ;        
service_notification_period     24x7                    ;service notifications can be sent anytime        
host_notification_period        24x7                    ; host notifications can be sent anytime          
service_notification_options    w,u,c,r,f,s             ; send notifications for all service states, flapping events, and scheduled downtime events        
host_notification_options       d,u,r,f,s               ; send notifications for all host states, flapping events, and scheduled downtime events        
service_notification_commands   notify-service-by-110monitor ; send service notifications via email          
host_notification_commands      notify-host-by-110monitor    ; send host notifications via email        
pager                           3adac4c9-3a82-76af-7b33-0a0bdf16334d ; your nagios app key       
}

修改/usr/local/nagios/etc/objects/contacts.cfg,新增110monitor到默認聯繫組.

vi /usr/local/nagios/etc/objects/contacts.cfg

define contactgroup{        
contactgroup_name       admins        
alias                   Nagios Administrators      
members                 nagiosadmin,110monitor        
}

修改 /usr/local/nagios/etc/nagios.cfg,將 110monitor.cfg 新增到 nagios.cfg 中

vi /usr/local/nagios/etc/nagios.cfg cfg_file=/usr/local/nagios/etc/objects/110monitor.cfg 可選爲了讓告警信息顯示更友好,建議修改 nagios.cfg 由原先 us 更改成 iso8601 date_format=iso8601

4.重啓 Nagios

重啓前檢查下配置是否是正確 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

若是沒有報錯,就能夠重啓 Nagios 了

service nagios restart

5.完成

基本上按照上面配置就 OK 了,後面須要驗證下是否正常發送。最簡單的方式是將禁 Ping Nagios 服務器。

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 禁ping echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 恢復ping

禁 Ping 後,Nagios 服務器會發生告警,默認嘗試3次後發送告警通知。咱們經過跟蹤 OneAlert Agent 日誌就能夠看出來:

tail -f /usr/local/nagios/libexec/alert-agent/log/agent.log

10-05-2015 15:48:53,056 CST INFO  [main] [com.upyoo.agent.NagiosClient@45] start to call alert 
...
10-05-2015 15:48:53,775 CST INFO  [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3516","totalCount":0,"code":"200"}`

恭喜你,已經完成 Nagios 的安裝集成,登陸到 OneAlert 控制檯,用微信進行掃碼便可用微信實現報警。 微信掃一掃

Nagios 安裝及微信短信提醒

好了,後續能夠接着安裝 Nagios 被監控服務器了。

##安裝 Nagios 被監控服務器 以前是安裝了 Nagios Server,接下來咱們能夠在其餘應用服務器,被監控節點10.128.14.102上安裝 Nagios Agent 了。

一、提早準備

使用 root 權限

yum install gcc glibc glibc-common yum install gd gd-devel yum install openssl openssl-devel yum install xinetd

二、新增 Nagios 用戶

/usr/sbin/useradd -m nagios passwd nagios

/usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios

三、安裝插件

wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

./configure --with-nagios-group=nagcmd make make install chown -R nagios:nagcmd /usr/local/nagios/

安裝 nrpe 插件

wget http://downloads.sourceforge.net/project/nHYPERLINK "http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnagios%2Ffiles%2Fnrpe-2.x%2Fnrpe-2.15%2F&ts=1440644699&use_mirror=jaist"agios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

./configure —with-nagios-group=nagcmd

make all make install-plugin make install-daemon make install-daemon-config make install-xinetd

四、修改配置 修改 only_from= 127.0.0.1 10.128.6.38(10.128.6.38爲 nagios 服務端ip地址)

vi /etc/xinetd.d/nrpe

在 Nagios 服務器上增長對被監控機器的監控,先看看被監控機器上的 nrpe 配置 more /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

以上命令[check_hda1]就是檢測被監控機器 10.128.14.102 的磁盤空間,20% 空閒時警告,10% 空閒時嚴重告警。那麼 Nagios 服務器 10.128.6.38 就要經過 nrpe 調用監控對應命令。

如今進入 Nagios 服務器 10.128.6.38,編寫對應的監測命令,加入一個 linux-server,和對應監控命令。 vi /usr/local/nagios/etc/objects/localhost.cfg 加入機器:

配置以下圖:

Nagios 安裝及微信短信提醒

Nagios 安裝及微信短信提醒

紅色爲添加項(對圖片的文字描述,一個意思。)

define host{
    use                     linux-server            
                                        
    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
    }

define host{
    use                     linux-server            
                                                         
    host_name              ligehost
    alias                   ligehost
    address                 10.128.14.102
    }


define hostgroup{
    hostgroup_name  linux-servers 
    alias            Linux Server
    members         localhost,ligehost          
}


define service{
    use                             local-service        
    host_name                       localhost,ligehost
    service_description                PING
    check_command                  check_ping!100.0,20%!500.0,60%
    }

define service{
    use                             local-service        
    host_name                       localhost,ligehost
    service_description                Root Partition
    check_command                  check_local_disk!20%!10%!/
    }

修改完畢後,從新加載配置

service nagios reload

可看到監控如圖所示:

好了 ,如今所有配置完畢,Nagios 監控正常,若是服務故障,會經過 OneAlert 平臺統一告警。

OneAlert 是北京藍海訊通科技有限公司旗下產品,中國首個 SaaS 模式的雲告警平臺,集成國內外主流監控/支撐系統,實現一個平臺上集中處理全部IT事件,提高IT可靠性。想了解更多信息,請訪問 OneAlert 官網

相關文章
相關標籤/搜索