2026年3月21日 星期六

Zabbix MTR Template Lab

 事前導讀

https://www.meinekleinefarm.net/zabbix-template-net-mtr-my-traceroute/

其它相關資訊

https://xrcd2.blogspot.com/2023/04/zabbix-template-net-mtr-json-report-on.html

https://xrcd2.blogspot.com/2024/06/zabbix-70-lts.html

https://xrcd2.blogspot.com/2026/02/oracle-linux-101.html

以下操作基於 Oracle 10.1 + Zabbix 7.0.23

監控目地為專線是否有異常

從 Firewall WAN Port 至 介接的 Next Hop Gateway/Router IP 異常及品質監控  

尤其是有二個以上的 WAN port 或使用 SD-WAN 的架構監控最為合適

如 




或其它 MTR 相關運用皆可.

對於 MTR 不太了解的人,推薦自行觀看其它高手提供的資訊

MTR:Linux 網路診斷工具使用教學
(G. T. Wang 的個人部落格)


以下運用皆基於 mtr 這個工具延伸而來.

前置作業  zabbix_server.conf

 vi /etc/zabbix/zabbix_server.conf


### Option: EnableGlobalScripts

#    Enable global scripts on Zabbix server.

#       0 - disable

#       1 - enable

#

# Mandatory: no

# Default:

# EnableGlobalScripts=1


EnableGlobalScripts=1



前置作業  Linux sudo 

vi /etc/sudoers 

zabbix ALL=(root) NOPASSWD: /usr/sbin/mtr , /usr/lib/zabbix/externalscripts/mtr.sh  

可視自行監控需求修改之


前置作業 抄改 mtr.sh

https://github.com/xenadmin/zabbix-templates/blob/master/zabbix-net-mtr/mtr.sh


#!/bin/bash

IP=$1

mtr -r -c3 -w -b -p -j $IP


dnf install mtr -y  

vi /usr/lib/zabbix/externalscripts/mtr.sh 

可視自行監控需求修改之如

cat /usr/lib/zabbix/externalscripts/mtr.sh 

#!/usr/bin/bash

IP=$1

/usr/sbin/mtr -n -r -c3 -w -b -p -j $IP

mrt 測試


json 格式輸出  (Template_Net_MTR.xml 輸入的格式一定要是 json 方可使用)

shell 測試


前置作業 WEB UI  [Administrator\General\Timeouts]

External check  30s

可視自行監控需求修改之



匯入 Template_Net_MTR.xml

https://github.com/xenadmin/zabbix-templates/blob/master/zabbix-net-mtr/Template_Net_MTR.xml



透過 Shell + Template 主要取得內容為

item key 

(1)mtr.hop.host[{#HOP_ID}]

(2)mtr.hop.avg[{#HOP_ID}]

(3)mtr.hop.loss[{#HOP_ID}]


(1)MTR 第 n 個節點 IP 

(2)MTR 第 n 個節點 IP 的 RTT 

(3)MTR 第 n 個節點 IP 的 ICMP Loss


[{#HOP_ID}] 是一個由小到大的整數數值 從 1,2,3...其它的資訊可參考 Template_Net_MTR.xml

以上資訊的取得可用於圖示或告警之使用,可視自行監控需求修改之



Item prototypes


含 DNS 解析看到的 MTR Hop 2 [History 資訊]



 -n, --no-dns   [含不 DNS 解析] [=>個人偏好,監控可自行定義加上 Trigger Name 用以區分之]




MTR 可以看到的資訊



告警規則定義 可視自行監控需求修改之

last(/HiNet-GW/mtr.hop.loss[2]) >= 10

(last(/HiNet-GW/mtr.hop.host[2]) <> last(/HiNet-GW/mtr.hop.host[2],#2) or last(/HiNet-GW/mtr.hop.host[2])="???")

....




Demo


新增監控



亦可自定 Interval