1. 程式人生 > >centos 6下zabbix3設定郵件報警

centos 6下zabbix3設定郵件報警

分散式監控系統Zabbix3.2給異常新增郵件報警

分散式監控系統Zabbix3.4中已安裝好服務端和客戶端,此處客戶端是被監控的伺服器,可能有上百臺伺服器。監控的目的一個是可以檢視歷史狀態,可以對比零晨和工作區間資料的對比,以便後期進行優化指導。還有一個是報警,總不能等到伺服器出現異常了才去從頭查是什麼問題吧。所以這篇主要介紹報警中最基礎的一個 配置郵件預警。

  通常zabbix提供了 e-mail、sms、jabber、微信等預警方式,sms等前期需要資金投入那就先否決吧,誰叫老闆不給錢。

安裝郵件傳送工具mailx

這裡我選擇的是mailx,所以的關閉其他的郵件傳送工具

安裝sendmail或者postfix(安裝一種即可)

yum install sendmail                 #安裝

service sendmail start              #啟動

chkconfig sendmail on                #設定開機啟動

或者

yum install postfix

service postfix start

chkconfig postfix on

執行安裝mailx的命令:

yum install mailx

配置Zabbix服務端外部郵箱

開啟檔案vi /etc/mail.rc 如果mail.rc檔案沒有,就手動建立 內容如下:

set sendcharsets=iso-8859-1,utf-8
set from[email protected].com
set smtp=smtp.163.com:25
set smtp[email protected] #認證使用者,一般與from保持一致
set smtp-auth-password=xxx #認證密碼,如何開通授權可自行google

測試郵件是否可以發出

echo "zabbix test mail" |mail -s "zabbix" [email protected].com
#這時候,郵箱[email protected]會收到來自[email protected]
的測試郵件

編寫傳送郵件指令碼

進入下面路徑:/usr/local/zabbix/alertscripts 建立sendmail.sh檔案,內容如下
echo "$3" | mail -s "$2" "$1"


  上面的這個三個引數是接收從web頁面中傳遞過來的,$1:收件人郵箱地址;$2:郵件標題;$3:郵件內容
  為什麼我們會在這個路徑下面建立這個指令碼呢,這是在我們的zabbix_server.conf檔案中配置的
  AlertScriptsPath= /usr/lib/zabbix/alertscripts
  所以你不想將這個指令碼放在這個目錄下面,需要修改服務端的配置檔案中的AlertScriptsPath的值。

配置web頁面

  建立媒體型別

  點選建立媒體型別

  新增以下3個引數,分別對應sendmail.sh指令碼需要的3個引數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
  如果在3.0中不新增這三個引數會報錯,因為在3.0以後zabbix允許自定義引數了,所以不會預設傳遞引數,在2.0的時候會預設傳遞三個引數,所以在3.0如果不寫這三個引數會報錯。

給使用者新增報警媒介

在這以Admin使用者為例 管理—》使用者—》點選Admin

點選Admin

新增接收人

新增動作

填寫動作選項 

此處新增以一般嚴重 狀態的資訊都報警。

除了自己填寫一個名稱以外,其餘的都預設就好了。當然也可以修改成中文:參考如下

預設接收人:
故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生:{TRIGGER.NAME}故障!
預設資訊:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復資訊:打鉤

恢復主題:

恢復{TRIGGER.STATUS},伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
恢復資訊:
告警主機:{HOSTNAME1}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
#這裡注意了,很多教程都是複製故障通知訊息,這裡時間需要設定為EVENT.RECOVERY.DATE 才會傳送正確的故障恢復時間,否則會發送故障發生時的時間。
告警時間:{EVENT.DATE}{EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已啟用:打鉤

填寫條件選項

解釋:

預設的步驟是1-1,也即是從1開始到1結束。一旦故障發生,就是執行sendEmail.sh指令碼發生報警郵件給Admin使用者和zabbix administrator組。

假如故障持續了1個小時,它也只發送一次。如果改成1-0,0是表示不限制.無限傳送 間隔就是預設持續時間60秒。那麼一個小時,就會發送60封郵件。
到這我們的郵件報警配置就完成了,這是隻要我們設定的觸發器觸發,就會自動給我傳送報警郵件。

測試郵件報警

我將zabbix自帶的模板中的對可用記憶體的監控中的觸發器的臨界值改為大於0,進入模板列表

點選修改,改成可用記憶體小於2g就報警,這樣就容易觸發。

儲存以後 將收到一份報警郵件 內容如下:

在此就配好了郵件傳送。

補坑注意:

  在郵件傳送時,按上面的sendmail.sh中的寫可能會出現zabbix郵件內容為附件和zabbix圖中出現中文亂碼問題。

安裝zabbix之後,設定郵件指令碼報警的時候,傳送的報警內容變成了tcmime.1278.1278.1724.bin或ATT00001.bin。

安裝dos2unix:
yum -y install mailx dos2unix //安裝mailx工具和dos2unix轉換工具

以下是指令碼內容
開啟 /usr/local/zabbix/alertscripts/sendmail.sh
替換內容

#!/bin/bash
export LANG=zh_CN.UTF-8
file=/tmp/zabbix_mail.txt
echo "$3" > $file
dos2unix -k $file
/bin/mailx -s "$2" $1 < $file

相關推薦

centos 6zabbix3設定郵件報警

分散式監控系統Zabbix3.2給異常新增郵件報警 分散式監控系統Zabbix3.4中已安裝好服務端和客戶端,此處客戶端是被監控的伺服器,可能有上百臺伺服器。監控的目的一個是可以檢視歷史狀態,可以對比零晨和工作區間資料的對比,以便後期進行優化指導。還有一個是報警,總不能等

zabbix3 設定郵件報警

  Zabbix郵件報警配置 一、安裝sendmail或者postfix(安裝一種即可) yum install sendmail #安裝service sendmail start  #啟動chkconfig sendmail on #設定開機啟動或者yum install postf

CentOS 6 Oracle11gR2 設定開機自啟動

   [[email protected] oracle]# vi /etc/rc.d/init.d/oracle # this is an example #!/bin/bash # oracle: Start/Stop Oracle Database 11g

CentOS 6編譯安裝MySQL 5.6

是否 local profile pre utf8 readline 依賴 版本 centos 6 一:卸載舊版本 使用下面的命令檢查是否安裝有MySQL Server rpm -qa | grep mysql 有的話通過下面的命令來卸載掉 rpm -e mysql /

CentOS 6Nginx正向代理配置

nginxCentOS 6下Nginx正向代理配置By:老寧一、環境介紹1、Client作為需訪問訪問互聯網PC終端;網卡地址:192.168.1.2002、Nginx Server作為互聯網出口代理服務器;內網網卡:192.168.1.100外網網卡:10.10.16.186二、配置介紹1、Nginx Se

CentOS 6Nginx反向代理配置

nginxCentOS 6下Nginx反向代理配置By:老寧一、環境介紹Client01:內部服務器Nginx Server:互聯網出口代理服務器二、環境配置Nginx Server配置:[root@Nginx-Server / ]#vim /usr/local/nginx/nginx.confserver{

centos 6編譯安裝rrdtool-1.4.5.tar.gz 過不去

centos 6下編譯安裝rrdtool-1.4.5.tar.gz 過不去#tar zxvf rrdtool-1.4.5.tar.gz#cd rrdtool-1.4.5#./configure --prefix=/usr/local/rrdtool出現: configure: e

CentOS 6OpenCV的安裝與配置

sta 依賴 pack fat net 1.5 並且 num 執行c 自己按照網上的教程一步一步來的 http://www.jb51.net/os/RedHat/280309.html 虛擬機環境 CentOS 6.5 內核版本:4.1.14 64位 gcc,gcc 4.4

Centos環境Nginx設定開機自啟

編寫shell指令碼 這裡使用的是編寫shell指令碼的方式來處理 設定 vi /etc/init.d/nginx  (輸入下面的程式碼) #!/bin/bash # nginx Startup script for the Nginx HTTP Serve

kettle 在 centos 6 執行 ./kitchen.sh 報 未安裝 libwebkitgtk

執行./kitchen.sh  報錯資訊: [[email protected] data-integration]# ./kitchen.sh ##########################################################

如何在一臺虛擬機器上遠端訪問另一臺虛擬機器並設定郵件報警功能

linux當中的遠端控制在自動化運維中起到了很大的作用,你可以完成在一臺機器上對另一臺機器的操作以及監控,今天主要是用指令碼來實現對遠端虛擬機器CPU等資訊的監控。開始寫指令碼之前我們需要解決兩個問題 問題一 如何遠端連線到伺服器 這裡我們採用的是ssh進行

CentOS 6安裝配置JDK+Tomcat環境

1.安裝OpenJDK 注意,安裝OpenJDK簡單迅速,只需一條命令,且無需配置環境變數 ①檢視是否已經安裝了JDK java -version rpm -qa |grep java rpm -qa |grep jdk ②若有如何解除安裝 解除安裝JDK相關檔案輸入:

centos 6 ,zephir的安裝和使用

zephir是用c寫的php擴充套件,zephir或許會開啟一個新的PHP編寫方式。 在這之前,如果我們要編寫php的擴充套件,一般都是c++/clang/vc等等。 但是現在,我們有了新的選擇: zephir. zephir本身並不是為了替代c++/clang/vc等。 它本質是介於c和

zabbix3.2郵件報警

1、sendEmail安裝 cd /usr/local/src/ wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-

zabbix3.2郵件報警配置

1.編輯zabbix_server.conf檔案 編輯zabbix_server.conf檔案,修改AlertScriptsPath引數,該引數用於指定外部指令碼的絕對路徑。 vim /

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

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

zabbix 伺服器設定郵件報警

實驗條件: Zabbix監控伺服器、客戶端都已經部署完成,被監控主機已新增完成,Zabbix監控執行正常。 實現目的: Zabbix監控伺服器設定郵件報警,當被監控主機宕機或達到觸發器預設值進,會自動傳送報警郵件到指定的郵箱。 概念補充: 什麼是MTA?什麼是M

CentOS 6快速搭建ftp伺服器

CentOS 6下快速搭建ftp伺服器 1、用root 進入系統 2、使用命令 rpm  -qa|grep vsftpd 檢視系統是否安裝了ftp,若安裝了vsftp,使用這個命令會在螢幕上顯示vsftpd的版本  3、使用命令rpm -e vsftpd 即可解除安

CentOS 6linux重啟後自動執行命令

關於重啟後自動執行命令或者指令碼,在網上看了好多方法,試了都不管用。例如在/etc/rc.d/rc.local 檔案中加入你要執行的語句 照例做 重啟發現並沒有啟動。接著使用chkconfig命令   編寫.sh檔案 將指令寫入,並將sh檔案chkconfig --add

Linux(CentOS設定NAT,訪問內網伺服器

首先,要開啟Linux核心的轉發資料包的功能,也就是將/proc/sys/net/ipv4/ip_forward裡的值設定為1。 可以這樣做:# echo 1 > /proc/sys/net/ipv4/ip_forward 重啟網路服務(service network