Назад | Перейти на главную страницу

Получение предупреждений от удаленного экземпляра Icinga / Nagios

У меня есть сервер Icinga (который по сути является форком Nagios) на одном из сайтов моих клиентов. Я захожу на сервер через ssh и не имеют доступа к другим портам.

Поскольку на этом сайте есть несколько вещей, которые могут возникнуть, я предпочитаю проверять сайт хотя бы раз в день. Итак, я запускаю следующую команду:

ssh -L 8080:localhost:80 user@remote.host

и проверьте веб-интерфейс Icinga в моем браузере по адресу:

http://localhost:8080

Довольно стандартно.

Проблема в том, что если бы у меня было больше таких клиентов, подключение ssh к каждому из этих серверов было бы болезненным занятием. Наиболее желанным решением было бы настроить почтовые оповещения на этих хостах, к сожалению, эти машины не имеют доступа в Интернет, и ssh, через который я обращаюсь к ним, является единственным контактом с ними.

Есть ли способ собрать информацию из этих экземпляров через ssh? Допустим, Icinga выгружает текущие предупреждения в файл, и я scp этот файл в мой локальный экземпляр? Или любое другое решение?

Я был бы очень признателен за возможность приходить на работу и видеть любые предупреждения в каком-либо месте (локальная панель управления, почта, что угодно).

РЕДАКТИРОВАТЬ На удаленном сайте должна быть собственная настройка Icinga, чтобы любой внутри этой сети мог проверять в нем предупреждения. Кроме того, я хотел бы иметь у себя локальный экземпляр, который объединял бы эти удаленные экземпляры и отображал только предупреждения от них. Таким образом, я мог бы, возможно, настроить его для отправки электронной почты при предупреждениях (отправленных с моего локального экземпляра Icinga)

Комбинируйте SSH-туннелирование, предложенное slm с участием одно из различных дополнений, которое раскрывает статус nagios / icinga через XML / JSON / SOAP / все, что вы предпочитаете.

Затем вам нужно будет написать (найти?) Сценарий, который может очистить статус от всех этих различных localhost: 8080, localhost: 8081 и т. Д., Возможно, используя check_multi или эквивалент.

Он будет несколько хрупким, но с четко определенными зависимостями и инструментом, позволяющим держать эти туннели открытыми, он может работать.

Обычно решением является установка распределенной установки Nagios с NSCA. Однако, поскольку вы говорите, что у вас нет доступа к Интернету с этих хостов, а SSH - это все, что вы можете сделать, вам придется проявить немного больше творчества. Вероятно, лучше всего будет поддерживать сеансы SSH, как сейчас, но с переадресацией удаленных портов (-R вместо -L), чтобы предоставить сокет для NSCA для отправки результатов в централизованный Nagios. Вы также можете заставить удаленный Nagios записывать результаты в файл, использовать SSH для извлечения этого файла и воспроизводить его на центральном сервере Nagios. В любом случае. затем вы можете посмотреть веб-интерфейс на центральном Nagios и увидеть результаты для всех своих сайтов. (Вам нужно будет немного управлять конфигурацией; все точки мониторинга, которые вы определили для каждого хоста удаленно, должны быть отражены на центральном сервере.)

Для начала вы можете назначить каждому сайту определенный порт 8080, 8081 и т. Д., А затем использовать что-то вроде автосш для поддержания связей. Затем вы будете подключены, и вам просто нужно будет перейти с 8080 на 8081, чтобы проверить каждый сайт, который вы сопоставили с разработанным локальным портом.

Этот тип подхода можно расширить, чтобы вместо того, чтобы смотреть на локальный порт каждого сайта, вы могли бы использовать сценарий для проверки. В зависимости от того, что находится на каждом сайте Icinga, вы можете периодически проверять его с помощью своего собственного сайта Nagios / Icinga, который был настроен для проверки различных вещей, которые вы проверяли вручную.

Очень сложно предоставить больше информации без подробностей.