Xymon

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Information.svg Полезные ссылки:
сводная панель аварий

Историческая справка

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
Примечание: Есть проблема с Firefox: altbug #37520; PaleMoon и Chromium работают, как ожидается

настройка 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 -aG 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 помнит про старое имя до перезапуска и хранит остатки старых тестов. Если хоть что-то останется, вновь пришедшая информация будет записана под именем в старом написании.