Введение
При работе с nagios/icinga рано или поздно возникает ситуация, когда надоедает каждый раз отдельно бегать в управляющий интерфейс хоста — куда-то кликать, вбивать руками адреса и имена (логин / пароль — это святое). Оптимальнее всего было бы иметь в nagios/icinga ссылку под рукой для детального разбора источника беспокойства и устранения проблем. Гугление интернета по данной теме ничего не дало, потому что разработчики nagios и icinga до таких «мелочей» не опускаются, но проблема остаётся — удобного интерфейса для системы мониторинга по-прежнему хочется.
Возможность прикрутить к хостам nagios/icinga интерфейсы управления, хотя и через непредназначенные для этого места, всё-таки существует и в данной небольшой статье, хотелось бы поделиться тем, как это можно осуществить.
Правильно используем Notes URL
В любом конфигураторе (например nagiosql или nconf) у нас доступен Notes URL, который предназначен для заметок о поведении хоста, но обычно он никак не используется и мы можем употребить его в наших целях. После его заполнения в отображении хоста появляется иконка папочки; ткнув в неё мышью, мы получим возможность перейти на управляющий интерфейс хоста.
Для разных хостов у нас могут быть прописаны разные варианты Notes URL, которые ещё и по-разному себя будут вести в разных браузерах. Например:
Проще всего обстоит дело с http-доступом – в нашем примере это ilo2 у блейдового сервера hp-srvr-blade10-hardware (Hewlett-Packard bl460c g6). Ткнув в иконку папки, у нас откроется в этом же окне интерфейс ilo2:
Хорошо? Да. Очень удобно для принтеров и любых других устройств, где http-интерфейс управления — основной.
И тут раздаётся негромкий голос с заднего ряда: «Но нам бы еще и rdp-соединения какие-нибудь… Надо для хождения на сервера Windows...».
А вот тут всё немного посложнее.
RDP для Google Chrome
Если у вас стоит Chrome, то под него в Chrome store есть прекрасное расширение Chrome RDP. Это полноценный rdp-клиент, который работает из браузера. Прекрасно поддерживает русскую клавиатуру, существенных отличий от Microsoft RDP нет.
Но для нашего случая у Chrome RDP будет две небольших ложки дёгтя:
- Он не умеет открывать соединения в текущем окне nagios/icinga (это, скорее всего, ограничение материнского приложения). Проблема решается, если вы открываете rdp-окно кликом правой кнопки мыши на хосте и открытием соединения в новой вкладке. Вот тогда всё будет хорошо и красиво. Разнообразные расширения chrome, которые позволяют открывать нажимаемую ссылку в новой вкладке что-то не помогают.
- Chrome RDP — клиент платный. Стоит он недорого – около 5$, версия, на самом деле, триальная — отрабатывает ровно месяц, а потом начинает выбрасывать окошко «Дэнги давай!». Каждый раз перетаскивать лицензию с компьютера на компьютер (а мониторить системы приходится зачастую из самых неожиданных локаций) – не очень хорошо. Покупать и инсталлировать везде, где можно — тоже неправильно.
Если ограничения нас не пугают, то инсталлируем Chrome RDP, покупаем и регистрируем лицензию. Копипастим в Notes URL последовательность вида
chrome-extension://cbkkbcmdlboombapidmoeolnmdacpkch/nacl.html#$HOSTADDRESS$
Сохраняем конфигурацию в nagios/icinga; теперь после клика правой кнопкой по хосту и выбора открытия ссылки в новом окне, у нас будет запускаться RDP клиент для этого сервера.
RDP клиентов под Сhrome существует множество, но большинство из них ходит через вспомогательный сервер. Либо он должен быть развёрнут в корпоративной сети; либо, что в разы опаснее – это чей-то сервер в Internet, через который передаются ваши пароли. Надо всегда иметь это ввиду и не пренебрегать правилами элементарной безопасности.
RDP для MS Internet Explorer
Чтобы rdp-клиент запускался из под браузера MSIE, следует зарегистрировать протокол как CustomURL. В MSDN есть достаточно подробный документ, описывающий этот механизм и последовательность шагов при регистрации протокола вручную: Registering an Application to a URI Scheme
Конечно, можно всё делать руками, но есть маленькая утилитка, которая упрощает этот процесс и не дает сделать ошибок при ручном редактировании реестра. Качаем её отсюда.
Пара моментов при установке:
- Нужны права администратора; по умолчанию программа пытается скопировать себя в C:WindowsSystem32.
- Чтобы всё работало на 64-разрядных системах Windows 7 / Windows Vista утилиту надо скопировать руками в C:WindowsSysWOW64
Запускаем ее, жмём на добавление протокола (Add) и вводим примерно следующее:
где %Authority%, в данном случае — это комбинация хост+порт. Если порт нестандартный, то можно всё указать вручную — %Port%:3888, например.
Таким же образом можно зарегистрировать и ssh протокол, если по идейным соображениям не хочется пользоваться http-интерфейсом. Этот пример показан на сайте утилиты.
После всех выполненных манипуляций, через MS IE можно в один клик запускать rdp-клиента и оперативно управлять хостами из системы мониторинга nagios/icinga.
Можно, конечно, задаться вопросом, а так ли надо связываться с IE, когда у нас есть масса других замечательных браузеров? Надо. По крайней мере, опять по двум причинам:
- Для IE существенно проще делается регистрация пользовательского протокола (см.выше).
- IE любят производители железа, например Hewlett-Packard. iLO HP (особенно старых версий), честно говорит о том, что работать с ним лучше через IE, а все остальные браузеры относятся к ограниченно поддерживаемым. Управляющий интерфейс HP EVA Onboard Administrator может отображать информацию с ошибками, если он открывается даже через последний Chrome или FF.
Кстати, несмотря на наличие прописанного CustomURL в системе, Chrome их полностью игнорирует. Эта проблема разбиралась в Google Groups, но универсального стабильного решения проблемы нет до сих пор. Если кто-то знает как запустить mstsc.exe из под Google Chrome — дайте знать.
Автор: las68