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.
Установка и настройка
Пакет использует каталог /dev/shm. Проверьте наличие этого каталога. Его может создавать udev, либо он может быть описан в fstab примерно так:
shmfs /dev/shm tmpfs nosuid,noexec,nodev,size=1G 0 0
Символ # в hosts.cfg является признаком комментария, если находится в начале строки, но в описании хостов он является разделителем описания хоста и набора тестов. При этом xymon игнорирует неопознанные тесты, что даёт возможность использовать этот файл для указания собственных тестов.
Установка сервера c web-интерфейсом
Данный пакет есть в зависимостях пакета с конфигурацией web-сервера, так что, в отдельной установке смысла нет. Но, тем не менее:
apt-get install xymon-web
Веб-часть каждый раз формируется заново, потому хорошей идеей будет разместить её на tmpfs. Допишите в fstab строку:
tmpfs /var/www/xymon tmpfs nosuid,noexec,nodev,size=15M,uid=xymon,gid=xymon,mode=775 0 0
Не забудьте примонтировать:
mount /var/www/xymon
После установки надо активировать и запустить сервис:
chkconfig xymon on service xymon start
В случае необходимости отчётов разрешите запись для группы в /var/cache/xymon:
chmod g+w /var/cache/xymon
настройка Apache 2.4+
apt-get install xymon-apache2 a2enmod cgi authn_core authz_core access_compat a2enextra httpd-addon.d
конфигурационный файл окажется в каталоге /etc/httpd2/conf/addon.d/. Править по вкусу. Можно, например, убрать авторизацию (секция RequireAll) и сделать доступ по спискам IP-адресов. Надо поменять httpd-addon.d=no на httpd-addon.d=yes в /etc/httpd2/conf/extra-start.d/010-httpd-addon.d.conf, иначе addon.d отключится при обновлении Apache. Доступ по url вида http://hostname/xymon
Активируйте и запустите Apache:
chkconfig httpd2 on service httpd2 start
Установка сервера-коллектора
Данный вариант рассматривается, как клиент с расширенным функционалом.
apt-get install xymon chkconfig xymon on service xymon start
Установка fping
Тест conn выполняется посредством fping. Его надо установить, после чего произвести настройку доступа.
apt-get install fping
Доступ переключается утилитой control, доступные варианты public, netadmin и restricted. При выборе netadmin следует добавить пользователя xymon в эту группу.
control fping netadmin usermod -G netadmin xymon service xymon restart
Установка клиента (Linux)
apt-get install xymon-client chkconfig xymon-client on service xymon-client start
Имя клиента должно быть добавлено в файл /etc/xymon/hosts.cfg сервера. При этом имя может не быть FQDN, но должно точно соответствовать тому, что задано в переменной MACHINEDOTS в файле /etc/sysconfig/xymon-client. При установке xymon-client переменная заполняется значением `hostname`. IP-адрес сервера указывается тут же, в переменной XYMONSERVERS.
Известные проблемы
Слишком большой размер msg-файла клиента
xymon-клиент собирает информацию о хосте в файл /dev/shm/msg.$MACHINEDOTS.txt (MACHINEDOTS, как правило, имя хоста, хотя и может быть переопределено). Сервер имеет ограничение на размер принимаемого файла, однако, в некоторых случаях, этот файл может принимать очень большой размер. Например, при большом количестве сетевых интерфейсов, или при большом количестве маршрутов (например, если хост является маршрутизатором с BGP). Необходимость сбора статистики по интерфейсам и маршрутам можно отключить посредством определения соответствующих переменных в /etc/sysconfig/xymon-client (патч добавлен в 4.3.10-alt2). Значение по умолчанию 102400b, в сборке в ALT увеличено до 4194303b.
Переименование самодельного теста
Cобственно, переименовать тест просто:
$ xymon 127.0.0.1 "rename some.host.name oldname newname"
При этом, так же, надо поменять значение соответствующей переменной в тестирующем скрипте. Танцы с бубном начинаются, если надо сменить только регистр в имени теста:
$ 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 помнит про старое имя до перезапуска и хранит остатки старых тестов. Если хоть что-то останется, вновь пришедшая информация будет записана под именем в старом написании.