English | Russian
Svrmon - fasted real-time server monitor

Внешний вид WEB интерфейса

Для мониторинга и диагностики серверов на платформе *nix существует достаточно много инструментов и средств, охватывающих практически весь спектр возможных задач. Поэтому svrmon не является уникальным в своем роде и всего лишь призван упростить задачу настройки системы мониторинга сети или клайстера из большого числа серверов.

Текущие возможности сервиса достаточно простые:

Так на рисунке справа показан внешний вид страницы монитора svrmon при заходе на него через WEB интерфейс - для 4х узлов сети с названиями q-server, mysql, hiasm.com и localhost выводится информация о загрузке процессора, доступной памяти и занятости диска с корневой файловой системой.

Установка монитора на сервере под управлением Linux

Для установки и запуска монитора на сервере (или даже рабочей станции) под управлением Debin base дистрибутивов достаточно подключить репозиторий с сайта hiasm.com:

echo 'deb http://deb.hiasm.com/ lucid devel' >> /etc/apt/sources.list
обновить список пакетов:
apt-get update
и установить пакет svrmon:
apt-get install svrmon
Для проверки работоспособности монитора достаточно открыть в браузере URL с адресом:
http://localhost:1718
Для установки монитора непосредственно из *.deb пакета необходимо скачать по адресу http://deb.hiasm.com/pool/devel/s/svrmon/ нужную версию и выполнить команду:
dpkg -i svrmon_x.x.x_xxx.deb
Для всех остальных систем нужно скачать бинарный архив одной из архитектур:
svrmon-amd64.tar.gz (550Kb)
svrmon-i686.tar.gz (551Kb)
и выполнить команды с правами рута:
tar -xf svrmon-xxx.tar.gz
./install.sh

Настройка master сервера для сборки данных с дочерних узлов

Необходимым условием создания master сервера является наличие установленного svrmon на всех дочерних серверах, с которых необходимо получать данные об их состоянии. Кроме того желательно устанавливать одну и туже версию пакета, т.к. формат выдачи данных может меняться.

После выполнения всех условий, указанных выше, необходимо открыть на будущем master сервере файл настроек дочерних узлов монитора, например, в редакторе nano:

nano /etc/svrmon/nodes.cfg
По умолчанию содержимое файла выглядит следующим образом:
# nodes list in format:   
127.0.0.1 localhost
т.е. он содержит только один узел, указывающий на локальный сервер. Для добавления внешних серверов необходимо перечислить каждый из них в отдельной строчке с указанием IP адреса и имени(имя может быть любым). Например, так:
127.0.0.1 localhost
10.10.1.1 myserver1
10.10.1.2 myserver2
10.10.1.3 myserver3
10.10.0.1 gate
10.10.0.2 nginx frontend

После сохранения списка узлов нужно перезапустить демон для вступления настроек в силу:
/etc/init.d/svrmon restart
Для проверки правильности настройки конфигурации узлов необходимо зайти по адресу:
http://localhost:1718/nodes
Настройка страниц

Монитор svrmon позволяет создать произвольное число страниц с нужным набором выводимых параметров и их форматированием. Для настройки страниц сайта необходимо открыть файл конфигурации pages.cfg

nano /etc/svrmon/pages.cfg
По умолчанию содержимое файла выглядит следующим образом:
/ root.html
/version version.html versions.html
/node node.html nodes.html
/data data.html
/os os.html oss.html offoff
Формат достаточно простой: первым идет адрес страницы, далее имя шаблона из папки /etc/svrmon/template/ для отображения параметров локального сервера(pagename), затем имя шаблона для страницы с параметрами всех узлов, перечисленных в nodes.cfg и последний параметр - шаблон, подставляемый вместо тела страницы недоступного в данный момент узла.

Для шаблонов локального сервера и связных узлов предоставляется два различных набора доступных для вывода на страницу параметров:

Шаблон опрашиваемых узлов
ИмяЗначениеСтатика
_{*
nodesхэш массив узлов-
@|node_nameимя текущего узла-
@|node_bodyсодержимое запрошенной страницы узла-
@|node_ipIP удрес текущего узла-
Шаблон локального сервера
ИмяЗначениеСтатика
_{*
cpu_idleпростой процессора(ов) в %-
cpu_loadзагрузка процессора(ов) в %-
ram_loadзагрузка памяти (с учетом кеша и буфера) в %-
ram_totalвсего памяти в байтах-
ram_freeвсего свободной памяти в байтах-
ram_bufferпамять занятая буферами в байтах-
ram_sharedразделяемая память в байтах-
root_loadзагрузка диска с корневой фс в %-
root_totalобъем диска с корневой фс в байтах-
root_freeсвободный объем диска с корневой фс в байтах-
root_availдоступный объем диска с корневой фс в байтах-
sys_load1загрузка система за последнюю минуту-
sys_load10загрузка система за последние 10 минут-
sys_load15загрузка система за последние 15 минут-
uptimeвремя работы сервера в секундах-
procsколичество запущенных процессов в системе-
os_verверсия и название дистрибутива*
hostимя локального хоста*
kernelверсия и тип ядра*
versionверсия svrmon*
scsiмассив серийных номеров дисковых накопителей*

* параметр "статика" означает вычесление значения только единожды при старте демона. Все не статические параметры обновляются с интервалом раз в секунду.

Примеры готовых шаблонов для страниц можно найти в папке /etc/svrmon/template/

Дополнительная информация

Монитор svrmon написан на языке Go для слежения за состоянием серверов домена hiasm.com ну и естественно для проверки данного творения Google в качестве основы для будущего пакета, который позволил бы и без того достаточно простую процедуру сборки приложения(на языке Go конечно же) сделать еще более простой, наглядной и доступной каждому. Из основных его достоинств можно отметить достаточно большое количество мощных инструментов, поставляемых сразу с компилятором, а так же высокую скорость процесса сборки программы (компиляция и линковка).

Поскольку описываемая в обзоре программа установлена на всех серверах домена, то любой посетитель имеет возможность увидеть действие монитора в боевых условиях, перейдя по следующей ссылке: http://mon.hiasm.com/cpu_logs

По всем вопросам о работе программы обращаться на форум или на почту официальной поддержки support@hiasm.com

create by dilma