Install and persist Grafana Zabbix plugin 6.5.0, provision the internal Zabbix datasource, and add a fleet dashboard modeled on client 02 Telemt panels. Add an active-agent Zabbix 7 template plus a 30-second sanitized collector for active IP count/list, connections, traffic, and uptime. Active checks avoid inbound polling of client-private Docker hosts. The exact Zabbix host names and required ZABBIX_API_TOKEN Portainer variable are documented. Compose validation passed on 10.0.0.6; the live plugin registered successfully under Grafana 13.1.0.
837 lines
20 KiB
JSON
837 lines
20 KiB
JSON
{
|
||
"uid": "telemt-proxy-fleet",
|
||
"title": "Telegram proxy fleet",
|
||
"tags": [
|
||
"proxy",
|
||
"telemt",
|
||
"zabbix",
|
||
"fleet"
|
||
],
|
||
"schemaVersion": 39,
|
||
"version": 1,
|
||
"editable": true,
|
||
"refresh": "30s",
|
||
"time": {
|
||
"from": "now-6h",
|
||
"to": "now"
|
||
},
|
||
"timezone": "",
|
||
"templating": {
|
||
"list": [
|
||
{
|
||
"current": {
|
||
"selected": true,
|
||
"text": "00-xserver-fedora-xxx",
|
||
"value": "00-xserver-fedora-xxx"
|
||
},
|
||
"hide": 0,
|
||
"includeAll": false,
|
||
"label": "Proxy host",
|
||
"multi": false,
|
||
"name": "proxy_host",
|
||
"options": [
|
||
{
|
||
"selected": true,
|
||
"text": "00-xserver-fedora-xxx",
|
||
"value": "00-xserver-fedora-xxx"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "11-nevafud-fedora",
|
||
"value": "11-nevafud-fedora"
|
||
},
|
||
{
|
||
"selected": false,
|
||
"text": "19-nutrilent-docker",
|
||
"value": "19-nutrilent-docker"
|
||
}
|
||
],
|
||
"query": "00-xserver-fedora-xxx,11-nevafud-fedora,19-nutrilent-docker",
|
||
"queryValue": "",
|
||
"skipUrlSync": false,
|
||
"type": "custom"
|
||
}
|
||
]
|
||
},
|
||
"annotations": {
|
||
"list": []
|
||
},
|
||
"panels": [
|
||
{
|
||
"type": "row",
|
||
"title": "Telegram MTProto (:1080) — Telemt",
|
||
"collapsed": false,
|
||
"gridPos": {
|
||
"h": 1,
|
||
"w": 24,
|
||
"x": 0,
|
||
"y": 0
|
||
},
|
||
"panels": []
|
||
},
|
||
{
|
||
"id": 20,
|
||
"type": "stat",
|
||
"title": "Уникальных пользователей сейчас (IP)",
|
||
"description": "Текущее число уникальных активных клиентских IP для Telemt user secret `tekhnohim`. Это наиболее близкая доступная метрика к числу подключённых пользователей: несколько клиентов за одним NAT считаются как один IP, а один пользователь с нескольких внешних IP — как несколько.",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 10,
|
||
"x": 0,
|
||
"y": 1
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "background",
|
||
"graphMode": "area",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center",
|
||
"wideLayout": true
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "thresholds"
|
||
},
|
||
"unit": "short",
|
||
"decimals": 0,
|
||
"thresholds": {
|
||
"mode": "absolute",
|
||
"steps": [
|
||
{
|
||
"color": "dark-gray",
|
||
"value": null
|
||
},
|
||
{
|
||
"color": "green",
|
||
"value": 1
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"countTriggers": true,
|
||
"countTriggersBy": "",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"evaltype": "0",
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Active IP address count$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"macro": {
|
||
"filter": ""
|
||
},
|
||
"minSeverity": 3,
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"proxy": {
|
||
"filter": ""
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12,
|
||
"table": {
|
||
"skipEmptyValues": false
|
||
},
|
||
"tags": {
|
||
"filter": ""
|
||
},
|
||
"textFilter": "",
|
||
"trigger": {
|
||
"filter": ""
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 21,
|
||
"type": "stat",
|
||
"title": "Активных соединений",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 7,
|
||
"x": 10,
|
||
"y": 1
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "value",
|
||
"graphMode": "area",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "fixed",
|
||
"fixedColor": "blue"
|
||
},
|
||
"unit": "short",
|
||
"decimals": 0
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Active connections$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 22,
|
||
"type": "stat",
|
||
"title": "Всего подключений",
|
||
"description": "Накопительный счётчик подключений user secret `tekhnohim` с момента запуска Telemt.",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 5,
|
||
"w": 7,
|
||
"x": 17,
|
||
"y": 1
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "value",
|
||
"graphMode": "area",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "fixed",
|
||
"fixedColor": "purple"
|
||
},
|
||
"unit": "short",
|
||
"decimals": 0
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Total connections$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 28,
|
||
"type": "table",
|
||
"title": "Текущие активные IP-адреса Telemt",
|
||
"description": "Последний снимок активных IP-адресов из Zabbix item telemt.active_ips.list. Обновляется каждые 30 секунд.",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 6,
|
||
"w": 24,
|
||
"x": 0,
|
||
"y": 6
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"custom": {
|
||
"align": "left",
|
||
"filterable": false
|
||
}
|
||
},
|
||
"overrides": []
|
||
},
|
||
"options": {
|
||
"cellHeight": "auto",
|
||
"footer": {
|
||
"countRows": false,
|
||
"fields": "",
|
||
"reducer": [
|
||
"sum"
|
||
],
|
||
"show": false
|
||
},
|
||
"showHeader": true,
|
||
"sortBy": []
|
||
},
|
||
"transformations": [
|
||
{
|
||
"id": "organize",
|
||
"options": {
|
||
"excludeByName": {
|
||
"Host": true,
|
||
"Item": true,
|
||
"Key": true
|
||
},
|
||
"renameByName": {
|
||
"Last value": "Активные подключения (пользователь | IP)"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Active IP addresses$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": true,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "2",
|
||
"refId": "A",
|
||
"resultFormat": "table",
|
||
"schema": 12,
|
||
"textFilter": "",
|
||
"useCaptureGroups": false
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 23,
|
||
"type": "timeseries",
|
||
"title": "Пользователи и соединения",
|
||
"description": "Текущее число уникальных активных IP и параллельных Telemt-соединений.",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 8,
|
||
"w": 12,
|
||
"x": 0,
|
||
"y": 12
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "palette-classic"
|
||
},
|
||
"custom": {
|
||
"drawStyle": "line",
|
||
"fillOpacity": 15,
|
||
"lineInterpolation": "stepAfter",
|
||
"lineWidth": 2,
|
||
"pointSize": 3,
|
||
"showPoints": "never",
|
||
"spanNulls": true,
|
||
"stacking": {
|
||
"group": "A",
|
||
"mode": "none"
|
||
}
|
||
},
|
||
"unit": "short",
|
||
"decimals": 0
|
||
},
|
||
"overrides": []
|
||
},
|
||
"options": {
|
||
"legend": {
|
||
"calcs": [
|
||
"lastNotNull",
|
||
"max"
|
||
],
|
||
"displayMode": "table",
|
||
"placement": "bottom",
|
||
"showLegend": true
|
||
},
|
||
"tooltip": {
|
||
"hideZeros": false,
|
||
"mode": "multi",
|
||
"sort": "desc"
|
||
}
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: (Active IP address count|Active connections)$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 24,
|
||
"type": "timeseries",
|
||
"title": "Трафик Telemt (накопительно)",
|
||
"description": "Накопительные байтовые счётчики Telemt по user secret `tekhnohim`; сбрасываются при перезапуске сервиса.",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 8,
|
||
"w": 12,
|
||
"x": 12,
|
||
"y": 12
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "palette-classic"
|
||
},
|
||
"custom": {
|
||
"drawStyle": "line",
|
||
"fillOpacity": 15,
|
||
"lineInterpolation": "linear",
|
||
"lineWidth": 2,
|
||
"pointSize": 3,
|
||
"showPoints": "never",
|
||
"spanNulls": true,
|
||
"stacking": {
|
||
"group": "A",
|
||
"mode": "none"
|
||
}
|
||
},
|
||
"unit": "bytes"
|
||
},
|
||
"overrides": []
|
||
},
|
||
"options": {
|
||
"legend": {
|
||
"calcs": [
|
||
"lastNotNull",
|
||
"max"
|
||
],
|
||
"displayMode": "table",
|
||
"placement": "bottom",
|
||
"showLegend": true
|
||
},
|
||
"tooltip": {
|
||
"hideZeros": false,
|
||
"mode": "multi",
|
||
"sort": "desc"
|
||
}
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Bytes (received from|sent to) clients$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 25,
|
||
"type": "stat",
|
||
"title": "Аптайм Telemt",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 4,
|
||
"w": 8,
|
||
"x": 0,
|
||
"y": 20
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "value",
|
||
"graphMode": "none",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "fixed",
|
||
"fixedColor": "green"
|
||
},
|
||
"unit": "s"
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Uptime$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 26,
|
||
"type": "stat",
|
||
"title": "Получено от клиентов",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 4,
|
||
"w": 8,
|
||
"x": 8,
|
||
"y": 20
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "value",
|
||
"graphMode": "none",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "fixed",
|
||
"fixedColor": "semi-dark-blue"
|
||
},
|
||
"unit": "bytes"
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Bytes received from clients$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"id": 27,
|
||
"type": "stat",
|
||
"title": "Отправлено клиентам",
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"gridPos": {
|
||
"h": 4,
|
||
"w": 8,
|
||
"x": 16,
|
||
"y": 20
|
||
},
|
||
"options": {
|
||
"reduceOptions": {
|
||
"calcs": [
|
||
"lastNotNull"
|
||
],
|
||
"fields": "",
|
||
"values": false
|
||
},
|
||
"colorMode": "value",
|
||
"graphMode": "none",
|
||
"textMode": "value_and_name",
|
||
"justifyMode": "center"
|
||
},
|
||
"fieldConfig": {
|
||
"defaults": {
|
||
"color": {
|
||
"mode": "fixed",
|
||
"fixedColor": "semi-dark-purple"
|
||
},
|
||
"unit": "bytes"
|
||
},
|
||
"overrides": []
|
||
},
|
||
"targets": [
|
||
{
|
||
"application": {
|
||
"filter": ""
|
||
},
|
||
"datasource": {
|
||
"type": "alexanderzobnin-zabbix-datasource",
|
||
"uid": "zabbix-depot"
|
||
},
|
||
"functions": [],
|
||
"group": {
|
||
"filter": "Linux servers"
|
||
},
|
||
"host": {
|
||
"filter": "$proxy_host"
|
||
},
|
||
"item": {
|
||
"filter": "/^Telemt: Bytes sent to clients$/"
|
||
},
|
||
"itemTag": {
|
||
"filter": ""
|
||
},
|
||
"mode": 0,
|
||
"options": {
|
||
"count": false,
|
||
"disableDataAlignment": false,
|
||
"showDisabledItems": false,
|
||
"skipEmptyValues": false,
|
||
"useTrends": "default",
|
||
"useZabbixValueMapping": false
|
||
},
|
||
"queryType": "0",
|
||
"refId": "A",
|
||
"resultFormat": "time_series",
|
||
"schema": 12
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|