The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка Zabbix 1.4.x c нуля (zabbix monitoring)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: zabbix, monitoring,  (найти похожие документы)
From: Andrew Jelly <ajelly@gmail.com.> Newsgroups: email Date: Mon, 30 Aug 2008 18:21:07 +0000 (UTC) Subject: Установка Zabbix 1.4.x c нуля Тут речь пойдет об установке Zabbix версий 1.4.x (поскольку версии 1.3.x не актуальны, а 1.5 находится в бете, и возможно, подойдет не всем). Небольшое лирическое отступление Прежде всего, почему именно Zabbix? Если говорить коротко - то потому, что эта система написана так, как я написал бы её сам. Имеется ввиду как архитектура, так и выбор языков/инструментов. В свое время я уже собирался делать что-то свое на коленке, но по счастью обнаружил Zabbix (с большим трудом, поскольку он слабо раскручен в поисковиках). Зачем вообще нужна эта система? Попросту говоря - мониторить сервера и устройства. Но мониторинг - понятие многозначное. Для мониторинга доступности я (да и многие другие) с успехом пользуюсь Nagios и пр. Мне нужен был не только (и не столько даже) мониторинг доступности, сколько мониторинг нагрузки и производительности, а также сбор статистики. И Zabbix для этой задачи идеально (IMHO) подходит. Как устроена эта система? * Имеется сервер, собирающий данные с клиентов и кладущий их в базу данных (MySQL, Postgres, etc) * Имеются агенты, работающие на удаленных машинах, и отдающие данные по запросу сервера (или по своей инициативе) * Имеется наконец front end на PHP который рисует красивые графики и позволяет настроить все это хозяйство (что собственно мониторить) Как видим, архитектура простая и понятная. Кроме того, имеются важные (с моей точки зрения) особенности: * Zabbix может работать без всякого SNMP и MIB (но может и с ним (если вы не разделяете мою ненависть к этому протоколу)) * Zabbix (как сервер так и агент) полностью написан на С, без всякого Perl-а и других птичьих языков (впрочем - вы можете это изменить) * Zabbix имеет отличный (хоть и глючноватый местами) front end на PHP, т.е. легко укладывается в рамки LAMP. Вот пожалуй и все, что я хотел отметить в лирическом отступлении (мнение автора может не совпадать с мнением редакции). Установка агента Вопреки традиции, начну с установки агента, ибо она проще и меньше зависит от версии. Разумеется, рассматривается установка из исходников. Если вас интересуют другие варианты (порой, находятся любители rpm), то неплохую описанку установки под Gentoo я видел тут. Данная инструкция создана на базе этого документа. Если вам ближе английский язык - используйте его. Итак, предположим вы уже скачали архив c Zabbix (из download). Далее выполняем: tar -xvzf zabbix-1.4.tar.gz cd zabbix-1.4/ ./configure --enable-agent make sudo make install Ну вот, если все собралось - самое трудное позади. Попробуем запуститься: /usr/local/bin/zabbix_agent -p И получаем /usr/local/bin/zabbix_agent [578]: Cannot open config file [/etc/zabbix/zabbix_agent.conf] [No such file or directory]. Не удивительно. Мы забыли создать конфигурационные файлы! Скопируем их. sudo bash mkdir /etc/zabbix cd misc/conf/ cp zabbix_agent.conf /etc/zabbix cp zabbix_agentd.conf /etc/zabbix Разумеется, одного копирования мало. Надо подправить конфигурацию под наши нужды. Я рассмотрю сценарий запуска из под inetd. В ранних бетах мне никак не удавалось запустить stand alone агента, и я забросил эти попытки. Поскольку своего позитивного опыта у меня нет, то утомлять читателя пересказом было бы не совсем честно. Сначала файл **zabbix_agent.conf** # Тут пишем адрес сервера, с которого разрешено принимать запросы Server=192.168.1.86,192.168.1.82 # Таймаут на обработку запроса в секундах Timeout=3 ####### USER-DEFINED MONITORED PARAMETERS ####### # Пользовательские параметры. Самое важное, если вам недостаточно # параметров собираемых агентом самостоятельно. # Опыт показывает, что их всегда недостаточно :) UserParameter=system.test,who|wc -l Может показаться, что этого достаточно, но у меня бывали проблемы, если не заполнен список серверов в файле для активного агента. Посему, поправим и его (**zabbix_agent.conf**): # This is config file for zabbix_agentd # To get more information about ZABBIX, go http://www.zabbix.com ############ GENERAL PARAMETERS ################# # List of comma delimited IP addresses (or hostnames) of ZABBIX servers. # No spaces allowed. First entry is used for sending active checks. # Note that hostnames must resolve hostname->IP address and # IP address->hostname. Server=192.168.1.86,192.168.1.82 # Server port for sending active checks #ServerPort=10051 # Unique hostname. Required for active checks. Hostname=zabbix.lan # Listen port. Default is 10050 #ListenPort=10050 # IP address to bind agent # If missing, bind to all available IPs #ListenIP=127.0.0.1 [skip...] Я не привожу этот файл полностью, поскольку он нам не очень интересен, и, кроме того, легко изучаем. Ну, теперь мы наконец сможем запустить агент? /usr/local/bin/zabbix_agent -p Ура! agent.ping [u|1] agent.version [s|1.4] system.localtime [u|1182157630] system.run[echo test] [m|ZBX_NOTSUPPORTED] ... Что-то работает. Агент выведет список поддерживаемых им параметров. Их должно быть около 50. Теперь попробуем доступиться к агенту удаленно. Для этого необходимо внести его в config inetd (в нашем случае - xinetd). Создаем файл **/etc/xinetd.d/zabbix** service zabbix_agent { port = 10050 socket_type = stream wait = no user = zabbix server = /usr/local/bin/zabbix_agent log_on_failure += USERID disable = no } Перезапустим xinetd... /etc/init.d/xinetd restart и воспользуемся специальной утилитой которая имеется в комплекте. С её помощью можно запросить значение любого параметра у агента. /usr/local/bin/zabbix_get -s192.168.1.82 -k"system.test" Получаем connection refused. Почему? Потому, что нужно добавить пользователя zabbix и поправить **/etc/services**! useradd zabbix -d /dev/null -s /sbin/nologin в файл **/etc/services** пишем zabbix_agent 10050/tcp zabbix_trap 10051/tcp После этого еще раз рестартуем xinetd. И пробуем доступиться к агенту: /etc/init.d/xinetd restart /usr/local/bin/zabbix_get -s192.168.1.82 -k"system.test" Если все сделано правильно будет напечатано некое число, например 1. Это означает что агент настроен и работает! Установка сервера Сервер Zabbix - ключевой элемент в системе, однако его установка (обычно) довольно проста. Прочесть официальную документацию о ней можно тут. Если на машине где бежит сервер еще не установлен agent (т.е. это выделенная машина) проделаем ряд операций общих для обоих: Далее, не забываем: useradd zabbix -d /dev/null -s /sbin/nologin в файл **/etc/services** пишем zabbix_agent 10050/tcp zabbix_trap 10051/tcp Затем разворачиваем архив: tar -xvzf zabbix-1.4.2.tar.gz cd zabbix-1.4.2 запускаем configure предварительно установив все, что может понадобиться серверу. А это прежде всего интерфейс базы данных (MySQL, Postgres или Oracle). Заметим, что сама база может стоять и на другой машине, равно как и front end. Главное чтоб имелась библиотека, например libmysqlclient. ./configure --enable-server --with-mysql make sudo make install В большинстве случаев - сервер успешно соберется. Однако, может оказаться, что в Makefile отсутствует та или иная библиотека (замечалось в 1.4) В этом случае, нужно пойти в Makefile того модуля, который не смог собраться, и добавить библиотеку руками. Например: LIBS = -lm -lresolv -lnsl Однако, в версии 1.4.2, на примере которой мы обсуждаем установку, подобных проблем не возникло. Обратите внимание! Мы собираем сервер без поддержки SNMP. Если она вам необходима, добавьте опцию '--with-net-snmp' После чего копируем cp misc/conf/zabbix_server.conf /etc/zabbix/ и правим файл zabbix_server.conf. Содержимое может быть, например, таким (оставлены только необходимые параметры): ListenPort=10051 SenderFrequency=30 DebugLevel=3 Timeout=5 # Name of PID file PidFile=/var/tmp/zabbix_server.pid # Name of log file # If not set, syslog is used LogFile=/tmp/zabbix_server.log # Location for custom alert scripts AlertScriptsPath=/home/zabbix/bin/ # Database host name # Default is localhost DBHost=192.168.1.82 # Database name # SQLite3 note: path to database file must be provided. DBUser and DBPassword are ignored. DBName=zabbix # Database user DBUser=zabbix # Database password # Comment this line if no password used DBPassword=my_mega_password # Connect to MySQL using Unix socket? #DBSocket=/tmp/mysql.sock Внимание! В нашем примере база данных находится на другом хосте, и связь с MySQL идет по TCP, что не обязательно. Создание базы данных База данных необходима как для работы front end-а так и для работы сервера Есть несколько путей для ее создания, воспользуйтесь любым, привычным вам. Руководство предлагает: shell> mysql -u<username> -p<password> mysql> create database zabbix; mysql> quit; shell> cd create/mysql shell> cat schema.sql |mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql |mysql -u<username> -p<password> zabbix shell> cat images.sql |mysql -u<username> -p<password> zabbix Я всегда делаю эти операции через phpMyAdmin, но это не догма. После создания базы можно наконец запустить сервер, предварительно скопировав в init.d подходящий для вашей системы script. В моем случае это gentoo: cp misc/init.d/gentoo/zabbix-server /etc/init.d/ Финальный аккорд: /etc/init.d/zabbix-server start Если все хорошо, то в файле /tmp/zabbix_server.log вы увидите что-то вроде: 6055:20071019:143300 Starting zabbix_server. ZABBIX 1.4.2. 6055:20071019:143300 **** Enabled features **** 6055:20071019:143300 SNMP monitoring: NO 6055:20071019:143300 WEB monitoring: YES 6055:20071019:143300 Jabber notifications: NO 6055:20071019:143300 ************************** Работа с Web-интерфейсом Итак, система заработала. Но пока она еще ничего не мониторит. Действительно, настройку мы делаем один раз, а ежедневное использование системы сводится к просмотру графиков нагрузки, добавлению хостов, отслеживанию параметров, и борьбе с головной болью. Чтобы адекватно настроить zabbix нам придется понять, какими сущностями он оперирует при сборе и анализе данных. Сущностей не так уж много. * Хосты (hosts) * Показатели (items) * Триггеры (triggers) * Акции (actions) * Графики (graphs или charts) * Экраны (screens) Итак, какова же иерархия этих сущностей? Очень простая: на хостах контролируются определенные показатели. Иногда, когда они переходят заданную границу срабатывают триггеры, что вызывает собой акции. Кроме того, рисуются графики показателей. Один или несколько графиков можно обьеденить в экран. Вот и все (на самом деле, есть достаточно много второстепенных сущностей, но для простоты я их опущу). С чего начинается <del>родина</del> конфигурация мониторинга сервера? Разумеется, с определения хоста (я надеюсь, вы уже активировали account администратора, и залогинились в zabbix (все операции описанные ниже надо делать в меню конфигурации)). hosts Здесь задается имя, группа, IP адрес или доменное имя, порт агента, статус и template (грубо говоря - схема сбора данных). Задав все эти параметры, можно переходить к показателям (items). items Нет ничего проще - показателем может быть любой системный параметр, значение которого может вычислить zabbix-агент. Показатель может быть как "встроенным" (например обьем свободной памяти, загрузка CPU) так и пользовательским; например, количество транзакций вашего Postgres за последнюю минуту, или даже текущее настроение вашей девушки (если конечно вы научите агента его определять). При создании показателя можно указать достаточно много параметров, важнейшие из которы: тип, интервал обновления, приложение (CPU, Memory, Filesystem) и группа. Интервалы можно задавать весьма гибко, но мы обойдем этот момент. Дальше идут триггеры. triggers это чуть сложнее, но тоже не бином Ньютона. Триггер взводится, если какой-то из показателей перешел через граничное значение. Например, обьем свободной памяти опустился ниже 100 Mb. actions При взводе триггера, иногда бывает полезно выполнить определенное действие, сиречь - акцию. К примеру - послать письмо админу, или что-то в этом роде. Впрочем, желательно, чтобы триггеры на наших серверах срабатывали как можно реже. Наконец, мы переходим к самым часто используемым сущностям. Это графики и экраны. Графики zabbix рисует как бог (правда, при масштабировании по времени порой происходят непонятные вещи). graphs Чтобы увидеть график, надо задать его имя, размеры для отрисовки, и показатель, который мы хотим отобразить. Для показателя задается дополнительно цвет и вид заливки (только линия, залитый регион, etc). На самом деле, на одном графике может быть сведено несколько показателей, но я не советую добавлять больше двух, т.к. это не повысит информативность графика. Для анализа нескольких показателей следует воспользоваться экранами (screens). screens Конфигурация экрана очень проста. Это количество его строк и колонок. Когда экран создан, надо ткнуться в любую ячейку, и указать график, который мы хотим там видеть. Понятно, что для гармоничного отображения, желательно подобрать графики одинакового размера. После того, как все необходимые графики и экраны созданы, можно переходить из меню конфигурации в меню мониторинга. Здесь мы можем лицезреть наши родные графики graphs и конечно, экраны screens Каждый график можно проматывать во времени, а также менять масштаб временной оси (1 час, 8 часов, сутки, неделя, месяц, год). А их красота и информативность зависят только от вашей ловкости рук. Какие тонкие моменты имеются при работе с web-UI? Почти никаких. Единственная неочевидная порой вещь - почему график того или иного параметра девственно чист? Обычно - причина проста. Отвалился монитор (или сам хост) а нотификация об этом не настроена, или же скрипт, поставляющий значения параметра содержит ошибку, и не выдает нормальное значение. Отсюда вытекает простое практическое правило: добавив или изменив определенный параметр, подождите несколько минут, и убедитесь, что он корректно обновляется на графиках.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, xio (?), 10:52, 08/09/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошо и полезно написано, спасибо
     
  • 1.2, kay (ok), 15:46, 08/09/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пока использую munin, т.к. он наиболее прост в установке. но попробую и zabbix.
     
  • 1.3, Foblas (?), 19:01, 10/09/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошо, что агенты есть под многие системы, включая винду
     
     
  • 2.4, Andrew Jelly (?), 16:57, 17/09/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Да, это правда. Хотя мониторить винду - отдельное искуйство :)
     

  • 1.5, pupkin_vasya (?), 17:59, 21/10/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх голову сломал, оф. доку покурил. Поставил все из rpm на Fedora 7, версии 1.4.4.
    yum install zabbix zabbix-agent zabbix-web
    Запустился сервер и агент, а форонтенд найден не был ни в /var/www/ ни где либо еще, кроме пустого /etc/zabbix/zabbix.conf.php. Буду очень благодарен, если подскажете куда копнуть.
     
     
  • 2.6, Andrew Jelly (?), 13:16, 05/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не скажу за седьмую Федору, но может быть глянуть что-то типа:
    rpm -qa | grep zabbix
    и потом, для пакета zabbix-web
    rpm -ql <имя пакета>

    Зная нрав Федоры, подозреваю установку в /usr/share/zabbix

     

  • 1.7, Максим (??), 16:40, 28/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    статья хорошая, спасибо! но я застрял на одном вопросе, как в заббиксе проверять логи?? к примеру /val/log/messages уже перерыл очень много но ответа на вопрос ни как не могу найти...
     
  • 1.8, unixER (?), 16:07, 09/12/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    устанавливал через дистфайлы Zabbix-php. Тока не врубился какогой там пароль?

    MyAdmin:
    --------*------------*--------*
    Alias  |  Name      | Passwd
    Admin  |  Zabbix    | (md5Hash)
    -------*------------************

    ??????

     
     
  • 2.9, n0name (??), 10:10, 17/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Пароль для юзера написан в мануале.
    Если не ошибаюсь, то это admin:zabbix
     

  • 1.10, nrg (??), 00:57, 12/01/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Admin | zabbix стандартные :)
     
  • 1.11, Vista (?), 18:47, 24/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На Suse 11.2 после установки попытался запустить - выдал:
    /opt/zabbix/bin/zabbix_server not installed!
    попытался из rpm - выдал:
    rpm -i zabbix-server-1.8.2-1.3.x86_64.rpm
    warning: zabbix-server-1.8.2-1.3.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID ee454f98
    error: Failed dependencies:
            zabbix_server_binary = 1.8.2-1.3 is needed by zabbix-server-1.8.2-1.3.x86_64
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру