目錄
前言
1. 動作的基本概念
2. 動作的常見用途
一. 環境準備
二. 創建動作
三. 添加媒介
前言
? ? ? ?在 Zabbix 中,動作(Actions)用于在特定事件發生時執行一系列預定義的操作,比如發送通知、執行腳本等。動作通常與觸發器(Triggers)結合使用,當觸發器條件滿足時觸發動作。以下是 Zabbix 中動作的總結
1. 動作的基本概念
動作由以下幾個部分組成:
- 條件(Conditions): 用于定義觸發動作的條件,例如主機組、觸發器嚴重性等。
- 操作(Operations): 定義在條件滿足時執行的操作,例如發送通知、執行遠程命令等。
- 恢復操作(Recovery operations): 定義在問題解決后執行的操作。
- 通知(Notifications): 發送給用戶或用戶組的消息。
2. 動作的常見用途
- 通知: 發送電子郵件、短信、即時消息等。
- 自動化操作: 執行遠程命令或腳本,例如重啟服務、清理日志等。
- 集成: 與其他系統進行集成,例如調用 API、觸發 Webhook 等。
通過配置動作,Zabbix 可以在監控到問題時自動采取相應的措施,從而提高監控系統的響應效率和自動化程度。
一. 環境準備
本實驗使用兩臺虛擬機
主機名 | IP | C/S | 系統版本 | 軟件版本 |
zabbix | 192.168.226.28 | Server端 | Rocky_linux9.4 | zabbix6.4 |
web1 | 192.168.226.29 | Agent端 | Rocky_linux9.4 | zabbix-agent6.4 |
本博文基于之前做好的環境下載與配置,然后再進行的本篇的動作與媒介實驗,安裝步驟參考下述博文。
Zabbix6.4安裝教程-CSDN博客
Agent下載安裝步驟-CSDN博客
二. 創建動作
首先我們添加一個觸發器用來實驗
在Agent端下載一個nginx并啟動
yum install -y nginx
systemctl enable --now nginx
l現在來到監控頁面添加一個監控80端口的觸發器
鍵值代碼:?
net.tcp.listen[80]
然后創建一個觸發器
?
現在去創建腳本,在6.4版本中需要先創建腳本再添加動作
在 Zabbix 中,當觸發器觸發并執行動作時,執行腳本或命令的用戶通常是運行 Zabbix Server 或 Zabbix Agent 的系統服務用戶。默認情況下,這個用戶是 zabbix
那么我們需要到Agent端去授權給zabbix
[root@web1 ~]# visudo
zabbix ALL=(ALL) NOPASSWD: ALL
開啟Agent的配置文件中的遠程命令
[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.conf
EnableRemoteCommands=1
LogRemoteCommands=1
?
重啟Agent服務
[root@web1 ~]# systemctl restart zabbix-agent
?現在去停止nginx服務
[root@web1 ~]# systemctl stop nginx
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=2178,fd=4),("zabbix_agentd",pid=2177,fd=4),("zabbix_agentd",pid=2176,fd=4),("zabbix_agentd",pid=2175,fd=4),("zabbix_agentd",pid=2174,fd=4),("zabbix_agentd",pid=2173,fd=4))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=2178,fd=5),("zabbix_agentd",pid=2177,fd=5),("zabbix_agentd",pid=2176,fd=5),("zabbix_agentd",pid=2175,fd=5),("zabbix_agentd",pid=2174,fd=5),("zabbix_agentd",pid=2173,fd=5))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
回到監控頁面觀察,會有略微延遲,稍微等待會。
?
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=3878,fd=4),("zabbix_agentd",pid=3877,fd=4),("zabbix_agentd",pid=3876,fd=4),("zabbix_agentd",pid=3875,fd=4),("zabbix_agentd",pid=3874,fd=4),("zabbix_agentd",pid=3873,fd=4))
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=3923,fd=6),("nginx",pid=3922,fd=6),("nginx",pid=3921,fd=6))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=3878,fd=5),("zabbix_agentd",pid=3877,fd=5),("zabbix_agentd",pid=3876,fd=5),("zabbix_agentd",pid=3875,fd=5),("zabbix_agentd",pid=3874,fd=5),("zabbix_agentd",pid=3873,fd=5))
LISTEN 0 511 [::]:80 [::]:* users:(("nginx",pid=3923,fd=7),("nginx",pid=3922,fd=7),("nginx",pid=3921,fd=7))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
三. 添加媒介
?
現在就開啟郵箱配置成功了
再給用戶配置一個郵箱
現在去動作中添加郵箱報警動作
?
??
現在去停止nginx服務測試郵件是否發送。?
[root@web1 ~]# systemctl stop nginx
[root@web1 ~]# ss -tnlp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 4096 0.0.0.0:10050 0.0.0.0:* users:(("zabbix_agentd",pid=3878,fd=4),("zabbix_agentd",pid=3877,fd=4),("zabbix_agentd",pid=3876,fd=4),("zabbix_agentd",pid=3875,fd=4),("zabbix_agentd",pid=3874,fd=4),("zabbix_agentd",pid=3873,fd=4))
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=825,fd=3))
LISTEN 0 4096 [::]:10050 [::]:* users:(("zabbix_agentd",pid=3878,fd=5),("zabbix_agentd",pid=3877,fd=5),("zabbix_agentd",pid=3876,fd=5),("zabbix_agentd",pid=3875,fd=5),("zabbix_agentd",pid=3874,fd=5),("zabbix_agentd",pid=3873,fd=5))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=825,fd=4))
?
?到此就完成了郵件報警。