Xymon
Историческая справка
Cистема мониторинга Xymon была создана в 2002 году, как дополнение, называвшееся BBGEN, к коммерческой системе Big Brother. Со временем, проект стал полностью самостоятельным. До момента переименования в Xymon в 2009 году, проект был известен под именем Hobbit.
Некоторые возможности системы мониторинга
Система мониторинга примечательна, в первую очередь, сводной панелью аварий, выполненной в виде матрицы, где по вертикали располагаются хосты, по горизонтали тесты. Основа матрицы формируется из тестов в состояниях "авария", "предупреждение" и "данные не поступают длительное время". Остальные пересечения, если они имеются, заполняются своими текущими состояниями. Эта идея была заимствована из Big Brother. В Xymon она была дополнена ещё несколькими состояниями и двойными иконками, которые используются для отображения кратковременного и долговременного состояния: иконка состояния меняется, если состояние не менялось больше суток. Тесты могут быть отключены на произвольное время, кроме того, можно настроить отключение тестов по расписанию.
Особенности сборки в ALT Linux
За основу пакета был взят src.rpm c terabithia.org с большим набором патчей. Отличия первой сборки для ALT Linux от пакета Japheth Cleaver можно посмотреть на git.alt. В основном, это касается отделения web-части от подпакета xymon и объединения общих файлов исходных подпакетов (xymon и xymon-client) в подпакет xymon-common.
Архитектура
Система мониторинга имеет клиент-серверную архитектуру. При этом, xymon-сервер выполняет сетевые тесты (ping, ssh, telnet и т.п.), xymon-клиент - локальные (проверка журналов, проверка доступного места на разделах, ослеживание загрузки и т.п.), то есть, при установке сервера, ставится и клиентская часть, но с видоизменённой конфигурацией. Если есть необходимость выполнения сетевых тестов не с основного сервера, на таком хосте следует ставить серверный вариант (пакет xymon), если интересны только локальные тесты, можно обойтись пакетом xymon-client. xymon-client, посредством xymonclient.sh (который вызывает xymonclient-<os>.sh), собирает информацию о системе и отправляет собранную информацию на сервер. Те из серверных инсталляций, которые должны обеспечивать отображение состояния через web-интерфейс, дополнительно должны содержать пакет xymon-web.
Установка и настройка
Установка сервера c web-интерфейсом
Данный пакет есть в зависимостях пакета с конфигурацией web-сервера, так что, в отдельной установке смысла нет. Но, тем не менее:
apt-get install xymon-web
после установки надо активировать и запустить сервис:
chkconfig xymon on service xymon start
настройка Apache 2.x
apt-get install xymon-apache2
конфигурационный файл окажется в каталоге /etc/httpd2/conf/addon.d/. Править по вкусу, можно, например, убрать авторизацию и сделать доступ по спискам IP-адресов.
Установка сервера-коллектора
Данный вариант рассматривается, как клиент с расширенным функционалом.
apt-get install xymon chkconfig xymon on service xymon start
Установка клиента (Linux)
apt-get install xymon-client chkconfig xymon-client on service xymon-client start
Известные проблемы
Слишком большой размер msg-файла клиента
xymon-клиент собирает информацию о хосте в файл /dev/shm/msg.$MACHINEDOTS.txt (MACHINEDOTS, как правило, имя хоста, хотя и может быть переопределено). Сервер имеет ограничение на размер принимаемого файла, однако, в некоторых случаях, этот файл может принимать очень большой размер. Например, при большом количестве сетевых интерфейсов, или при большом количестве маршрутов (например, если хост является маршрутизатором с BGP). Необходимость сбора статистики по интерфейсам и маршрутам можно отключить посредством определения соответствующих переменных в /etc/sysconfig/xymon-client (патч добавлен в 4.3.10-alt2)
Переименование теста
Cобственно, переименовать тест просто:
$ xymon 127.0.0.1 "rename some.host.name oldname newname"
Также необходимо поменять some.host.name в конфигурационном файле hosts.cfg.
При этом, так же, надо поменять значение соответствующей переменной в тестирующем скрипте. Танцы с бубном начинаются, если надо сменить только регистр в имени теста:
$ xymon 127.0.0.1 "rename some.host.name mytest MyTest"
Xymon пытается сохранить исходное имя с завидным упорством. Данные по тестам MyTest, myTEst и т.п. собираются под исходным именем mytest. Найденный способ переименования такой. Во-первых, надо отключить все источники информации по данному тесту. Далее, надо выполнить на сервере:
$ xymon 127.0.0.1 "xymondboard test=mytest fields=hostname" |\ while read H; do xymon 127.0.0.1 "rename $H mytest MyTest" done $ xymon 127.0.0.1 "xymondboard test=mytest fields=hostname" |\ while read H; do xymon 127.0.0.1 "drop $H mytest" done $ sudo service xymon restart
После этого можно запускать тесты с новым именем. То есть, получается, что запущенный Xymon помнит про старое имя до перезапуска и хранит остатки старых тестов. Если хоть что-то останется, вновь пришедшая информация будет записана под именем в старом написании.