最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Zabbix 監(jiān)控多線路出口IP并通過飛書告警完整教程

 更新時間:2026年03月31日 11:22:35   作者:Aggy阿吉  
本文介紹了使用Zabbix實現(xiàn)多線路出口IP監(jiān)控,并通過飛書發(fā)送告警的方案,包括監(jiān)控原理、環(huán)境準備、腳本部署、觸發(fā)器配置、媒介設置及動作創(chuàng)建等步驟,文中還提供了常見問題及解決方法,感興趣的朋友跟隨小編一起看看吧

一、方案概述

1.1 監(jiān)控原理

  • 通過防火墻策略,讓不同域名走不同的出口線路
  • Zabbix 定期訪問這些域名,獲取訪問時的出口IP
  • 將獲取的IP與預設值比較,不一致時通過飛書發(fā)送告警

1.2 線路與域名對應關系示例

線路編號域名預設IP出口接口
線路1ifconfig.me203.0.113.10port2
線路2api.ipify.org203.0.113.20port3
線路3icanhazip.com203.0.113.30port4

二、環(huán)境準備

2.1 前提條件

  • Zabbix Server 7.4 已部署(Docker或物理機)
  • 已獲取飛書機器人 Webhook 地址
  • Zabbix Server 能訪問外網(wǎng)(IP查詢服務)

2.2 確認Zabbix容器名稱

docker ps | grep zabbix

記錄Zabbix Server容器名稱(如 zabbix-server

三、部署外部檢查腳本

3.1 進入Zabbix Server容器

docker exec -it zabbix-server sh

3.2 創(chuàng)建腳本目錄并編寫腳本

# 創(chuàng)建目錄
mkdir -p /usr/lib/zabbix/externalscripts
# 創(chuàng)建腳本文件
cat > /usr/lib/zabbix/externalscripts/get_ip_by_domain.sh << 'EOF'
#!/bin/bash
# 通過指定的域名獲取公網(wǎng)出口IP
# 用法:get_ip_by_domain.sh <域名>
DOMAIN="$1"
TIMEOUT=5
if [ -z "$DOMAIN" ]; then
    echo "ERROR: No domain provided"
    exit 1
fi
# 使用curl訪問域名,提取IPv4地址
IP=$(curl -s -L -m $TIMEOUT "http://$DOMAIN" 2>/dev/null | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' | head -1)
if [ -n "$IP" ]; then
    echo "$IP"
    exit 0
else
    echo "ERROR: Failed to get IP from $DOMAIN"
    exit 1
fi
EOF
# 賦予執(zhí)行權限
chmod +x /usr/lib/zabbix/externalscripts/get_ip_by_domain.sh
# 修改屬主
chown zabbix:zabbix /usr/lib/zabbix/externalscripts/get_ip_by_domain.sh
# 安裝curl(Alpine系統(tǒng))
apk add curl

3.3 測試腳本

su -s /bin/sh -c "/usr/lib/zabbix/externalscripts/get_ip_by_domain.sh api.ipify.org" zabbix

應返回一個公網(wǎng)IP地址。

3.4 退出容器

exit

四、創(chuàng)建監(jiān)控項

4.1 登錄Zabbix Web

訪問 http://你的Zabbix服務器IP:8080,使用 Admin/zabbix 登錄。

4.2 創(chuàng)建監(jiān)控項

  1. 進入 配置 → 主機,選擇目標主機(如 hwipmonitor
  2. 點擊 監(jiān)控項創(chuàng)建監(jiān)控項

4.3 填寫監(jiān)控項信息

字段填寫內容
名稱WAN01 Exit IP (via api.ipify.org)
類型外部檢查
鍵值get_ip_by_domain.sh["api.ipify.org"]
信息類型文本
更新間隔60m
歷史記錄保留期3d

4.4 保存

點擊 添加 完成創(chuàng)建。

4.5 驗證監(jiān)控項

  1. 進入 監(jiān)控 → 最新數(shù)據(jù)
  2. 篩選主機,查看監(jiān)控項是否有數(shù)據(jù)
  3. 狀態(tài)應為 已啟用,且有IP值

五、創(chuàng)建觸發(fā)器

5.1 進入觸發(fā)器創(chuàng)建

  1. 配置 → 主機 → 選擇主機 → 觸發(fā)器創(chuàng)建觸發(fā)器

5.2 填寫觸發(fā)器信息

字段填寫內容
名稱WAN01 出口IP異常 (api.ipify.org)
嚴重性警告
描述期望IP:103.248.229.101(填寫實際預設IP)
表達式{hwipmonitor:get_ip_by_domain.sh["api.ipify.org"].last()}<>"103.248.229.101"

5.3 表達式說明

  • {主機名:監(jiān)控項鍵值.last()}:獲取監(jiān)控項最新值
  • <>"預設IP":不等于預設IP
  • 如需排除腳本錯誤,可添加 and {監(jiān)控項.str(ERROR)}=0

5.4 保存

點擊 添加 完成創(chuàng)建。

六、配置飛書媒介

6.1 進入媒介類型配置

管理 → 報警媒介類型創(chuàng)建媒介類型

6.2 填寫基本信息

字段填寫內容
名稱feishu
類型Webhook

6.3 添加參數(shù)

點擊 參數(shù) 標簽頁,添加以下參數(shù):

名稱
Subject{ALERT.SUBJECT}
Message{ALERT.MESSAGE}

6.4 編寫腳本

腳本 框中輸入以下內容(將Webhook地址替換為實際地址):

try {
    var params = JSON.parse(value),
        req = new HttpRequest(),
        webhook_url = 'https://open.feishu.cn/open-apis/bot/v2/hook/你的完整Webhook地址',
        msg = {
            msg_type: "text",
            content: {
                text: params.Subject + "\n" + params.Message
            }
        },
        resp;
    req.addHeader("Content-Type: application/json");
    resp = req.post(webhook_url, JSON.stringify(msg));
    if (req.getStatus() != 200) {
        throw "Response code: " + req.getStatus();
    }
    resp = JSON.parse(resp);
    return JSON.stringify(resp);
} catch (error) {
    throw "Failed with error: " + error;
}

6.5 測試媒介

  1. 點擊 測試 按鈕
  2. 填寫測試內容:
    • Subject測試告警
    • Message這是一條測試消息
  3. 點擊 測試
  4. 確認飛書群收到測試消息

6.6 保存

點擊 添加 完成創(chuàng)建。

七、配置用戶媒介

7.1 進入用戶配置

管理 → 用戶 → 點擊 Admin (Zabbix Administrator)

7.2 添加報警媒介

  1. 點擊 報警媒介 標簽頁
  2. 點擊 添加
  3. 填寫:
    • 類型:選擇 feishu
    • 收件人:填寫 飛書群(任意標識)
    • 當活動時:默認
    • 嚴重性:全選
    • 啟用:勾選
  4. 點擊 添加

7.3 保存

點擊 更新 保存用戶配置。

八、創(chuàng)建動作

8.1 進入動作配置

配置 → 動作 → 觸發(fā)器動作創(chuàng)建動作

8.2 填寫基本信息

字段填寫內容
名稱出口IP異常飛書告警

8.3 配置條件

點擊 條件 標簽頁,添加:

  • 類型:觸發(fā)器名稱
  • 運算符:包含
  • 出口IP異常

這樣所有名稱包含“出口IP異常”的觸發(fā)器都會觸發(fā)此動作。

8.4 配置操作

點擊 操作 標簽頁 → 新增

字段填寫內容
操作類型發(fā)送消息
默認接收人選擇 Admin (Zabbix Administrator)
僅送到選擇 feishu
主題告警:{TRIGGER.NAME}
消息主機:{HOST.NAME}\n當前IP:{ITEM.LASTVALUE}\n期望IP:{TRIGGER.DESCRIPTION}\n時間:{EVENT.DATE} {EVENT.TIME}
自定義持續(xù)時間0
僅當問題出現(xiàn)時發(fā)送? 勾選

8.5 配置恢復操作(可選)

點擊 新增 添加恢復操作:

字段填寫內容
操作類型發(fā)送消息
默認接收人選擇 Admin
僅送到feishu
主題恢復:{TRIGGER.NAME}
消息主機:{HOST.NAME}\n當前IP:{ITEM.LASTVALUE}\n時間:{EVENT.DATE} {EVENT.TIME}
自定義持續(xù)時間0
僅當問題恢復時發(fā)送? 勾選

8.6 保存

點擊 添加 完成動作創(chuàng)建。

九、測試驗證

9.1 強制觸發(fā)測試

臨時修改觸發(fā)器表達式,強制觸發(fā)告警:

  1. 配置 → 主機 → 選擇主機 → 觸發(fā)器
  2. 找到目標觸發(fā)器,點擊編輯
  3. 將表達式改為:
    {hwipmonitor:get_ip_by_domain.sh["api.ipify.org"].last()}<>"1.2.3.4"
    
  4. 保存
  5. 等待幾秒,進入 監(jiān)控 → 問題,應看到觸發(fā)器變?yōu)閱栴}狀態(tài)
  6. 進入 報表 → 動作日志,查看發(fā)送記錄
  7. 檢查飛書是否收到告警

9.2 恢復表達式

測試完成后,將表達式改回正確的預設IP。

9.3 驗證飛書消息

飛書應收到類似以下內容的消息:

告警:WAN01 出口IP異常 (api.ipify.org)
主機:hwipmonitor
當前IP:103.248.229.101
期望IP:期望IP:103.248.229.101
時間:2026.03.30 17:04:23

十、批量配置其他線路

10.1 方法一:手動創(chuàng)建

為每個域名重復以下操作:

  1. 創(chuàng)建監(jiān)控項(修改鍵值中的域名)
  2. 創(chuàng)建觸發(fā)器(修改預設IP和域名)
  3. 觸發(fā)器名稱格式:WAN01 出口IP異常 (域名)

10.2 方法二:使用模板

  1. 創(chuàng)建一個模板,添加所有監(jiān)控項和觸發(fā)器
  2. 將模板鏈接到主機

10.3 方法三:使用Zabbix API(Python腳本)

#!/usr/bin/env python3
import csv
from zabbix_api import ZabbixAPI
# 配置
ZABBIX_URL = "http://localhost/zabbix"
USER = "Admin"
PASSWORD = "zabbix"
HOST_NAME = "hwipmonitor"
# 線路配置列表
configs = [
    {"domain": "ifconfig.me", "ip": "203.0.113.10"},
    {"domain": "api.ipify.org", "ip": "103.248.229.101"},
    {"domain": "icanhazip.com", "ip": "203.0.113.30"},
    # ... 添加更多
]
zapi = ZabbixAPI(ZABBIX_URL)
zapi.login(USER, PASSWORD)
# 獲取主機ID
hosts = zapi.host.get({"filter": {"host": HOST_NAME}})
host_id = hosts[0]["hostid"]
for config in configs:
    domain = config["domain"]
    preset_ip = config["ip"]
    # 創(chuàng)建監(jiān)控項
    item = zapi.item.create({
        "name": f"WAN01 Exit IP (via {domain})",
        "key_": f'get_ip_by_domain.sh["{domain}"]',
        "hostid": host_id,
        "type": 0,  # 外部檢查
        "value_type": 1,  # 文本
        "delay": "60m",
        "history": "3d"
    })
    # 創(chuàng)建觸發(fā)器
    trigger = zapi.trigger.create({
        "description": f"WAN01 出口IP異常 ({domain})",
        "expression": f'{{{HOST_NAME}:get_ip_by_domain.sh["{domain}"].last()}}<>"{preset_ip}"',
        "priority": 2,  # 警告
        "comments": f"期望IP:{preset_ip}",
        "status": 0
    })
    print(f"已創(chuàng)建: {domain} -> {preset_ip}")

十一、常見問題排查

11.1 監(jiān)控項顯示“不支持”

可能原因

  • 腳本不存在或路徑錯誤
  • 腳本沒有執(zhí)行權限
  • 缺少curl命令

解決方法

# 檢查腳本是否存在
ls -l /usr/lib/zabbix/externalscripts/get_ip_by_domain.sh
# 檢查curl是否安裝
which curl
# 測試腳本
su -s /bin/sh -c "/usr/lib/zabbix/externalscripts/get_ip_by_domain.sh api.ipify.org" zabbix

11.2 飛書收不到消息

可能原因

  • Webhook地址錯誤
  • 飛書機器人安全設置(關鍵詞/IP白名單)
  • 腳本中URL為空

解決方法

  1. 在媒介類型中點擊測試,確認能收到
  2. 檢查飛書機器人安全設置,添加關鍵詞“告警”
  3. 確認腳本中Webhook地址正確

11.3 動作日志顯示“No media defined for user”

解決方法

  • 進入 管理 → 用戶,為Admin用戶添加feishu媒介
  • 確認媒介類型已啟用

11.4 觸發(fā)器表達式語法錯誤

正確格式

{主機名:監(jiān)控項鍵值.last()}<>"預設IP"

常見錯誤

  • 缺少花括號 {}
  • IP未加雙引號
  • 使用中文括號

11.5 查看Zabbix Server日志

# Docker環(huán)境
docker logs zabbix-server --tail 100 | grep -i error
# 物理機
tail -f /var/log/zabbix/zabbix_server.log

十二、總結

12.1 配置文件清單

文件/配置位置
外部腳本/usr/lib/zabbix/externalscripts/get_ip_by_domain.sh
監(jiān)控項Zabbix Web → 配置 → 主機 → 監(jiān)控項
觸發(fā)器Zabbix Web → 配置 → 主機 → 觸發(fā)器
媒介類型Zabbix Web → 管理 → 報警媒介類型
用戶媒介Zabbix Web → 管理 → 用戶
動作Zabbix Web → 配置 → 動作

12.2 關鍵宏說明

說明
{HOST.NAME}主機名
{TRIGGER.NAME}觸發(fā)器名稱
{ITEM.LASTVALUE}監(jiān)控項最新值
{TRIGGER.DESCRIPTION}觸發(fā)器描述
{EVENT.DATE}事件日期
{EVENT.TIME}事件時間
{ALERT.SUBJECT}告警主題
{ALERT.MESSAGE}告警內容

12.3 后續(xù)優(yōu)化建議

  1. 調整檢查頻率:根據(jù)線路重要性,可設置為15-30分鐘
  2. 添加期望IP顯示:在觸發(fā)器描述中填寫期望IP
  3. 配置告警重復間隔:如需重復告警,修改自定義持續(xù)時間
  4. 使用模板:將監(jiān)控項和觸發(fā)器放入模板,方便批量管理
  5. 監(jiān)控腳本健康:添加監(jiān)控項監(jiān)控腳本執(zhí)行狀態(tài)

至此,您已完成 Zabbix 多線路出口IP監(jiān)控與飛書告警的全部配置。如有任何問題,歡迎隨時交流!

到此這篇關于Zabbix 監(jiān)控多線路出口IP并通過飛書告警完整教程的文章就介紹到這了,更多相關Zabbix 監(jiān)控多線路出口IP內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Zabbix如何通過ssh監(jiān)控獲取網(wǎng)絡設備數(shù)據(jù)

    Zabbix如何通過ssh監(jiān)控獲取網(wǎng)絡設備數(shù)據(jù)

    這篇文章主要介紹了Zabbix如何通過ssh監(jiān)控獲取網(wǎng)絡設備數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Zabbix如何使用過濾器實現(xiàn)監(jiān)控

    Zabbix如何使用過濾器實現(xiàn)監(jiān)控

    這篇文章主要介紹了Zabbix如何使用過濾器實現(xiàn)監(jiān)控,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Zabbix配置釘釘?shù)膸D片報警功能

    Zabbix配置釘釘?shù)膸D片報警功能

    這篇文章主要介紹了Zabbix配置釘釘?shù)膸D片報警功能,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • 通過Zabbix監(jiān)控Oracle 19c數(shù)據(jù)庫的完整配置指南

    通過Zabbix監(jiān)控Oracle 19c數(shù)據(jù)庫的完整配置指南

    本文將詳細介紹如何使用Zabbix配置Oracle 19c數(shù)據(jù)庫監(jiān)控,包括安裝、配置、問題排查等全過程,本指南適合新手獨立完成配置,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-12-12
  • CentOS 6.9 安裝 Zabbix 3.0 的詳細步驟

    CentOS 6.9 安裝 Zabbix 3.0 的詳細步驟

    Zabbix 是一個基于 WEB 界面的,提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡監(jiān)視功能的企業(yè)級開源解決方案,本文重點研究 Zabbix,使用它的目的是為了更好地監(jiān)控MySQL 數(shù)據(jù)庫服務器,并生成圖形報表,相較于 Nagios,Zabbix 在這方面功能更為強大,感興趣的朋友一起看看吧
    2025-04-04
  • Zabbix通過PSK共享密鑰實現(xiàn)Server和Agent的通信加密

    Zabbix通過PSK共享密鑰實現(xiàn)Server和Agent的通信加密

    這篇文章主要介紹了Zabbix通過PSK共享密鑰實現(xiàn)Server和Agent的通信加密,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Zabbix?Timeout?設置不當導致的問題及解決方案

    Zabbix?Timeout?設置不當導致的問題及解決方案

    這篇文章主要介紹了Zabbix?Timeout設置不當導致的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • zabbix監(jiān)控Linux系統(tǒng)服務的流程

    zabbix監(jiān)控Linux系統(tǒng)服務的流程

    這篇文章主要介紹了zabbix監(jiān)控Linux系統(tǒng)服務的流程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • zabbix監(jiān)控4.4升級至5.0的詳細教程

    zabbix監(jiān)控4.4升級至5.0的詳細教程

    這篇文章主要介紹了zabbix監(jiān)控4.4升級至5.0的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 基于zabbix實現(xiàn)監(jiān)控Jenkins過程詳解

    基于zabbix實現(xiàn)監(jiān)控Jenkins過程詳解

    這篇文章主要介紹了基于zabbix實現(xiàn)監(jiān)控Jenkins過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論

岳阳县| 扬中市| 舟山市| 彩票| 贵定县| 琼结县| 新晃| 唐海县| 文成县| 义乌市| 十堰市| 台东市| 郯城县| 伽师县| 商都县| 常宁市| 华蓥市| 南通市| 华阴市| 垦利县| 隆林| 莫力| 威海市| 祁门县| 古交市| 湟源县| 潍坊市| 遂溪县| 禄劝| 尤溪县| 长沙县| 三穗县| 牟定县| 香港| 齐齐哈尔市| 平罗县| 乌拉特前旗| 澄江县| 育儿| 中宁县| 德兴市|