Мониторинг серверов с помощью ZabbixДумаете, создание больших служб мониторинга - утомительное занятие? Как бы не так, если вы выбрали Zabbix. С ним можно быстро и легко поднять мониторинг больших систем.
Zabbix (
Хотя рекомендуется устанавливать Zabbix из репозитория вашего дистрибутива Linux, но я соберу Zabbix версии 1.8.1 из исходников на Ubuntu 9.10, для серверной платформы, а бэкендом будет MySQL. Также покажу вам, как настроить Linux-клиента с базовыми функциями мониторинга Zabbix. Программные требованияПеред тем, как собирать Zabbix из исходников, требуется установить необходимые пакеты: shell> sudo apt-get install mysql-server apache2 ?libapache2-mod-php5 php5-mysql php5-gd ?libmysqlclient15-dev libsnmp-dev libiksemel-dev ?libcurl4-gnutls-dev Если устанавливаете через графический менеджер пакетов, то имена пакетов - mysql-server, apache2, libapache2-mod-php5, php5-mysql, php5-gd, libmysqlclient15-dev, libsnmp-dev, libiksemel-dev и libcurl4-gnutls-dev. УстановкаКак сервер, так и клиент Zabbix работает от имени пользователя zabbix, поэтому для начала создадим этот аккаунт: shell> sudo useradd -s /bin/true zabbix Теперь, создадим базу данных: shell> mysql -u<username> -p<password> mysql> create database zabbix; mysql> quit;
Скачайте исходный код с официального сайта shell> sudo tar zxvf zabbix-1.8.1.tar.gz shell> cd zabbix-1.8.1/create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql | mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix Чтобы скомпилировать сервер, перейдите (с помощью cd) в корень распакованного каталога с исходными кодами zabbix-1.8, и выполните следующую команду. В этой команде мы задействуем поддержку MySQL, SNMP и Jabber в нашем собираемом сервере: shell> ./configure --enable-server --with-mysql --with-net-snmp ?--with-jabber --with-lib-curl shell> sudo make install Рекомендую для клиентов делать статическую сборку. Это упрощает установку клиентов на различных версиях Linux. Команда make install собирает и устанавливает бинарный файл сервера zabbix_server, но не агента. Чтобы собрать клиентский бинарник, перейдите в каталог zabbix-1.8.1/src/zabbix_agent, и выполните еще раз make install. Агент будет установлен в каталог /usr/local/sbin — туда же, куда и сервер: shell> ./configure --enable-agent --enable-static shell> cd src/zabbix_agent shell> sudo make install Итак, мы собрали два бинарных агентских файла: zabbix_agentd и zabbix_agent. Последний предназначен для запуска агента из суперсервера, такого как inetd, а первый сам работает как демон. Рекомендуется использовать zabbix_agentd. Настройка сервера и клиентаZabbix хранит по отдельности настройки сервера и клиента. Примеры конфигурационных файлов лежат в каталоге zabbix-1.8.1/misc/conf. Создайте каталог /etc/zabbix, смените владельца на пользователя zabbix и скопируйте файлы zabbix_server.conf и zabbix_agentd.conf в этот каталог. Нужно сделать совсем немного изменений в конфигурационные файлы, к тому же они очень хорошо самодокументированы. Главное, что нужно изменить, это два параметра в клиентском конфиге zabbix_agentd.conf, в строках Server= и Hostname=. Первый параметр задает адрес сервера, с которым нужно взаимодействовать, а второй определяет имя хоста клиента.
Еще в серверном конфиге zabbix_server.conf нужно поменять параметры DBUser и DBPassword, и скорее всего, больше ничего не потребуется. Если хотите произвести более тонкую настройку, обратитесь к
Инициализационные скриптыВ каталоге zabbix-1.8.1/misc/init.d расположено несколько примеров инициализационных скриптов. Скопируйте один из них в /etc/init.d и внесите соответствующие изменения. К примеру, для своей Ubuntu я взял скрипт из каталога debian. Как в серверном, так и в клиентском конфигурационных файлах мне пришлось изменить расположение бинарных файлов, с /home/zabbix/bin на /usr/local/sbin. Веб-интерфейс ZabbixКаталог zabbix-1.8.1/frontends/php содержит веб-интерфейс к Zabbix. Скопируйте эту структуру каталогов, например, в DocumentRoot веб-сервера Apache, и откройте соответствующий URL-адрес в своем веб-браузере. Перед вами должно открыться окно Zabbix Introduction (скриншот 1). Этот мастер проверит наличие всех необходимых зависимостей (время выполнения PHP, требования по памяти и т.п.), покажет лицензионное соглашение и проведет вас через все остальные шаги настройки сервера Zabbix. Скриншот 1. Окно Zabbix Introduction По завершении конфигурации системы отобразится окно логина. По умолчанию имя пользователя - Admin с паролем zabbix. Конечно, сразу после входа вам нужно поменять этот пароль. Панель веб-интерфейса состоит из двух рядов (см. скриншот 2). Скриншот 2. Панели веб-интерфейса Выберите Administration, затем Users. Теперь справа в выпадающем списке выберите Users вместо User Groups. Щелкните по пользователю admin. Отобразится страница настройки пользователя Admin (см. скриншот 3). Сначала поменяйте пароль. Также нужно прописать правильный адрес e-mail (нажмите кнопку Add рядом с надписью Media), потому что в дальнейшем мы настроим оповещения на этот адрес. Скриншот 3. Страница настроек пользователя Admin Добавляем клиентаНа клиентскую машину нужно скопировать три файла: клиентский исполняемый файл zabbix_agentd в /usr/sbin, конфигурационный файл zabbix_agentd.conf в /etc/zabbix и скрипт инициализации. Отредактируйте как того требуется zabbix_agentd.conf, в частности присвойте параметру Server= адрес вашего Zabbix-сервера, а параметру Hostname= - имя этой машины. После этого можно запустить Zabbix-агента через скрипт. Вернитесь на веб-страницу Zabbix-сервера и выберите на панели Настройка (Configuration) > Узлы сети (Hosts). Теперь справа вверху нажмите кнопку Создать узел сети (Create Host). Появится экран Конфигурация узлов сети (Hosts configuration screen, см. скриншот 4). Можно задать вашему хосту любое имя, но я рекомендую оставить короткое имя хоста (то, которое выдается командой hostname -s), а не полное доменное имя. Добавьте хост в группу Linux servers, а в поле DNS имя (DNS name) запишите полное доменное имя. Можно, конечно, выбрать мониторинг по IP-адресу, но я верю, что мой DNS всегда будет работать правильно. Последнее, что нужно сделать на этом экране - это нажать кнопку Добавить (Add) в секции Соединенные шаблоны (Linked templates). Отметьте галочкой Template_Linux и нажмите Выбрать (Select) в нижней части этого выпадающего окна. Вернувшись на экран Конфигурация узла сети, нажмите Сохранить (Save). На вашем клиенте будут мониториться все элементы данных и триггеры, которые присутствуют в шаблоне Template_Linux. Скриншот 4. Конфигурация узлов сети Структура мониторинга Zabbix начинается с Элементов данных (Items), они проверяют либо собирают данные. Затем идут триггеры (они отслеживают данные, храняющиеся в Элементах данных), а завершается цепочка Действиями (Actions) - e-mail, SMS или выполнение внешних скриптов. Элементы данных (Items)Элементы данных можно назвать "собирателями данных". Некоторые элементы данных уже встроены в бинарный файл агента, другие представляются пользовательскими скриптами. Сразу после установки Zabbix, вы сможете использовать большой набор всевозможных шаблонов, содержащих в себе элементы данных для проверки систем Linux, Solaris, MAC OS X и Windows. Давайте взглянем на шаблон, который мы использовали с нашим первым клиентом. Введите "Template_Linux" в поле Поиск в правом верхнем углу веб-интерфейса. В результатах поиска вы увидите страницу со ссылками на Группы элементов данных, Элементы данных, Триггеры и Графики (Item Groups, Items, Triggers и Graphs) этого шаблона (см. скриншот 5). Нажмите на ссылку Элементы данных. Все эти элементы данных мониторятся на любом хосте, к которому применен шаблон Template_Linux. Скриншот 5. Шаблон Template_Linux Щелкните по элементу данных под названием Free disk space on /. Вы увидите подробности этого элемента данных (см. скриншот 6). Значение большинства полей интуитивно понятно. Самые важные среди них:
Скриншот 6. Элемент данных Free disk space on / Также можно указать Zabbix'у, каков тип возвращаемых данных: текстовый, символьный или числовой, а также множитель для возвращаемого значения. Также вы можете указать, как долго будут сохраняться исторические данные и динамику изменений. В секции Группы элементов данных можно сгруппировывать схожие по смыслу проверки. К примеру, добавив элемент данных для проверки свободного места в другой точке монтирования, вы логично сможете добавить его в группу элементов данных Filesystem. Triggers (Триггеры)Щелкните по ссылке Триггеры (Triggers) в глобальных результатах поиска (скриншот 5). Триггер Zabbix отслеживает значения Элементов данных. Если значение превышает предопределенный порог, тогда ему назначается один из шести уровней важности. На скриншоте 7 отображены триггеры шаблона Template_Linux. Здесь отображены: уровень важности, статус, имя и выражение, которые, собственно, и составляет суть триггера. Скриншот 7. Триггеры шаблона Template_Linux Щелкните на триггере Low free disk space on Template_Linux volume /, и вы увидите окно Настройка триггеров (Configuration of Triggers) (см. скриншот 8). Скриншот 8. Окно Настройка триггеров Первое поле Имя (Name) должно описывать суть проблемы. К примеру, предложение "IMAP порт не отвечает на сервере123" вносит гораздо больше ясности, чем "Почта упала". Это тот текст, который вы захотите увидеть в электронном письме, на странице Zabbix или в SMS-сообщении, поэтому позаботьтесь о его ясности и информативности. Поле Выражение (Expression) содержит имя наблюдаемого Элемента данных и граничное значение. К примеру, в данном случае выражение {Template_Linux:vfs.fs.size[/,pfree].last(0)}<10", что означает отслеживать машину с именем Template_Linux и его ключ vfs.fs.size[/,pfree]. Если последнее значение окажется меньше 10, тогда назначить триггеру важность Высокая (High). Нажмите Выбрать (Select). Здесь вы можете сменить выражение, по которому срабатывает триггер. Можно работать со средними, абсолютными значениями или максимальным значением за определенный период времени. Сейчас, однако, я оставлю триггер как есть, изменю лишь значение, по которому он срабатывает. Поэтому закрываем всплывающее окно Условие (Condition) и меняем граничное значение на 5% - изменяем в конце строки число 10 на 5. Сохраним изменения, нажав кнопку Сохранить (Save). Действия (Actions)Действия происходят при срабатывании триггера. Действием может быть сообщение электронной почты, SMS- или Jabber-сообщение, либо запуск внешнего скрипта. Давайте настроим отправку e-mail администратору (т.е. нам) в случае срабатывания любого триггера с важностью Чрезвычайная (Disaster). Выберите Настройка > Действия (Configuration > Actions), потом нажмите кнопку Создать действие (Create Action) в правой верхней части экрана. Появится окно Настройка действий (Configuration of Actions, см. скриншот 9). Введите в поле Имя (Name) что-нибудь информативное и нажмите кнопку Новый (New) в секции Условия действия (Action conditions). Выберите Важность триггера (Trigger severity) из появившейся секции Новое условие (New Condition) и поменяйте его значение с Информация (Information) на Чрезвычайная (Disaster). Нажмите кнопку Добавить (Add). Потом нажмите кнопку Новая (New) в другой секции - Операции действия (Action operations). Настройте отправку сообщений одному администратору Admin (см. скриншот 10). Нажмите Добавить (Add). Наконец, нажмите кнопку Сохранить (Save). Теперь при срабатывании любого триггера, важность которого установлена как Чрезвычайная, пользователю Admin будет отправлено электронное письмо. Можно создавать действия для отдельных триггеров и для отдельных хостов, а действие, которое мы только что создали, действует глобально. Не забывайте, что это всего лишь пример. Скриншот 9. Окно Настройка действий Скриншот 10. Настраиваем операции Ежедневный мониторингЕсть множество способов наблюдать за настроенными клиентами. По моему мнению, наиболее информативным окном является Мониторинг > Триггеры (убедитесь в том, что в выпадающих меню справа Группа (Group) и Узел сети (Host) выбрано все (all). В этом окне Zabbix показывает все активные триггеры, их уровень важности, дата последнего изменения (Возраст) и другие поля. Это окно можно рассматривать как список незавершенных дел системного администратора. Paul Tader - независимый консультант по внедрению решений с открытым исходным кодом в Чикаго, где он занимается настройкой Linux и BSD с середины 90-х, а также преподает на курсах сертфикации Linux в местном колледже. Не стесняйтесь писать письма Полу на адрес [email protected]
Статью перевел Александр Тарасов. Работает системным администратором одной барнаульской фирмы. Увлекается отказоустойчивыми системами, а также футболом. Ведет личный блог Эта статья еще не оценивалась Вы сможете оценить статью и оставить комментарий, если
войдете или зарегистрируетесь.Только зарегистрированные пользователи могут оценивать и комментировать статьи. |