##引言 Nagios 做爲業界很是強大的一款開源監視系統。php
另外還支持 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 配置(兩種方法)
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的監控界面 可是咱們知道,若是服務器出現大問題,咱們須要第一時間收到報警的通知,此時 OneAlert 就要登場了。讓咱們看一下如何使用 OneAlert 對 Nagios 進行報警設置。 或參考 OneAlert 集成 Nagios 安裝文檔
##經過OneAlert微信報警 OneAlert 提供 Agent Shell 腳本命令插件, Nagios 經過新增用戶通知contacts的方式,調用 Shell命令將告警通知發送至 OneAlert雲告警平臺,OneAlert 根據通知策略,分派和通知到用戶,提供微信、短信、電話和郵件方式。
1.註冊並建立應用 猛戳 這裏註冊,OneAlert支持不少應用,咱們如今建立 Nagios 應用,並獲取appkey,3adac4c9-3a82-76af-7b33-0a0bdf16334d
見下圖
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 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 加入機器:
配置以下圖:
紅色爲添加項(對圖片的文字描述,一個意思。)
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 官網 。