@GLAVQA
Ученик
(201)
3 недели назад
Что тебе нужно сделать:
✅ Цель:
Суммировать нагрузку postgres.exe по:
CPU (%)
RAM (MB)
Экспортировать эти значения через SNMP для внешней системы мониторинга.
? Подход: SNMP + скрипты через SNMP Extend (или SNMP Agent Simulator)
? Способ 1: [Net-SNMP for Windows + Extend]
Это самая универсальная и легкая реализация:
? Установка Net-SNMP:
Скачай Net-SNMP for Windows или официальный дистрибутив.
Установи его на сервер.
? Принцип работы:
Net-SNMP позволяет подключить внешний скрипт, который будет вызываться по SNMP и возвращать результат.
? Пример конфига snmpd.conf:
conf
Копировать
Редактировать
# Вызовет скрипт при запросе OID .1.3.6.1.4.1.2021.51
extend .1.3.6.1.4.1.2021.51 postgres_monitor c:/scripts/postgres_snmp.bat
? Пример скрипта postgres_snmp.bat:
bat
Копировать
Редактировать
@echo off
python c:\scripts\postgres_snmp.py
? Пример Python-скрипта postgres_snmp.py:
python
Копировать
Редактировать
import psutil
cpu_sum = 0.0
mem_sum = 0
for proc in psutil.process_iter(['name', 'cpu_percent', 'memory_info']):
try:
if 'postgres' in proc.info['name'].lower():
cpu_sum += proc.info['cpu_percent']
mem_sum += proc.info['memory_info'].rss // (1024 * 1024) # MB
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue
print(f"PostgreSQL CPU: {cpu_sum:.2f}%")
print(f"PostgreSQL RAM: {mem_sum} MB")
? Как это видит SNMP:
После настройки, SNMP-запрос к .1.3.6.1.4.1.2021.51 вернёт строки вида:
yaml
Копировать
Редактировать
PostgreSQL CPU: 14.23%
PostgreSQL RAM: 312 MB
Ты можешь привязать эти значения в мониторинге (например, Zabbix, Nagios, LibreNMS и т.д.) через SNMP OID.
? Альтернатива: SNMP Simulator (агент, отдающий статические или динамические значения)
Если тебе проще — можешь использовать snmpsim, он позволяет отдавать произвольные значения по SNMP, с обновлением из скрипта.
? Резюме:
Что Как
Собрать данные Python (через psutil) или PowerShell
Передать по SNMP Через Net-SNMP + extend
Мониторинг с другого хоста Запрос по SNMP OID, получаешь нужные данные
? Хочешь — сделаю тебе готовый архив:
postgres_snmp.py + конфиг + bat-файл
Готовый snmpd.conf с нужным OID
Инструкцию на русском как установить и проверить
Просто скажи, в каком виде удобно — zip или в виде инструкций под копипаст.
С уважением, GLAVQA
IskatelУченик (201)
3 недели назад
Net-SNMP нужно из исходников собирать правильно, а бинарный пакет под Windows только версии 5.5.1 на SourceForge есть?