Zabbix遠(yuǎn)程執(zhí)行命令的示例詳解

zabbix觸發(fā)器(trigger)達(dá)到閥值后會(huì)有動(dòng)作(action)執(zhí)行:發(fā)送告警信息或執(zhí)行遠(yuǎn)程命令。

本文主要配置驗(yàn)證zabbix執(zhí)行遠(yuǎn)程命令。

一.環(huán)境

server:基于centos-7-x86_64-1511;

zabbix:zabbix-3.0.1server/agent。

二.注意事項(xiàng)

一些能想到的比較重要的注意事項(xiàng): 1.遠(yuǎn)程執(zhí)行命令是server端向agent端執(zhí)行,不支持主動(dòng)模式的agent; 2.不支持代理模式; 3.zabbix用戶必須對(duì)命令具有執(zhí)行權(quán)限,可以使用sudo賦予root權(quán)限(配置sudo無密碼方式);

4.遠(yuǎn)程命令只是執(zhí)行,執(zhí)行成功與否并不檢測(cè)并確認(rèn),可在" monitoring-->events"中查看action執(zhí)行時(shí),或在"reports-->action log"中查看遠(yuǎn)程命令是否執(zhí)行成功(成功為" executed")。

三.示例

通過一個(gè)簡單的示例驗(yàn)證:

監(jiān)控服務(wù)器實(shí)時(shí)在線的用戶不超過2個(gè),超過閥值時(shí)報(bào)警,并執(zhí)行命令,強(qiáng)制使第3個(gè)登錄用戶下線,以使監(jiān)控項(xiàng)在閥值以下。

1. 設(shè)置trigger

configuration-->templates-->選擇” template os linux”模板的”triggers”-->create trigger

#trigger name自定義,可使用宏

name:user login number gt 2 on {host.name}

expression:{template os linux:system.users.num.last()}>2

#可以點(diǎn)擊"expression"項(xiàng)后的"add",使用zabbix自帶的item + function設(shè)置閥值的表達(dá)式,如下:


#自定義的級(jí)別

severity:warning


其余默認(rèn)值即可,設(shè)置完成后點(diǎn)擊"add"即完成。

2. 遠(yuǎn)程命令開關(guān)

?

1

2

3

4

5

#agent默認(rèn)不支持執(zhí)行遠(yuǎn)程命令,需要在agent的配置文件中打開此參數(shù);

#agent.conf文件路徑根據(jù)實(shí)際情況修改,這里是編譯安裝后自定義的路徑,請(qǐng)見http://www.cnblogs.com/netonline/p/7406598.html

#agent.conf文件修改后需要重啟進(jìn)程。

[root@localhost ~]# sed -i 's|# enableremotecommands=0|enableremotecommands=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf

[root@localhost ~]# service zabbix_agentd restart

3. 設(shè)置action

configuration-->actions-->create action

action

在action選項(xiàng)中,定義name:limit the number of online users no more than 2

#action name自定義即可,action選項(xiàng)的其余部分可采用默認(rèn)值,如下:


conditions

在conditions選項(xiàng)中添加新的條件判斷,以使判斷更有針對(duì)性,如:

new condition:trigger severity = warning

new condition:trigger name like user login number gt 2

#trigger name對(duì)應(yīng)步驟1中定義的trigger name,如下:


operations

在operations選項(xiàng)中,添加新的"action operation",點(diǎn)擊"new",

operation type:選擇"remote command"

target list:添加target為"current host" #agent在本機(jī)

type:選擇"custom script"

execute on:選擇"zabbix agent",命令為"?sudo /root/test.sh"

#執(zhí)行命令的賬號(hào)是zabbix賬號(hào),非root賬號(hào),不采用sudo命令會(huì)導(dǎo)致命令執(zhí)行后不生效,

#另外需要說明是,這里嘗試過使用具體的命令而非腳本,結(jié)果是命令執(zhí)行了但不生效,因?yàn)闆]有具體的失敗日志,也分析不出原因

#其余部分采用默認(rèn)值,點(diǎn)擊"add"即可,如下:


4. 遠(yuǎn)程命令腳本

?

1

2

3

4

5

6

7

#根據(jù)步驟3中定義的命令腳本的路徑,編輯命令腳本; [root@localhost ~]# vim test.sh

#!/bin/bash path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export path

#這里簡單的認(rèn)為第3個(gè)登錄的tty為pts/2 pkill -kill -t pts/2

[root@localhost ~]# chmod 764 test.sh

5. 配置sudo

#授予zabbix賬號(hào)sudo無密碼執(zhí)行命令的權(quán)限,如果為了安全性,可將最后一個(gè)"all"定義為具體的命令; #或在步驟4中將腳本owner修改為zabbix,并具有執(zhí)行權(quán)限,但要注意腳本放置目錄對(duì)zabbix賬戶開放可執(zhí)行權(quán)限甚至可寫權(quán)限,這樣步驟3中腳本也不需要sudo賦予權(quán)限?[root@localhost ~]# visudo

zabbix all=nopasswd: all

6. 驗(yàn)證

遠(yuǎn)程登錄主機(jī)第3個(gè)tty,不在cli下做其他任何操作,觸發(fā)trigger閥值,觸發(fā)命令動(dòng)作強(qiáng)制第3個(gè)登錄用戶下線。


從截圖可以看到,在線用戶超過閥值,trigger為"problem"狀態(tài)只持續(xù)了1分鐘左右,即恢復(fù)到"ok"狀態(tài),表明強(qiáng)制第3個(gè)用戶下線的腳本命令已執(zhí)行,并且執(zhí)行成功。


從" number of logged in users" item的歷史數(shù)據(jù)中也可看到trigger觸發(fā)時(shí),第3個(gè)登錄用戶即被下線


在登錄的第3個(gè)tty下,可看到連接由主機(jī)自行中斷(顯示本地時(shí)間,與上圖的主機(jī)時(shí)間有偏差)。

總結(jié)

到此這篇關(guān)于zabbix遠(yuǎn)程執(zhí)行命令 的文章就介紹到這了,更多相關(guān)zabbix遠(yuǎn)程執(zhí)行命令 內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容