Мониторинг web сайта в zabbix

ZABBIX — Настраиваем мониторинг служб

Всем привет, часто возникает необходимость настроить мониторинг различные службы и всегда знать если что-то упало. В данной статье расскажу о том как настроить мониторинг служб по средствам Zabbix.<\p>

Создаём элемент данных

Для начала необходимо выбрать наш шаблон, к которому привязан интересующий нас узел сети, если его нет создаём, о том как создать шаблон можете прочитать тут: ZABBIX — Новый шаблон. В нашем случае шаблон у нас уже есть с привязанным к нему узлом сети. Переходим в «Настройка» -> «Шаблоны» -> Выбираем наш шаблон ->Выбираем «Элементы данных» и нажимаем кнопку «Создать элемент данных»

Zabbix-создаём элементы данных

Дальше необходимо вписать наши условия, оставляем все пункты по умолчанию, кроме «Имя» и «Ключ». Вписываем любое угодное нам имя и в поле ключ нажимаем «Выбрать»

Zabbix-Выбираем ключ

Ищем в списке ключ «proc.num[,,,]», выбираем его.

Вот что про данный ключ пишут в документации Zabbix-а:

proc.num[,,,]
Количество процессов. Целое число имя — имя процесса (по умолчанию “все процессы”)пользователь — имя пользователя (по умолчанию “все пользователи”)состояние — возможные значения: all (по умолчанию), run, sleep, zombcmdline — фильтр по командной строке (является регулярным выражением) Примеры ключей: ⇒ proc.num[,mysql] — количество процессов выполняемых под пользователем mysql ⇒ proc.num[apache2,www-data] — количество процессов apache2 выполняемых под пользователем www-data⇒ proc.num[,oracle,sleep,oracleZABBIX] — количество процессов в спящем состоянии выполняемых под oracle и имеющих oracleZABBIX в содержимом командной строкиСмотрите заметки по выбору процессов с параметрами имя и cmdline (специфика для Linux).В Windows, поддерживаются только параметры имя и пользователь.

Затем нам необходимо указать необходимые параметры для ключа. К примеру мы хотим настроить мониторинг демона под названием «sendsms», тогда ключ у нас будет таким:

Если нам необходимо настроить мониторинг служб с одинаковым названием, но в дальнейшем их мониторить по отдельности, то можно указать параметры таким образом:

proc.num[java,,,»config /home/devuser/production/kkt_java/kkt.forwarded.setter.conf»]

Мы передаём название демона и к примеру путь, откуда была запущена служба, что конкретизирует как раз нужную нам.

В нашем случае параметр будет таким:

proc.num[java,,,logstash]

Нажимаем «Обновить» и в списке появиться наш элемент данных.

Так же вы можете проверить правильно ли вы составили ключ, и будет ли он выдавать нужное нам значение, напрямую через консоль, командой:

zabbix_agent -t proc.num[java,,,logstash]

Zabbix-проверка правильности ключа

Должен вернуть количество найденных служб.

Так же после создания элемента данных можно проверить, что возвращается в консоли Zabbix, необходимо перейти во вкладку «Мониторинг»->»Последние данные», там найти нужный элемент и посмотреть значение.

Создаём триггер

Дальше нам необходимо создать триггер, который будет нам сообщать о проблемах. Для этого переходим во вкладку «Триггеры» и нажимаем «Создать триггер»

Zabbix-создаём триггер

В открывшемся окне необходимо вписать имя, выбрать важность триггера и выражение. С названием всё думаю понятно, с важностью тоже, необходимо указать выражение. Необходимо нажать кнопку «Добавить», в окне нажать «Выбрать»

Zabbix-настраиваем триггер

Выбираем из списка наш шаблон или узел сети к которому он привязан. Дальше в условии триггера выбираем функцию, например последнее полученное значение меньше «N» (это значение у нас будет равно «1»), нажимаем «Вставить»

Zabbix-условия триггера

В результате у нас получилось такое выражение:

{GSA Monitoring Logstash Servers:proc.num[java,,,logstash].last()}

Источник: http://pechenek.net/sysmonitor/zabbix-nastraivaem-monitoring-sluzhb/

Мониторинг серверов с помощью Zabbix

Библиотека сайта rus-linux.net

Оригинал: Server Monitoring with Zabbix Автор: Paul Tader Дата публикации: 1 сентября 2010 г. Перевод: Александр Тарасов aka oioki

Дата перевода: 18 мая 2011 г.

Думаете, создание больших служб мониторинга — утомительное занятие? Как бы не так, если вы выбрали Zabbix. С ним можно быстро и легко поднять мониторинг больших систем.

Zabbix (www.zabbix.com) — это проект с открытым исходным кодом, но разработчики также предлагают и коммерческую поддержку. Zabbix поддерживает платформы UNIX, Linux, BSD, Mac OS X и Windows и рассчитан на большие системы. Zabbix создан Алексеем Владышевым и его компанией Zabbix SIA.

Эта статья написана, когда Zabbix был версии 1.8.1, выпущенной в январе 2010 года. В момент написания статьи в большинстве дистрибутивов Linux в репозиториях содержалась предыдущая версия (1.6). Версия 1.8 существенно от нее отличается, и в этой статье будут упомянуты все основные функции.

Вот их краткий список:

  • Распределенный мониторинг.
  • Клиенты для платформ Linux, BSD, Windows, Mac OS X и коммерческих UNIX.
  • Бэкенд в виде базы данных (MySQL, Oracle, PostgreSQL или SQLite).
  • Режим автоматического обнаружения.
  • Веб-интерфейс.
  • Оповещения по электронной почте, SMS или Jabber.
  • Поддержка как методов получения сообщений Zabbix-клиента — как poll, так и trap.
  • Поддержка SNMP.
  • Безагентный мониторинг (пинги, проверка портов и т.п.).
  • Графики.

Хотя рекомендуется устанавливать 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 -p
mysql> create database zabbix;
mysql> quit;
Скачайте исходный код с официального сайта www.zabbix.com/download.php, распакуйте архив и следуйте указанным ниже шагам.

Здесь мы создаем схему базы данных и настраиваем начальную конфигурацию. Обратите внимание, что мой бэкенд — MySQL, и я задействую соответствующие файлы схем. Для других баз данных (например, PostgreSQL) имеются другие файлы схем:
shell> sudo tar zxvf zabbix-1.8.1.tar.gz
shell> cd zabbix-1.8.1/create/schema
shell> cat mysql.sql | mysql -u -p zabbix
shell> cd ../data
shell> cat data.

sql | mysql -u -p zabbix
shell> cat images_mysql.sql | mysql -u -p 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, там каждая переменная хорошо описана.

Инициализационные скрипты

В каталоге 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

Для удобства можно также поменять язык — выберите в правом верхнем углу Profile, и затем нужный язык.

Добавляем клиента

На клиентскую машину нужно скопировать три файла: клиентский исполняемый файл 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.

Читайте также:  Ввод centos 7 в домен active directory и авторизация по ssh доменных пользователей

Скриншот 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). Значение большинства полей интуитивно понятно. Самые важные среди них:

  • Описание (Description): это поле описывает суть проверки, в свободной форме. Обратите внимание, что в этом поле присутствует переменная $1. Zabbix подставляет вместо этой переменной значение первого поля в ключе (будет описано далее).
  • Тип (Type): тип Zabbix agent означает, что проверка будет выполнена самим агентом, работающим на клиенте, через определенные промежутки времени. Эта проверка встроена в исполняемый файл агента, примером таких проверок являются определение свободного пространства на диске, количество свободных/задействованных inode, либо внешний пользовательский скрипт. Другой тип элемента данных — Zabbix Trapper. Zabbix Trapper ведет себя как ловушка SNMP. Его значение обновляется только в том случае, когда клиент отправляет новые данные посредством утилиты zabbix_sender. К примеру, у вас есть задание cron, которое занимает 30 минут. По обычному сценарию, Zabbix-сервер бы ожидал ответа от клиента, выполняющего данный скрипт, и до этих пор не рвал бы соединение. Однако лучшим решением является добавление cron-задания так, чтобы программа zabbix_sender сама бы по получению нового значения отправляла бы его на Zabbix-сервер.Еще одним типом является Простая проверка (Simple checks). Она используется для безагентных клиентов — к примеру, выполнение пинга хоста или проверки портов (e-mail, SSH и так далее) на внешних хостах.
  • Ключ (Key): в этом поле записано «выражение», которое будет проверяться. Это может быть как встроенный ключ, как например, в нашем случае, так и ваш собственный скрипт, который вы напишете. В официальной документации Zabbix более подробно описаны ключи и выражения.

Скриншот 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)}

Источник: http://rus-linux.net/nlib.php?name=/MyLDP/admin/monitoring/zabbix/monitoring-serverov-zabbix.html

Zabbix — мониторинг сети

Zabbix — высоко интегрированное решение мониторинга сети, которое предлагает множество возможностей в одном пакете.

  • Сбор данных
    • проверки доступности и производительности
    • поддержка мониторинга по SNMP, IPMI, JMX
    • пользовательские проверки
    • сбор желаемых данных за выборочные интервалы
  • Широкие возможности визуализация
    • Графики в режиме реального времени
    • Карты сети
    • Пользовательские экраны и слайд шоу
    • Отчеты
  • Хранение истории
  • Гибкая настройка
    • Определение порогов
    • Настраиваемые оповещения
    • Автоматические реакции на события, в том числе удаленные команды
    • Шаблонизация
    • Система прав доступа
  • Возможности web-мониторинга
  • Веб интерфейс
  • Zabbix API
  • Наличие нативных клиентов под разные ОС
  • Готовое решение Zabbix, основанное на Open SUSE

Zabbix состоит из нескольких важных компонентов программного обеспечения, функции которых изложены ниже

Zabbix сервер — является главным компонентом, которому агенты сообщают информацию и статистику о доступности и целостности. Сервер является главным хранилищем, в котором хранятся все данные конфигурации, статистики, а также оперативные данные. Сервер выполняет опрос и захват данных, он вычисляет триггеры, отправляет оповещения пользователям. Это главный компонент которому Zabbix агенты и прокси отправляют данные доступности и целостности системы. Сервер может самостоятельно удаленно проверять сетевые устройства (так же как и веб сервера и почтовые сервера) используя простые проверки сервиса.

Сервер является главным хранилищем, в котором хранятся все данные конфигурации, статистики, оперативные данные, а так же эта сущность в Zabbix, которая будет активно уведомлять администраторов в случае возникновения проблем в любой из наблюдаемых систем.

Функционал базового Zabbix сервера разделен на три отдельных компонента; это: Zabbix сервер, веб интерфейс и хранилище в базе данных.

Zabbix Агент

Zabbix агенты разворачиваются на наблюдаемых целях для активного мониторинга за локальными ресурсами и приложениями (статистика жестких диски, памяти, процессоров и т.д.).

Агент собирает локальную оперативную информацию и отправляет данные Zabbix серверу для дальнейшей обработкиg. В случае проблем (таких как рабочий жесткий диск заполнен или упал процесс сервиса), Zabbix сервер может быстро уведомить администраторов конкретного сервера, который сообщил об ошибке.

Zabbix агенты чрезвычайно эффективны, потому что используют нативные системные вызовы для сбора информации статистики.

Пассивные и активные проверки Zabbix агенты могут выполнять пассивные и активные проверки. В случае пассивной проверки агент отвечает на запрос данных. Zabbix сервер (или прокси) запрашивает данные, например, загрузку ЦПУ, и Zabbix агент возвращает результат. Активные проверки требуют более сложной обработки. Агент сначала получает список элементов данных для независимой обработки от Zabbix сервера. Далее он будет периодически отправлять новые значения серверу.

Zabbix Прокси

Zabbix прокси — это процесс, который может собирать данные мониторинга с одного или нескольких наблюдаемых устройств и отправлять эту информацию Zabbix серверу, впринципе прокси работает от имени сервера. Все собранные данные локально буферизуются и затем отправляются Zabbix серверу, которому принадлежит этот прокси.

Развертывание прокси опционально, но может быть очень полезна для распределения нагрузки на одиночный Zabbix сервер. Если данные собирают только прокси, то обработка этих данных на сервере значительно уменьшает загрузку ЦПУ и I/O диска.

Zabbix прокси — идеальное решение для централизованного мониторинга удаленных мест, филиалов и сетей без местных администраторов. Для Zabbix прокси требуется отдельная база данных.

Java gateway

В Zabbix 2.0 добавлена нативная поддержка для мониторинга JMX приложений введением нового демона Zabbix, называемого Zabbix Java gateway.

Zabbix Java gateway — это демон написанный на языке Java.

Когда Zabbix сервер хочет знать значение конкретного JMX счетчика у узла сети, он опрашивает Zabbix Java gateway, который использует API управления JMX для опроса интересующего удаленного приложения.

Приложению не требуется никаких дополнительных программ, оно просто должно быть запущено с опцией командной строки -Dcom.sun.management.jmxremote.

Установка Zabbix

Установка сервера и клиента отличается незначительно и состоит из ряда простейших действий:

Установка серверной части

1. Загрузить и распаковать архив исходных кодов

tar -zxvf zabbix-2.0.0.tar.gz

2. Создать группу и пользователя zabbix, от имени которого будут работать демоны zabbix

groupadd zabbix useradd -g zabbix zabbix

3. Создать БД для хранения настроек и данных мониторинга

Пример для MySQL: mysql -u -p create database zabbix character set utf8; quit; mysql -u -p zabbix < database/mysql/schema.sql # остановитесь здесь, если вы создаете базу данных для Zabbix прокси mysql -u -p zabbix < database/mysql/images.sql mysql -u -p zabbix < database/mysql/data.sql

4. Сконфигурировать исходные коды

В этой части установка агента и сервера немного отличаются. Для zabbix сервера необходимо задать большее кол-во параметров.

При конфигурировании исходных кодов Zabbix сервера или прокси, вы должны указать используемый тип базы данных. Только один тип базы данных может быть скомпилирован для процессов сервера или прокси единовременно.

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

configure —help Вывод доступных опций конфигурирования: Installation directories: —prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] —exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] Fine tuning of the installation directories: —bindir=DIR user executables [EPREFIX/bin] —sbindir=DIR system admin executables [EPREFIX/sbin] —libexecdir=DIR program executables [EPREFIX/libexec] —sysconfdir=DIR read-only single-machine data [PREFIX/etc] —sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] —localstatedir=DIR modifiable single-machine data [PREFIX/var] —libdir=DIR object code libraries [EPREFIX/lib] —includedir=DIR C header files [PREFIX/include] —oldincludedir=DIR C header files for non-gcc [/usr/include] —datarootdir=DIR read-only arch.-independent data root [PREFIX/share] —datadir=DIR read-only architecture-independent data [DATAROOTDIR] —infodir=DIR info documentation [DATAROOTDIR/info] —localedir=DIR locale-dependent data [DATAROOTDIR/locale] —mandir=DIR man documentation [DATAROOTDIR/man] —docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] —htmldir=DIR html documentation [DOCDIR] —dvidir=DIR dvi documentation [DOCDIR] —pdfdir=DIR pdf documentation [DOCDIR] —psdir=DIR ps documentation [DOCDIR] Program names: —program-prefix=PREFIX prepend PREFIX to installed program names —program-suffix=SUFFIX append SUFFIX to installed program names —program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: —build=BUILD configure for building on BUILD [guessed] —host=HOST cross-compile to build programs to run on HOST [BUILD] Optional Features: —disable-option-checking ignore unrecognized —enable/—with options —disable-FEATURE do not include FEATURE (same as —enable-FEATURE=no) —enable-FEATURE[=ARG] include FEATURE [ARG=yes] —disable-dependency-tracking speeds up one-time build —enable-dependency-tracking do not reject slow dependency extractors —disable-largefile omit support for large files —enable-static Build statically linked binaries —enable-server Turn on build of Zabbix server —enable-proxy Turn on build of Zabbix proxy —enable-agent Turn on build of Zabbix agent and client utilities —enable-java Turn on build of Zabbix Java gateway —enable-ipv6 Turn on support of IPv6 Optional Packages: —with-PACKAGE[=ARG] use PACKAGE [ARG=yes] —without-PACKAGE do not use PACKAGE (same as —with-PACKAGE=no) —with-ibm-db2=[ARG] use IBM DB2 CLI from given sqllib directory (ARG=path); use /home/db2inst1/sqllib (ARG=yes); disable IBM DB2 support (ARG=no) —with-ibm-db2-include=[DIR] use IBM DB2 CLI headers from given path —with-ibm-db2-lib=[DIR] use IBM DB2 CLI libraries from given path —with-mysql[=ARG] use MySQL client library [default=no], optionally specify path to mysql_config —with-oracle=[ARG] use Oracle OCI API from given Oracle home (ARG=path); use existing ORACLE_HOME (ARG=yes); disable Oracle OCI support (ARG=no) —with-oracle-include=[DIR] use Oracle OCI API headers from given path —with-oracle-lib=[DIR] use Oracle OCI API libraries from given path —with-postgresql[=ARG] use PostgreSQL library [default=no], optionally specify path to pg_config —with-sqlite3[=ARG] use SQLite 3 library [default=no], optionally specify the prefix for sqlite3 library If you want to use Jabber protocol for messaging: —with-jabber[=DIR] Include Jabber support [default=no]. DIR is the iksemel library install directory. If you want to use cURL library: —with-libcurl[=DIR] use cURL package [default=no], optionally specify path to curl-config What ODBC driver do you want to use (please select only one): —with-iodbc[=ARG] use odbc driver against iODBC package [default=no], default is to search through a number of common places for the IODBC files. —with-unixodbc[=ARG] use odbc driver against unixODBC package [default=no], optionally specify full path to odbc_config binary. What SNMP package do you want to use (please select only one): —with-net-snmp[=ARG] use NET-SNMP package [default=no], optionally specify path to net-snmp-config —with-ucd-snmp[=ARG] use UCD-SNMP package [default=no], default is to search through a number of common places for the UCD-SNMP files. If you want to use SSH2 based checks: —with-ssh2[=DIR] use SSH2 package [default=no], DIR is the SSH2 library install directory. If you want to check IPMI devices: —with-openipmi[=DIR] Include OPENIPMI support [default=no]. DIR is the OPENIPMI base install directory, default is to search through a number of common places for the OPENIPMI files. If you want to check LDAP servers: —with-ldap[=DIR] Include LDAP support [default=no]. DIR is the LDAP base install directory, default is to search through a number of common places for the LDAP files. Пример конфигурации сервера: ./configure —enable-server –enable-java —enable-ipv6 —with-mysql —with-net-snmp Пример конфигурации агента: ./configure –-enable-agent

Читайте также:  Установка windows server 2012 на vmware workstation 10

5. Собрать и установить все

Этот шаг должен быть выполнен пользователем с достаточными правами (как правило 'root', или с помощью sudo).

Выполнение make install установит исполняемые файлы демона (zabbix_server, zabbix_agentd, zabbix_proxy) в /usr/local/sbin и исполняемые файлы клиента (zabbix_get, zabbix_sender) в /usr/local/bin.

make install

6. Отредактировать конфигурационные файлы

  • файл конфигурации Zabbix агента /usr/local/etc/zabbix_agentd.conf

Вам нужно сконфигурировать это файл для каждого хоста на котором установлен zabbix_agentd.

В файле вы должны указать IP адрес Zabbix сервера. Подключения с остальных хостов будут отклонены.

  • файл конфигурации Zabbix сервера /usr/local/etc/zabbix_server.

    conf

  • Вы должны указать имя базы данных, пользователя и пароль (если он используется).

    7. Запустить сервер и агента

    zabbix_server zabbix_agentd

    8. Добавить скрипты автозапуска(опционально)

    Для этого нужно скопировать скрипты из папки с исходными кодами для вашей ОС в директорию для автозапуска. Скрипты автозапуска необходимо скорректировать, если при конфигурировании были изменены стандартные пути расположения демонов Zabbix

    Пример для ОС Debian:

    cp misc/init.d/debian/zabbix-server /etc/init.d/ cp misc/init.d/debian/zabbix-agent /etc/init.d/ chmod 755 /etc/init.d/zabbix-server chmod 755 /etc/init.d/zabbix-agent update-rc.d zabbix-server defaults update-rc.d zabbix-agent defaults

    Установка web-интерфейса

    Веб-интерфейс Zabbix написан на языке PHP, поэтому чтобы его запустить вам потребуется веб-сервер с поддержкой PHP. Установка производится путем простого копирования PHP файлов в папку HTML вебсервера. mkdir /zabbix cd frontends/php cp -a .

    /zabbix После копирования необходимо открыть адрес http://hostname/zabbix и выполнить установку с помощью мастера, включающую:

    1. Проверку требований
    2. Задание настроек БД
    3. Задание свойств сервера (адрес, порт)
    4. Сохранение настроек на сервере

    Пользователь по умолчанию: Admin/zabbix

    Начало работы c Zabbix

    Основные определения

    Host — сетевое устройство, которые вы хотите мониторить, с IP/DNS.
    Hostgroup — логическая группировка узлов сети; они могут содержать узлы сети и шаблоны. Узлы сети и шаблоны в группе узлов сети никаким образом не связаны с друг другом.

    Группы узлов сети используются при назначении прав доступа к узлам сети различным группам пользователей.
    Item-элемент данных. Конкретная часть данных, которую вы хотите получать от узла сети, метрические данные.
    Trigger – триггер.

    |логическое выражение которое определяет порог проблемы и используется для “вычисления” данных полученных элементами данных. При получении данных превышающих порог, триггеры переходят из состояния 'Ок' в состояние 'Проблема'. При получении данных ниже порога, триггеры остаются в/возвращаются в состояние 'Ок'.

    Event — одиночное возникновение того, что заслуживает внимания, такого как изменение состояния триггера или обнаружение/авто-регистрация агента
    Action — предопределенные средства реагирования на событие.

    Действие состоит из операций (например отправка оповещений) и условий (когда осуществляется операция)
    Escalation — пользовательский сценарий для выполнения операций в действии; последовательность отправки оповещений/выполнений удаленных команд
    Media — способ доставки оповещений; канал доставки
    Remote command — предопределенная команда, которая будет автоматически выполнена на наблюдаемом узле сети при некоторых условиях
    Template — набор сущностей (элементы данных, триггеры, графики, комплексные экраны, правила низкоуровневого обнаружения) готовые к присоединению к одному или нескольким узлам сети Задача шаблонов повысить скорость развертывания задач мониторинга узла сети; кроме того делать более простым применение массовых изменений к задачам наблюдения. Шаблоны соединяются напрямую с отдельными узлами сети.
    Application — сгрупированные элементы данных в некую логическую группу
    Web scenario — один или несколько запросов HTTP для проверки доступности веб сайта

    Быстрый старт

    Самый простой способ проверить корректность установки и запуска мониторинга – настроить простую проверку характеристик удаленного хоста, например проверку доступности агента (agent.ping), а также уведомление пользователя в случае недоступности.

    Для этого необходимо:

    1. Создать пользователя. По умолчанию пользователю не задается предпочтительный способ доставки сообщений, поэтому необходимо его задать, например email для уведомлений по электронной почте. Также пользователю необходимо задать права на чтение для сервера, оповещения о недоступности которого пользователь будет получать. В противном случае Zabbix не сможет отправить оповещение
    2. Добавить удаленный хост, указав его имя, адрес, агентский порт и статус. Также его можно включить в одну или несколько групп серверов.
    3. Создать элемент данных — можно создать вручную или на основе шаблона. При ручной настройке необходимо указать название, тип, название ключа, тип возвращаемых данных.
    4. Добавить триггер – можно вручную задать выражение для проверки элемента данных или использовать триггер из шаблона.
    5. Настроить систему оповещений для сервера. Для оповещений по электронной почте необходимо указать параметры почтового сервера и аккаунта, от имени которого будут выполняться уведомления.
    6. Создать действие, определив для него операцию оповещения пользователя.

    После проделанных шагов достаточно остановить агента на удаленном хосте, после чего мы получим уведомление на адрес электронной почты, также мы увидим запись о произошедшем событии в панели управления Zabbix на вкладке Latest data – Events.

    Теперь можно переходить к более глубокой настройке мониторинга. Одна из основных возможностей, значительно упрощающих конфигурирование и мониторинг, шаблонизация – будет рассмотрена в след. разделах.

    Видеоматериал

    Небольшой видеообзор системы мониторинга Zabbix:

    Zabbix from Amigos Team on Vimeo.

    Источник: http://amigosteam.ru/blog/item/11-zabbix

    8. Веб-мониторинг [Zabbix Documentation 3.0]

    ru:manual:web_monitoring

    Благодаря Zabbix вы можете проверять несколько аспектов доступности веб-сайтов.

    Для выполнения веб-мониторинга Zabbix сервер должен быть изначально сконфигурирован с поддержкой cURL (libcurl).

    Для активации веб-мониторинга вам необходимо определить веб-сценарии.

    Веб-сценарий состоит из одного или нескольких запросов HTTP или “шагов”. Шаги периодически выполняются Zabbix сервером в предопределенном порядке.

    Если узел сети наблюдается через прокси, тогда шаги выполняются на этом прокси.

    Начиная с Zabbix 2.2 веб-сценарии привязываются к узлам сети/шаблонам тем же образом как элементы данных, триггеры и т.д. Это означает, что веб-сценарии можно создавать не уровне шаблона и далее применять к нескольким узлам сети одним движением.

    Каждым веб-сценарием собирается следующая информация:

    • средняя скорость загрузки в секунду для всех шагов для всего сценария
    • номер шага, который завершился с ошибкой
    • последнее сообщение об ошибке

    На каждом шаге веб-сценария собирается следующая информация:

    • скорость загрузки в секунду
    • время ответа
    • код ответа

    Для получения более детальных сведений смотрите элементы данных веб мониторинга.

    Собранные данные с выполненных веб-сценариев хранятся в базе данных. Эти данные автоматически используются для графиков, триггеров и оповещений.

    Zabbix может также проверять содержит ли полученная HTML страница заданную строку. Он может выполнить эмуляцию входа и следовать пути, эмулируя нажатия мышкой на странице.

    Читайте также:  Установка ruby на centos 7

    Веб-мониторинг в Zabbix поддерживает и HTTP, и HTTPS. При выполнении веб-сценария, Zabbix сервер будет следовать перенаправлениям (смотрите опцию Следовать перенаправлениям ниже). Максимальное количество перенаправлений жестко задано в исходном коде и равняется 10 (используется cURL опция CURLOPT_MAXREDIRS). Все cookies запоминаются на протяжении выполнения одного сценария.

    Смотрите также известные проблемы по веб-мониторингу при использовании HTTPS протокола.

    Для настройки веб-сценария:

    • Перейдите: Настройка → Узлы сети (или Шаблоны)
    • Нажмите на Веб в строке с узлом сети/шаблоном
    • Нажмите на Создать сценарий в верхнем правом углу (или на имени сценария для редактирования существующего сценария)
    • Введите в диалоге параметры сценария

    Вкладка Сценарий позволяет вам настроить общие параметры веб-сценария.

    Общие параметры:

    ПараметрОписание
    Узел сети Имя узла сети/шаблона к которому принадлежит сценарий.
    Имя Уникальное имя сценария.Начиная с Zabbix 2.2, имя может содержать поддерживаемые макросы.
    Группа элементов данных Выберите группу элементов данных к которой будет принадлежать сценарий.Элементы данных веб-сценария будут сгруппированы под выбранной группой элементов данных в Мониторинг→Последние данные.
    Новая группа элементов данных Введите название новой группы элементов данных для сценария.
    Интервал обновления (в сек) Как часто сценарий будет выполняться, в секундах.
    Попыток Количество попыток выполнения шагов веб-сценария. В случае сетевых проблем (превышено время ожидания, отсутствие подключения и прочего) Zabbix может повторить выполнение шагов несколько раз. Указанное количество будет одинаково действовать для каждого шаг сценария. Можно указать до 10 попыток, значение по умолчанию равно 1.Примечание: Zabbix не повторит шаг из-за ошибочного кода ответа или несовпадении необходимой строки.Данный параметр поддерживается начиная c Zabbix 2.2.
    Агент Выбор агента клиента. Zabbix будет представляться выбранным браузером. Полезно для мониторинга Веб-сайтов, которые генерируют различное содержимое для разных браузеров.Начиная с Zabbix 2.2, в этом поле можно использовать пользовательские макросы.
    HTTP прокси Вы можете указать необходимый HTTP прокси, следуя следующему формату: http://[имя пользователя[:пароль]@]прокси.mycompany.com[:порт] По умолчанию будет использоваться порт 1080. Если указан, прокси заменит переменные окружения связанные с прокси такие как http_proxy, HTTPS_PROXY. Если не указан, переменные окружения не будут заменены. Введённое значение передается “как есть”, проверка правильности не производится. Вы также можете указать адрес SOCKS прокси. Если вы укажите ошибочный протокол, подключение провалится и элемент данных станет неподдерживаемым. Если протокол не указан, прокси будет считаться HTTP прокси.Примечание: Для HTTP прокси поддерживается только простая аутентификация.В этом поле можно использовать пользовательские макросы.Данный параметр поддерживается начиная с Zabbix 2.2.
    Переменные Список переменных (макросов) уровня сценария, которые затем можно использовать в шагах сценария (URL, переменные Post). Переменные имеют следующий формат:{макрос1}=значение1{макрос2}=значение2 {макрос3}=regex: Например: {username}=Alexei {password}=kj3h5kJ34bd {hostid}=regex: hostid is ([0-9]+) Если часть значения начинается с regex:, тогда последующая часть обрабатывается как регулярное выражение, которое будет искать указанную часть веб-страницы, и если найдет, запомнит найденное значение в переменную. Заметьте, что как минимум одна подгруппа должна присутствовать так, чтобы найденные значения можно было извлечь. Далее на макросы можно ссылаться в шагах, используя {username}, {password} и {hostid}. Zabbix автоматически заменит их на реальные значения.Переменные, которые ищут совпадение части веб-страницы по регулярному выражению, поддерживаются начиная с Zabbix 2.2.В этом поле, начиная с Zabbix 2.2, можно использовать пользовательские и HOST.* макросы.Примечание: Перемененные не являются URL-кодированными.
    Заголовки HTTP заголовки, которые будут отправлены при выполнении запроса.Заголовки следует передавать списком используя тот же синтаксис как они могут появиться в HTTP протоколе, опционально можно использовать некоторые дополнительные возможности поддерживаемые CURLOPT_HTTPHEADER опциями cURL. Например: Accept-Charset:​ utf-8 Accept-Language:​ en-US Content-Type:​ application/​xml;​ charset=utf-8В этом поле можно использовать макросы HOST.* и пользовательские макросы.Возможность указать пользовательские заголовки поддерживается начиная с Zabbix 2.4.
    Активирован Сценарий активирован, если параметр отмечен, в противном случае — деактивирован.

    Обратите внимание, что при редактировании существующего сценария, в диалоге будут доступны две дополнительные кнопки:

    Создание другого сценария на основе свойств существующего.
    Удаление у сценария данных истории и динамики изменений. Эта опция заставит сервер выполнить сценарий сразу после удаления данных.

    Если поле HTTP прокси оставить пустым, можно воспользоваться другим способом указать HTTP прокси, для этого необходимо задать переменные окружения.

    Для HTTP проверок — укажите переменную окружения http_proxy для пользователя Zabbix сервера. Например, http_proxy=http://proxy_ip:proxy_port.

    Для HTTPS проверок — укажите переменную окружения HTTPS_PROXY. Например, HTTPS_PROXY=http://proxy_ip:proxy_port. Более подробную информацию можно получить, выполнив в shell команду # man curl.

    Вкладка Шаги позволит вам настроить шаги веб-сценария. Чтобы добавить шаг веб-сценария, нажмите на Добавить.

    Параметры шага:

    ПараметрОписание
    Имя Уникальное имя шага.Начиная с Zabbix 2.2., имя может содержать поддерживаемые макросы.
    URL

    Источник: https://www.zabbix.com/documentation/3.0/ru/manual/web_monitoring

    Мониторинг веб сайтов

    Наша работа заключается в оказании технической поддержки клиентам и почти все они имеют свои веб сайты, у кого-то это просто сайт визитка, а у кого-то это интернет-магазин и основной инструмент получения прибыли компании, но желание у всех одно, сайт должен работать стабильно и круглосуточно.

    Мы изучили рынок мониторинга сайтов и сервисов более чем достаточно, но так как мы занимаемся мониторингом на базе Zabbix, то хотели найти решение именно на этой платформе.

    Изучив возможности мониторинга, веб сайтов встроенного в Zabbix, мы поняли, что нам этого мало.

    Встроенные средства отлично подойдут для мониторинга внутри одной компании, но нам требовался мониторинг сразу для множества клиентов с разными условиями, а также мониторинг не только доступности сайта, но и его доменного имени и SSL сертификата. Поэтому мы приняли решение разработать свой шаблон и скрипты для мониторинга сайта.

    Основные метрики, которые требуется получить с вебсайта, чтобы быть уверенным в его доступности:

    • Доступность сайта: скорость открытия страницы, время скачивания страницы, проверка ключевого слова на странице;
    • Наблюдать за доменным именем, чтобы не пропустить срок его оплаты и сайт не заблокировал регистратор;
    • Наблюдать за SSL сертификатом, который установлен на сайте, так как его тоже надо обновлять заранее.

    Чтобы решение было универсальным и работало на любом сервере, мы написали скрипт на Python, который всё это делает. Так же был создан шаблон в Zabbix для сбора данных.

    Как всё это работает

    В шаблоне есть 3 приложения (Application) Web site, Domain name, SSL, которые содержат метрики (items) данного направления.

    Все метрики имеют типа Zabbix trapper, потому что мы запускаем скрипт, собираем данные и отправляем пакетом на Zabbix сервер через утилиту zabbix_sender. Это позволяет нам разгрузить сам Zabbix сервер от выполнения скриптов (хорошо когда вы следите за 10 сайтами, а когда их 1000?)

    В шаблоне также присутствует обнаружение (Low-level discovery) доменного имени сайта и наличие SSL сертификата на нём.

    Ключевые настройки шаблона сделаны через макросы (User Macros), которые на можно всегда переопределить на хосте.

    {$WEBSITE_METRICS_DEBUG} Включить/Выключить режим отладки скрипта
    {$WEBSITE_METRICS_TIMEOUT} Таймаут на проверку подключения к сайту
    {$WEBSITE_METRICS_TIMEOUT_RECOVERY} Таймаут на проверку восстановления доступа к сайту
    {$WEBSITE_METRICS_URL} Адрес сайта для проверки
    {$WEBSITE_METRICS_PHRASE} Фраза для проверки на сайте

    Шаблон имеет набор item-ов которые запускают процесс мониторинга сайта (их можно отключить, заменив на выполнение скрипта через Cron)

    Имя Ключ
    Web «{$WEBSITE_METRICS_URL}» run tests website_metrics.py[«—hostname»,{HOST.HOST},»—testsite»,{$WEBSITE_METRICS_URL},»—testphrase»,{$WEBSITE_METRICS_PHRASE},»—timeout»,{$WEBSITE_METRICS_TIMEOUT},»—debug»,{$WEBSITE_METRICS_DEBUG}]

    Собственно, это простой вызов скрипта с передачей ему параметров, что выполнить и куда отправить данные.

    После выполнения скрипта, формируется набор данных в виде:

    Хост, метрика, значение

    Затем пакет этих данных отправляется на Zabbix сервер.

    website website_metrics.test.status 1 website website_metrics.test.time 0.11 website website_metrics.test.code 200 website website_metrics.test.speed 1367373 website website_metrics.test.message »

    website website_metrics.test.phrase_status 1

    Источник: https://itmicus.ru/ru/zabbix-website-monitoring

    Zabbix — мониторинг сайта

    Notice: Undefined index: HTTP_USER_AGENT in /var/www/html/www.voip-lab.ru/html/wp-content/plugins/crayon-syntax-highlighter/util/crayon_util.class.php on line 793

    Я уже написал пару статей о Zabbix. В частности, как настроить мониторинг сети с помощью Zabbix, а также как настроить систему SMS-уведомлений. Пожалуй, сегодня мы остановимся на том, что настроим мониторинг работы сайта.

    Плюсы Zabbix при мониторинге сайта:

    • Поддержка аутентификации;
    • Возможность задать интервал проверки;
    • Возможность выбора агента;
    • Отправка _POST переменных в запросе;
    • Пошаговый обход сайта(Сценарий);

    Основной минус заключается в том, что Zabbix пока не поддерживает кластеризацию. Т.е. если если возникает проблема между Zabbix-сервером и проверяемым сервером, то вам придет оповещение о проблемах, хотя их не будет. Хотя для полноценного мониторинга есть сервисы типа pingdom.com, которые проверят доступность вашего сайта со всех Частей Света, хотя и платно.

    Но зато в Zabbix мы можем создать сценарий, по которому будем производить обход страниц сайта. И в случае если какая-то страница вернула не то что ожидалось, то можно об этом узнать моментально.

    Например, это может быть полезно в том случае, когда какая-то страница возвращает результаты поиска авиабилетов и вам, как администратору ресурсов, необходимо знать проходит поиск билетов в шаштном режиме или есть какие-то проблемы со службой поиска.

    Для того, чтобы привязать мониторинг к сайту вам необходимо создать новый хост(или если у вас уже есть нужный хост-переходите сразу к следующему шагу).

    Надо отметить, что для Web-мониторинга не обязательно наличие установленного Zabbix-агента. Вы можете создать хост, который можно даже не мониторить.

    Подключение Web-мониторинга

    Создадим Application. Для этого перейдите в раздел Configuration→Hosts и нажмите на Applications созданного хоста и нажмите кнопку Create application. В поле Name введите что-то вроде «Web monitoring».

    Далее, перейдите в раздел Configuration→Web, справа-вверху выберите нужный Host и нажмите кнопку Create scenario. В поле Application выберите ранее созданный «Web monitoring». Поле Name заполните по желанию, я остановлюсь на «WebTest voip-lab.ru».

    Update interval — интервал проверки.
    Agent — каким браузером сайт будет определять запросы от Zabbix.
    Variables — Список переменных (макросов) для использования в шагах сценария. Оставьте пустым.

    После этого перейдите на вкладку Steps, где определите запросы, которые будет отправлять Zabbix вашему сайту.

    После успешной настройки можно во вкладке Monitoring→Web наблюдать графики, показывающие время отклика и скорость отдачи страниц.  Также хочу напомнить, что если вам нужны данные за более ранний период, то вы всегда их найдете в Monitoring→Lastest data.

    Источник: http://www.voip-lab.ru/zabbix-monitoring-sajta/

    Ссылка на основную публикацию