Интегрировать в Zenoss удаленные данные
Мне нужно следить за несколькими серверами Linux, расположенными в другом месте, чем моя ферма.
У меня есть VPN-подключение к этому удаленному местоположению.
Внутренне я использую Zenoss 4 для мониторинга систем, я хотел бы также использовать Zenoss для мониторинга удаленных систем. В соответствии с контрактной политикой я не могу использовать VPN-соединение для данных Zenoss (например, SNMP или SSH).
Я создал несколько сценариев, которые извлекают нужные данные из удаленных систем на внутренний сервер. Формат возвращаемых данных - один CVS для каждого местоположения, содержащий данные от всех устройств, размещенных в этом местоположении.
Например:
$ cat LOCATION_1/current/current.csv
APPLIANCE1,out_of_memory,no,=,no,3,-
APPLIANCE1,postgre_idle,no,=,no,3,-
APPLIANCE2,out_of_memory,no,=,no,3,-
APPLIANCE2,postgre_idle,no,=,no,3,-
Формат CVS следующий:
HOSTNAME, CHECK_NAME, RESULT_VALUE, СРАВНЕНИЕ,DESIRED_VALUE,INFO
Как я могу интегрировать эти данные в Zenoss, так как машины были размещены во внутренней ферме? Если это необходимо, я мог бы в конечном итоге изменить формат извлеченных данных.
большое спасибо
2 ответа
Просто вы можете развернуть один коллектор в удаленном месте и добавить этот хост в пул коллекторов, вы также можете отслеживать удаленные серверы Linux
Одна возможность для вашего внутреннего сервера, который взаимодействует с удаленными системами (давайте назовем это INTERNAL1
) переиздать события как ловушки SNMP (или записать их в rsyslog
файл), а затем обработать их в Zenoss.
Например, сообщение может начинаться с имени сервера: "[APPLIANCE1] Out of Memory"
, В разделе "Преобразование класса событий" веб-интерфейса Zenoss ( http://my_zenoss_install.local:8080/zport/dmd/Events/editEventClassTransform) вы можете преобразовывать атрибуты входящих сообщений (используя Python). Я часто использую это, чтобы снизить серьезность события. Например,
if evt.component == 'abrt' and evt.message.find('Saved core dump of pid') != -1:
evt.severity = 2 # was originally 3, I think
Для ваших нужд вы можете установить evt.device
в APPLIANCE1
если сообщение приходит от INTERNAL1
и содержит [APPLIANCE1]
пометьте как префикс сообщения или что-либо еще, что вы хотите использовать для уникальной идентификации сообщений / ловушек от удаленных систем.
Я не утверждаю, что это лучший способ достижения вашей цели. Мои знания о Zenoss строго ограничены тем, для чего мне сейчас нужно это использовать.
PS Вот довольно старый документ от Zenoss об использовании преобразований событий. К сожалению, документация в Zenoss редкая и разбросанная (как вы, возможно, уже узнали), поэтому может потребоваться поиск старых сообщений и / или задание вопросов на форуме Zenoss.