1. 程式人生 > >NAGIOS安裝配置+MUTT+MSMTP郵件報警設定

NAGIOS安裝配置+MUTT+MSMTP郵件報警設定

由於伺服器更新,所以公司重新部署了架構,需要一個監控,因此提前在虛擬機器裡過了一遍,整理出安裝NAGIOS監控的過程,僅供大家參考。
大環境:
兩臺linux主機(已經關閉了selinux和iptables功能)
192.168.1.184和192.168.1.190
192.168.1.184這臺機器上安裝了nagios,監控190這臺機器上的服務和埠
首先,準備好nagios安裝包:
下面是我的百度雲,我用的是nagios4.0.8版本,系統是redhat6.7版本(其實是centos系統)(請注意:本教程不適用於Linux7系統)。
百度雲盤連線:
(差別不會太大,也可以到官網下載最新的。)
一、安裝nagios
首先是安裝nagios所需要的環境:

yum install php-* gcc httpd -y

解壓安unzip nagiosip是專門解壓zip格式檔案的命令,非常方便。
如果沒有unzip,yum一下就可以
yum install unzip -y
建立一個叫做Nagios的
useradd nagios
cd Nagios/nagios-4.0.8 ##進入路徑
./configure –prefix=/usr/local/nagios ##指定安裝路徑
make all ##以下幾個make都是編譯用的,可以直接複製,手打有時會報錯
make install
make install-init
make install-commandmode
make install-config
make install-webconf
如果這裡有報錯,有可能是沒有安裝perl,yum安裝一下就好了
yum install perl -y
別的報錯,根據報錯的提示去安裝相應的缺失的包就可以了。
沒有報錯然後:
為nagios的網頁登入創造認證密碼:
htpasswd -cm /usr/local/nagios/etc/htpasswd.users nagios
password:****

##會提示輸入兩次以確認
htpappwd命令的引數:
-c 建立passwdfile.如果passwdfile 已經存在,那麼它會重新寫入並刪去原有內容.
-n 不更新passwordfile,直接顯示密碼
-m 使用MD5加密(預設)
-d 使用CRYPT加密(預設)
-p 使用普通文字格式的密碼
-s 使用SHA加密
-b 命令列中一併輸入使用者名稱和密碼而不是根據提示輸入密碼,可以看見明文,不需要互動
-D 刪除指定的使用者
啟動服務
/etc/init.d/nagios restart ##重啟nagios ,也可以用service nagios restart
/etc/init.d/httpd restart ##重啟apache,service httpd restart
到這裡,其實已經可以通過瀏覽器輸入192.168.1.184/nagios來進入nagios管理介面了,說明安裝成功。

編輯httpd主配置檔案
vim /etc/httpd/conf/httpd.conf
把user和group後面的apache改成nagios
User apache
Group apache
改為
User nagios
Group nagios
將nagios裡的cgi.cfg裡的nagiosadmin替換為nagios:
vim /usr/local/nagios/etc/cgi.cfg
輸入shift+:號:
%s/nagiosadmin/nagios/g
因為更改了apache和nagios的配置檔案,需要重啟兩個服務:
/etc/init.d/httpd restart ##或者service httpd restart
/etc/init.d/nagios restart ##或者service nagios restart
解壓外掛包:
tar fx nagios-plugins-2.0.3.tar ##解壓(安裝包在我這個打包的檔案中的nagios_software目錄下)
cd nagios-plugins-2.0.3
./configure –prefix=/usr/local/nagios/ ##指定安裝路徑
make && make install ##編譯安裝,兩個&符號表示上一個執行成功的話,接著執行下一個

到這裡安裝就基本完畢了,開始進行配置檔案的操作。

二、配置檔案
大概介紹一下nagios的目錄結構:
/usr/local/nagios/etc
cgi.cfg CGI 配置檔案
htpasswd.users 網頁驗證的使用者名稱密碼存放檔案
nagios.cfg 主配置檔案
resource.cfg 變數 USER1=/usr/local/nagios/libexec 外掛的存放路徑
/usr/local/nagios/etc/objects:
commands.cfg 命令。
contacts.cfg 定義聯絡人資訊(郵箱地址)
localhost.cfg 定義監控項
templates.cfg 模板
timeperiods.cfg 時間段
nagios實現監控的過程:
編輯localhost.cfg檔案配置監控專案,用什麼命令來監控(nagios沒辦法直接呼叫外掛,我們在commands.cfg中設定好nagios命令與外掛的對應關係,然後nagios呼叫命令來監控)–>選擇24x7這樣一個時間段來監控 –>異常發生後,給contacts.cfg中定義的聯絡人傳送郵件報警。

三、遠端監控
notification_options w,c,u,r中的通知選項:
d down宕機
u unknown未知情況
r recovery主機狀態或服務狀態恢復
w warning警告
c critical嚴重警告
編輯localhost.cfg檔案
在這裡我先將原先的配置檔案備份
cd /usr/local/nagios/etc/objects/
cp -p localhost.cfg localhost.cfg.bak
編輯:
vim /usr/local/nagios/etc/objects/localhost.cfg(之前的一些版本是services.cfg)
將其中的內容全部刪除之後編輯(按鍵dd可以刪除):
define host{ ##定義監控主機
host_name RESS_1.190 ##定義主機名
alias one ##別名,隨便取
address 192.168.1.190 ##ip地址
check_command check-host-alive ##對應的命令(check-host-alive是自帶的已經定義好了的命令,在/usr/local/nagios/etc/objects/commands.cfg中,表示檢查主機存活)
check_period 24x7 ##監控時間
check_interval 3 ##間隔次數
max_check_attempts 3 ##最大嘗試次數
contact_groups admins ##在哪個連線組中(admins在../objects/contacts.cfg檔案中有定義,你也可以自頂一個群組,例如:nagios)
notification_period 24x7 ##通知時間
notification_options d,u,r ##這裡不能加,c嚴重警告否則會報錯
notification_interval 60 ##間隔多久通知
}
define service{ ##定義服務
host_name RESS_1.190 ##定義服務主機
service_description Apache ##服務描述
check_command check_http ##對應的命令(commands.cfg中)
check_period 24x7 ##監控時間型別
check_interval 3 ##監控間隔,單位:次
retry_check_interval 1 ##重試間隔
max_check_attempts 3 ##最大嘗試次數
contact_groups admins ##在哪個組
notification_period 24x7 ##通知時間
notification_options w,c,u,r ##通知選項
notification_interval 60 ##間隔時間(秒)
}
之後重啟apache服務和nagios服務:
/etc/init.d/httpd restart ##或者service httpd restart
/etc/init.d/nagios restart ##或者service nagios restart
再進入192.168.1.184/nagios中點選左邊的hosts和services檢視定義的監控項是否已經成功,顯示綠色的up,說明成功了。
這裡寫圖片描述
如果顯示的是灰色的pending,說明是在等待同步中,稍等一會重新整理一下瀏覽器頁面就顯示綠色的up了。
這裡寫圖片描述
四、郵件報警
在這裡我用的阿里雲郵箱,然後使用的工具是mutt+msmtp,安裝包也在上面的百度雲裡。
大概要實現的是:發郵件過程:客戶端–>aliyun.com郵件伺服器–>郵箱
其中msmtp 用來發送郵件, mutt用來寫郵件
各個廠商的郵件伺服器的都可以在網上查到,例如163的是smtp.163.com,阿里雲的是smtp.aliyun.com等,最好從網上查一下準確的域名。

安裝mutt/msmtp
yum install mutt -y ##安裝
tar fx msmtp-1.4.30.tar.bz2 ##解壓
cd msmtp-1.4.30 ##進入解壓後的目錄
./configure –prefix=/usr/local/msmtp ##這裡我指定了一下安裝目錄,也可以直接./configure執行
make && make install ##編譯安裝,兩個&符號表示前一個命令執行成功且正確之後執行後面一條命令
安裝成功之後,會在/etc下生成一個檔案Muttrc
vim /etc/Muttrc
在最後插入這幾句: ##引號也是有的
set from=”**@aliyun.com” ##輸入你的郵箱
set realname=”nagios” ##在給你發郵件的時候會出現的名字,可以隨便取
set sendmail=”/usr/local/msmtp/bin/msmtp” ##這裡因為我指定了msmtp的安裝路徑,所以對應的是這個路徑,如果是./configure安裝的,應該是在/usr/local/bin/msmtp,請自行檢查一下,不要出錯

在/usr/local/msmtp/etc 下建立一個目錄etc,然後進入這個目錄建立檔案msmtprc並且編輯這個檔案
mkdir etc
vim /usr/local/msmtp/etc/msmtprc

account         default                                     
host            smtp.aliyun.com                     ##aliyun的郵件伺服器域名
port            25                                  ##埠號,smtp的是25
from            *******@aliyun.com                  ##填寫從哪個郵箱傳送
tls             off                                 ##安全傳輸協議
auth            login                               ##許可權
user            ********@aliyun.com                 ##郵箱
password        ********                            ##你輸入的這個郵箱的密碼
logfile         /tmp/msmtp.log                      ##日誌檔案存放路徑,可以隨意指定

可以用這條命令檢查一下郵件能不能傳送:

echo "This is a test mail" | mutt -s 'Test' ******@aliyun.com

之後修改nagios的部分配置檔案,首先是contacts.cfg
vim /usr/local/nagios/etc/object/contacts.cfg
在34行(有可能是附近的行數)的email後面的[email protected]改成*@aliyun.com(與上面的檔案中的相同)
儲存退出
再更改commands.cfg命令
vim /usr/local/nagios/etc/object/commands.cfg
在26行(可能不準確)附近有兩個定義的命令,叫做
**# ‘notify-host-by-email’ command definition
**# ‘notify-service-by-email’ command definition
這兩個模組中的/bin/mail改為/usr/bin/mutt這裡寫程式碼片
這裡要呼叫mutt這個命令,所以要寫絕對路徑,如果不知道mutt這個命令的位置,可以用
which mutt
檢視mutt的絕對路徑,直接複製過去就可以。改成之後是這樣的:

define command{
        command_name    notify-host-by-email
        command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }

重啟nagios服務:
service nagios restart

之後可以停用一下190機器上的apache服務進行測試:
service httpd stop
郵件有可能不是第一時間傳送過去的,是根據localhost.cfg檔案中定義的時間間隔來發送的,因為是測試環境,可以把哪些間隔時間、重試時間都調成1,這樣的話會比較快一些收到,不過更改配置檔案,一定要記得重啟服務。實際的生產環境建議根據伺服器的資源分配情況來進行調整。
這裡寫圖片描述
好了,以上就是本次nagios的介紹。本部落格僅供參考。
其中還有自定義命令和nrpe沒有介紹到,以後有機會在寫了。也可以參考別人的優秀部落格。

相關推薦

NAGIOS安裝配置+MUTT+MSMTP郵件報警設定

由於伺服器更新,所以公司重新部署了架構,需要一個監控,因此提前在虛擬機器裡過了一遍,整理出安裝NAGIOS監控的過程,僅供大家參考。 大環境: 兩臺linux主機(已經關閉了selinux和iptables功能) 192.168.1.184和192.168

nagios中sendmail郵件報警設定

command_line /usr/bin/printf "%b" "***** Nagios 2.9 *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress:

Zabbix郵件報警設定安裝郵件傳送工具mailx

下載mailx: tar jxvf mailx-12.4.tar.bz2 #解壓 cd mailx-12.4 #進入目錄 [[email protected] ~]# wget http://www.linuxfromscratch.org/patc

終端下的郵件伺服器配置 mutt + msmtp + fetchmail 與 附件的獲取

 今天即興之下弄了六個多小時的linux,主要配置了終端下的郵件伺服器配置。     這裡用到了mutt+msmtp+fetchmail,另外我用c++寫了一個直接獲取附件的小程式。雖然看起來不美,但怎麼說也是自己的勞動成果 : )      為了節省流量和加快速度,我直接用

nagios安裝配置

temp all contacts water daemon 語法 command install comm 環境rhel6.5server1,server2,server3 [root@server1 nagios]# yum install gd gd-devel op

centos 6.4+zabbix 2.4.5 郵件報警設定郵件title和message亂碼問題解決

外部郵箱傳送報警1、安裝郵件傳送工具mailxyum install mailx #安裝whereis mailx #檢視安裝路徑mailx -V #檢視版本資訊2、  安裝sendmail(郵件傳送代理MTA)(標註:如果直接使用外部郵箱傳送郵件可以不需要配置sendmai

Nagios安裝配置(ubuntu)&調研

[[email protected] etc]# cat services.cfg  define service{         use                     local-service         host_name               node3        

zabbix 3.0.9郵件報警設定

Zabbix 3.0.9 郵件報警配置 Zabbix 郵件報警配置看似簡單,其實不然;折騰1天終於實現了報警機制,今天總結在此以備查閱。 一、   環境說明及配置簡述 環境說明:zabbix服務端、客戶端都已部署完成並zabbix監控正常執行。           z

Zabbix郵件報警設定方法

說明:Zabbix監控服務端、客戶端都已經部署完成,被監控主機已經新增,Zabiix監控執行正常。實現目的:在Zabbix服務端設定郵件報警,當被監控主機宕機或者達到觸發器預設值時,會自動傳送報警郵件到指定郵箱。具體操作:以下操作在Zabbix監控服務端進行備註:Zabbix

總結nagios郵件報警(mutt+msmtp)不能發郵件的原因

1、所有配置都沒問題,對郵件報警原理,流程很清晰,手動發郵件能發出去,通過nagios報警發郵件就發不出去。          原因:Mutt會在家目錄下生成一個sent的檔案,你傳送的記錄都會寫到此檔案中,而我用的是root使用者登入,nagios呼叫mutt後臺執行,但

Zabbix利用msmtp+mutt發送郵件報警

echo pass 但是 郵件服務 mod 利用 pat get log Zabbix利用msmtp+mutt發送郵件報警Zabbix支持多種報警的方式,其中成本最低、最方便的就是郵件報警的方式了。但是因為它不支持郵件的用戶認證,這種方式現在也非常少見,同時安全性也差,如果

簡單操作Zabbix安裝配置郵件報警(centos 7.4)

zabbix 監控 學習 Zabbix官網下載地址:https://www.zabbix.com/download 實驗拓撲:zabbix server端: 192.168.80.101 公網環境 centos 7.4 LAMP架構zabbix angent端: 1

nagios 郵件報警設定

搭建nagios的目的就是為了他的報警系統,nagios據我所瞭解可以有三種報警:  一、聲音報警  二、電子郵件報警  三、手機短訊報警  下面是我的郵件報警的配置過程:  1、開啟系統自帶的sendmail郵件系統  service sendmail start  如果

elasticsearch5之Elastalert 安裝使用 配置郵件報警和微信報警

簡介 Elastalert是用python2寫的一個報警框架(目前支援python2.6和2.7,不支援3.x),github地址為 https://github.com/Yelp/elastalert。他提供不同場景的規則配置,若覺得規則、告警不滿足需求時,可以用python編寫外掛A

mutt設定郵件報警在linux上如何做?

在Linux裡,很多人都會使用到郵件報警,而且這方面的軟體也眾多,常見的像SendMail, sendEmail, Postfix等等,它們的優缺點我就不說了,使用上也各有所愛。今天我要給大家介紹的mutt,也許大家也不陌生,網上太多關於mutt和sendmail或者跟msmtp合作使用的教程。其實

CentOs7安裝配置zabbix3.4(四)----配置報警郵件

通過sendEmail實現zabbix3.4郵件報警 1.下載sendEmail安裝包 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz 2、解壓安裝 tar x

centos 7 安裝mutt+msmtp傳送郵件

前言 之前搭建過Ubuntu 14.04安裝mutt+msmtp傳送郵件。現在伺服器的版本更換為centos7在這裡記錄一下。 安裝軟體 sudo yum install gcc wget

zabbix使用msmtp&&mutt搭建郵件告警服務

mutt zabbix msmtp zabbix使用msmtp&&mutt搭建郵件告警服務zabbix可以通過腳本和郵件服務器搭建郵件告警服務,以下就是告警服務實現的流程圖關註點一:腳本需要放在zabbix安裝目錄下../share/zabbix/alertscripts/目錄腳本

CentOS7.3下Zabbix3.5之郵件報警配置

執行權 就會 郵箱地址 郵件標題 編寫 區分 min val 步驟 一、郵件客戶端以及腳本相關配置 1、安裝sendmail,一般操作系統默認安裝了安裝 yum install sendmail 啟動 service sendmail start 設置

服務器幾種郵件報警設置之WEB站服務器監控郵件報警配置[三]

image ssa tex warn erro 客戶體驗 roc vpd a10 WEB站服務器監控郵件報警配置 由於部分WEB站舊服務器仍舊使用2003系統,經常出現服務器內分頁大滿,服務器內存溢出等情況,導致整臺服務器WEB站無法打開的情況,服務器太多尋查難度較大,有時