Универсальный watchdog-мониторинг Service Engine Server (SES): - Liveness-проверки (API, лицензия, роботы) - Диалоговые сценарии из YAML с агрегацией в 6 фиксированных Zabbix-метрик - Доставка: zabbix_sender (active push) или UserParameter (пассивный опрос) - Поддержка Python 3.7+, Zabbix 5.0
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Скрипт для Zabbix UserParameter.
|
||
|
||
Возвращает JSON со всеми метриками ses-monitor.
|
||
Используется как один UserParameter: ses.metrics
|
||
|
||
Настройка Zabbix агента:
|
||
UserParameter=ses.metrics,/opt/ses-monitor/scripts/zbx_get.py
|
||
|
||
В шаблоне Zabbix создаётся master-элемент ses.metrics (тип: Zabbix агент,
|
||
формат: Текст), а все остальные ses.* элементы — зависимые (dependent) с
|
||
препроцессингом JSONPath.
|
||
"""
|
||
|
||
import json
|
||
import sys
|
||
|
||
METRICS_FILE = "/var/tmp/ses_monitor/metrics.json"
|
||
|
||
|
||
def main() -> int:
|
||
try:
|
||
with open(METRICS_FILE, "r", encoding="utf-8") as f:
|
||
data = json.load(f)
|
||
except FileNotFoundError:
|
||
# Файла ещё нет — возвращаем пустой JSON
|
||
print("{}")
|
||
return 0
|
||
except json.JSONDecodeError:
|
||
print("{}")
|
||
return 0
|
||
|
||
print(json.dumps(data, ensure_ascii=False))
|
||
return 0
|
||
|
||
|
||
if __name__ == "__main__":
|
||
sys.exit(main())
|