天天看點

普通使用者使用zabbix配置事件已經發送郵件

這次以普通使用者的身份登入系統,還是先從msmtp發郵件開始,首先先建立一個日志檔案。這個日志檔案的路徑選擇是/var/log/msmtp.log。

但是普通使用者使用# touch /var/log/msmtp.log的話,應該會提示權限不夠,于是使用sudo提權限,但是sudo檔案裡沒有這個使用者名的話,那麼會提示“使用者不在sudoers檔案中,此事将會報告”。翻譯成人話就是“你沒被授權。”

如果你不是root,那麼就找管理者去要一個權限。如果手裡有root賬号,那麼需要# su root,然後輸入root的密碼,#cd /etc,在etc目錄裡有好多檔案,#ll sudoers,發現這個檔案是440的權限,可見這個檔案很重要,除非有十足的把握,不然絕對不可以亂改權限!

既然是要給其他人賦以指令權利,那麼可以暫時的更改一下權限,#chmod 777 sudoers,然後vim了它,找到root ALL=(ALL) ALL,在這一行下面加上需要權重限的使用者名,然後後面同樣加上ALL=(ALL) ALL.儲存退出,然後切記一定要把權限改回成440,不然你這個伺服器就等于随時送給别人了。

切回自己的正常使用者賬号,就可以使用sudo指令,$ touch /var/log/msmtp.log。

zabbix這個軟體是跟登陸者的帳号走的,也就是說使用user1登陸,那麼采用的配置檔案就是預設使用user1的home檔案夾下的配置檔案;如果使用的是user2登陸,那麼采用的配置就是user2的home檔案夾下的配置檔案,這些配置檔案都需要手動的加入。而使用的是root登陸,配置檔案就不是root下的配置,而是msmtp的總配置檔案,是一個在msmtp的路徑下叫msmtprc的東西。

之前說的user1、user2的配置檔案是一個隐藏檔案,名字叫.msmtprc。因為zabbix在安裝成功之後,會自動生成一個叫zabbix的使用者,但是這個使用者是沒有家檔案的,需要切換root使用者,#vim /etc/passwd,找到zabbix使用者,将原來的/var/lib/zabbix/:/bin/false改成/home/zabbix/:/bin/bash。這樣的話,zabbix這個賬戶就可以登陸了,而在root狀态下改登zabbix使用者,#su zabbix。不需要密碼直接來。

$ cd /home/zabbix,然後$ touch .msmtprc,在這個配置檔案裡輸入下圖的語句:

<a href="http://s5.51cto.com/wyfs02/M00/7A/2C/wKioL1ak-9mgmHnQAAAhUmPzcvo965.png" target="_blank"></a>

儲存之後退出,$ll -a一下,看看這個.msmtprc 的所有者和所屬組是不是都是zabbix,權限應該改成600.

然後就是安裝mutt,如果安裝過了這一步就省略掉,方法步驟跟之前那片文章是一樣的,也是要備份原來的Muttrc,同時建立一個新的Murrtc。然後使用$ echo "郵件正文"|mutt -s "郵件标題" 郵箱B的位址  來測試一下郵箱環境是否搭建成功。

注意,在上面我們touch了一個msmtp.log,而這個msmtp.log檔案對于zabbix使用者是不能通路的,是以需要借助root來chown or chomd來讓zabbix使用者能夠對msmtp.log有寫的權限,不然的話,郵件提示發送失敗。

$vim etc/zabbix/zabbix_server.conf,這個是zabbix用戶端的配置檔案,這個檔案也有可能位址是 etc/zabbix_server.conf,找到AlertscriptPath這一行,記住這個腳本的位址,然後退出這個配置檔案,切換成root使用者把這個腳本的路徑使用者和所屬組改成zabbix,這樣zabbix使用者就可以使用這個路徑來儲存腳本,但是這樣貌似root使用者就不能了。一會我會實驗驗證一下。如果這裡改變了腳本的目錄,那麼需要重新開機一下zabbix服務,#service zabbix_server restart,這裡可能有人是#service zabbix-server restart,隻是小差别,不礙事。

在這個腳本路徑下,#vim mail.sh,這個mail.sh就是腳本,而腳本的内容如下:

#!/bin/sh

echo "$3" | mutt -s "$2" $1

這裡$1\$2\$3都是腳本的參數,儲存退出之後,确認這個腳本檔案的使用者和所屬組全是zabbix,并且要有執行權限。即# chown zabbix:zabbix mail.sh 然後#chomd u+x,g+x mail.sh。

切換回zabbix使用者,使用zabbix使用者來執行一下這個腳本,在腳本目錄下:./mail.sh 郵箱B的位址 郵件正文 郵件内容  這三個内容正好對應腳本裡的$1\$2\$3,于是是可以正常發送的。

以上所有的郵件環境搭建完畢,進入zabbix的界面,在網頁的右下角看見登陸賬号,預設應該是admin,在右上角“登出”的旁邊有一個“基本資料”,點選之後選擇“示警媒介”,這裡選擇添加,方式要email,發送位址寫上自己要收到郵件的位址,下面還可以選擇接受zabbix的時間以及接受告警的級别,下面的“已啟用”必須要選擇。然後添加和存檔。如圖所示:

<a href="http://s2.51cto.com/wyfs02/M01/7A/2D/wKiom1ak-6axLijFAAAPL_j0Bog001.png" target="_blank"></a>

然後再上面選擇“管理”,然後點選“示警媒介類型”,選擇email,然後輸入剛剛的腳本名字:mial.sh,然後儲存。

<a href="http://s5.51cto.com/wyfs02/M01/7A/2C/wKioL1ak_AugvpjQAABnrOUjHfE434.png" target="_blank"></a>

“管理”旁邊有一個“組态”,點選“動作”,點選“Report problem ro zabbix Administraors”,這裡有很多很進階的動作,先不管,選擇旁邊的“條件”,選擇觸發器具體類型。選擇好正确的觸發器和觸發條件,然後去觸發一下,使更改值越過門檻值,看看郵件是否會被正确的發送。

 本文轉自 蘇幕遮618 51CTO部落格,原文連結:http://blog.51cto.com/chenx1242/1738087