Глава 1. Приступая к работе с Zabbix

Содержание

Глава 1. Приступая к работе с Zabbix
Технические требования
Самые первые шаги в мониторинге
Свойства и архитектура Zabbix
Установка
Выбор соответствующей версии и репозитория
Аппаратные требования
Установка из соответствующих пакетов
Red Hat Enterprise Linux (RHEL)/ CentOS
EPEL
Репозиторий Zabbix
Ubuntu/ Debian
Установка из исходного кода
Сервер и агент
Требования программного обеспечения
Выгрузка исходного кода
Компиляция
Дефис или подчёркивание
Начальная настройка
Создание и наполнение базы данных
Запуск
Проверка состояния конкретной службы
Веб интерфейс
Предварительные требования и настройки вашей среды
Применение мастера настроек через веб интерфейс
Шаг 1 - Добро пожаловать
Шаг 2 - Предварительные требования PHP
Шаг 3 - Доступ к базе данных
Шаг 4 - Подробности сервера Zabbix
Шаг 5 - Краткое содержание
Шаг 6 - Написание файла настроек
Шаг 7 - Завершение работы с мастером
Шаг 8 - Регистрация
Выводы
Вопросы
Дальнейшее чтение

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

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

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

Мы изучим как установить и настроить одну подобную сиситему мониторинга - Zabbix. В данной самой первой главе мы охватим такие вопросы:

  • Первые шаги в мониторинге

  • Строение Zabbix и выбор надлежащих версии и репозитория

  • Установка Zabbix из пакетов

  • Установка Zabbix из исходного кода

  • Настройка самого интрефейса Zabbix

Технические требования

Вам понадобится некий сервер или виртуальная машина с возможностью установки CentOS/Red Hat или Debian/Ubuntu.

Самые первые шаги в мониторинге

Случаи, аналогичные только что описанному на самом деле более широко распространены, чем того бы хотелось. Некий отказ системы, которая не подавала ранее никаких видимых признаков для этого достаточно часто происходят. Легко можно было бы скомпилировать некий подраздел историй ужасов администрирования UNIX (http://www-uxsup.csx.cam.ac.uk/misc/horror.txt), содержащий только истории об отказах, о которых не было вовремя получено уведомление.

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

Одним из самых первых решений мониторинга реализуемых администраторами был простой сценарий оболочки, запускаемый из crontab, который проверял некие основные параметры, тике ка загруженность диска, или некое состояние службы, например, какого- то сервера Apache. По мере роста числа серверов и параметров наблюдения аккуратная и ясная система сценариев начинает перерастать в волосяную опухоль пожирающего производительность сценария, который тратит на своё обслуживание больше времени чем экономит. Хотя толпа сделай- всё- сам и твердит что никому не нужно специально посвящённое этому программное обеспечение для большей части задач (в том числе для мониторинга), большинство администраторов не согласятся с этим, как только им придётся добавить коммутаторы, UPS, маршрутизаторы, камеры IP и множество прочих устройств в рой отслеживаемых объектов.

Итак, какую основную функциональность можно ожидать от некоего решения мониторинга? Давайте посмотрим:

  • Получение данных: Именно здесь всё и начинается, выборка данных осуществляется при помощи различных методов, в том числе SNMP (Simple Network Management Protocol), агентов Zabbix, IPMI (Intelligent Platform Management Interface) и JMX (Java Management Extensions).

  • Хранилище данных: После того ка мы выполнили выборку данных, нет смысла выбрасывать их, поэтому мы часто желаем сохранять их для последующего анализа.

  • Предупреждения: Получаемые данные могут сравниваться с пороговыми значениями и могут отсылаться предупреждения , причём требуется применять различные каналы, такие как электронная почта или SMS.

  • Визуализация: Люди лучше распознают визуализированные данные, чем сырые числа. Раз у нас имеются уже полученные и сохранённые данные, будет простым делом выработать из них некий график..

Звучит простым? Потому что это действительно так. Но затем мы желаем всё больше и больше функций, таких как простая и действенная настройка, эскалации и делегирование полномочий. Если мы присядем и начнём перечислять те моменты, которые мы собираемся держать на глазу, может оказаться, что эта область интересов выходит за пределы самой сетевой среды, например, жёсткий диск, который обладает журналированием ошибок S.M.A.R.T (Self-Monitoring, Analysis, and Reporting Technology), некое приложение, которое имеет слишком много потоков, или какой- то UPS, который имеет перегруженной одну из фаз. Будет гораздо проще управлять всеми этими различными категориями проблем и отслеживать их из отдельного пункта настройки.

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

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

Свойства и архитектура Zabbix

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

Какие свойства предоставляет Zabbix?. Давайте посмотрим:

  • Некий централизованный, простой в использовании веб- интерфейс

  • Некий сервер, который запускается в большинстве UNIX- подобных операционных систем, включая Linux, AIX, FreeBSD, OpenBSD и Solaris

  • Естественные агенты для большинства Unix- подобных операционных систем и версий Microsoft Windows

  • Возможность непосредственного мониторинга устройств SNMP (SNMP1, SNMP2 и SNMP3), а также IPMI

  • Возможность прямого мониторинга приложений Java при помощи JMX

  • Возможность непосредственного мониторинга экземпляров vCenter или vSphere при помощи API VMware

  • Встроенные возможности графики и иной визуализации

  • Уведомления, которые позволяют простую интеграцию с иными системами

  • Гибкие настройки, включая шаблоны

  • LLD (Low-Level Discovery, обнаружение на нижнем уровне) и собственная возможность генерации элементов, графиков и триггеров (помимо всего прочего) неким автоматическим манером

  • Куча прочих функций, которые позволяют вам реализовывать хитроумные решения мониторинга

Если мы взглянем на упрощённую сетевую среду с точки зрения Zabbix, помещая имеющийся сервер Zabbix в самый центр, имеет значение установление взаимодействия с различными сторнами мониторинга. Приводимая ниже схема рисует относительно простую установку Zabbix с различными возможностями мониторинга, применяющимися в различных категориях подключаемых устройств:

 

Рисунок 1-1



Сам сервер Zabbix напрямую выполняет мониторинг множества устройств, однако удалённые местоположения, обосабливаются межсетевыми экранами, поэтому будет проще собирать данные через некоего посредника Zabbix (прокси). Такие посредники Zabbix и агенты Zabbix, равно как и сам сервер написаны на языке C.

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

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

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

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

 

Рисунок 1-2



Установка

Ладно, хватит сухой болтовни - как всем этим пользоваться? Давайте рассмотрим имеющийся экран инструментальной панели Zabbix в веб интерфейсе, отображая только самую основную стандартную конфигурацию:

 

Рисунок 1-3



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

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

Прежде чем мы начнём настраивать Zabbix, нам необходимо установить его. Обычно у нас есть два варианта - установка из пакетов или настройка из исходного кода. Пакеты Zabbix доступны в большом числе репозиториев дистрибутивов Linux и обычно именно это самый безопасный выбор его использования. Дополнительно некий особый для Zabbix репозиторий предоставляется SIA Zabbix (той компанией, которая разрабатывает данный продукт) для ряда дистрибутивов.

[Замечание]Замечание

Хорошей идеей будет проверить самые последние инструкции по установке на https:/​/​www.​zabbix.​com/​documentation/​4.​0/​manual/installation.

Выбор соответствующей версии и репозитория

Для начала мы настроим сам сервер Zabbix, базу данных и интерфейс, причём всё запускается на одной и той же машине и с применением базы данных MySQL.

Следует ли вам применять пакеты или установку из исходного кода? В большинстве случаев установка из имеющихся пакетов будет проще. Вот несколько соображений, которые помогут вам выбрать свой метод:

  • Имеются определённые преимущества использования распространяемых пакетов. Они включают следующее:

    • Автоматизированная установка и обновления

    • Все зависимости как правило уже отсортированы

    • Более простая и правильная очистка при деинсталляции

    • Отсутствие установки компиляторов, необходимых вашей системе

  • Компиляция из исходного кода также имеет свои совместные преимущества. Они таковы:

    • Вы можете получать более новые версии с большим числом функций и улучшений

    • У вас имеется более гранулированный контроль за компилируемыми функциями

Но какую именно версию выбрать? В репозиториях вы можете обнаружить доступными различные версии, причём эти версии могут быть не эквивалентными. Начиная с Zabbix 2.2 было введено понятие LTS (Long-Term Support, долговременной поддержки). Оно определяет насколько долго доступна поддержка по исправлению ошибок. Некий выпуск LTS поддерживается пять лет (три года с полной поддержкой и два года с ограниченной поддержкой), в то время как обычные выпуски поддерживаются до месяца после даты выпуска его последующей версии. Выпуски Zabbix 2.2 и 3.0 являются LTS, в то время как 2.4, 3.2 и 3.4 являются обычными выпусками. Выбирайте некий выпуск LTS для установки, которую вы не планируете обновлять для некоторой настройки, в которой вы захотите поддержки производителя (Zabbix SIA). Некий обычный выпуск может применяться для какой- то настройки, которую вы собираетесь отслеживать современной. В данной книге мы будем применять самый последний выпуск LTS Zabbix, верчию 4.0.

Данная политика может изменяться, Проверьте подробности на следующем веб- сайте Zabbix: http://www.zabbix.com/life_cycle_and_release_policy.php.

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

Как и для большей части программного обеспечения, существуют определённые предварительные требования, которые нам нужно соблюдать для запуска компонентов Zabbix. Они включают в себя требования к аппаратным средствам и прочему программному обеспечению, от которых зависят сами сервер и агент Zabbix. Для целей нашей установки мы решили запустить Zabbix на Linux с применением базы данных MySQL. Особенности дистрибутива Linux не имеют значения - лучше будет выбрать тот, который вам более знаком.

Аппаратные требования

Требования к оборудованию широко разнятся в зависимости от требуемой настройки. невозможно предоставить точные требования, поэтому любая промышленная установка должны выполнять свою собственную установку индивидуально. Для нашей тестовой среды, однако, будет достаточно даже так мало оперативной памяти, как 128 МБ. Обычно мощность ЦПУ не играет большой роли; оборудование уровня Pentium- II должно исключительно подходить для поставленных целей, хотя выработка графиков со многими элементами или иных сложных представлений может потребовать более мощного оборудования для работы с приемлемой скоростью. Вы можете принять это в качестве отправной точки, а также когда вы выполняете установку в какой- то виртуальной машине.

Конечно, чем больше ресурсов вы предоставите Zabbix, тем более находчивым и счастливым он будет.

Установка из соответствующих пакетов

Если вы решили установить Zabbix из соответствующих пакетов, доступность пакетов и сама процедура будет отличаться на основе выбранного дистрибутива. Здесь будут рассмотрены несколько дистрибутивов - для прочих прочтите инструкции особенностей для выбираемого дистрибутива. Для самой установки нам понадобятся права root.

Red Hat Enterprise Linux (RHEL)/ CentOS

Пользователи RHEL или CentOS имеют для своего выбора два репозитория: хорошо известный EPEL (Extra Packages for Enterprise Linux) и собственно репозиторий Zabbix. EPEL может быть более безопасным выбором, но может не всегда иметь самые последние версии. (На самом деле, на момент написания самой последней версией EPEL была всё ещё 3.0.22 {Прим. пер.: На момент перевода 3.0.24.}, поэтому есть вероятность что 4.0 будет не доступна в EPEL). В промышленности наиболее часто вы сталкиваетесь с установками при включённом SELinux (Security-Enhanced Linux). Однако SELinux является достаточно сложным сам по себе, поэтому он выходит за рамки данной книги; будьте добры, отключите SELinux перед запуском установки Zabbix. Если у ват нет путеводной нити как это сделать, это может быть выполнено путём изменения соответствующего файла /etc/selinux/config и размещение отключения (disable) или разрешения (permissive) вместо включения (enable). Не забудьте выполнить перезагрузку по завершению, чтобы применить эти зменения к вашей системе. Вы можете проверить текущее состояние при помощи команды getenforce.

EPEL

Если EPEL ещё не настроен, его следует добавить. Для RHEL/CentOS 7 соответствующая команда аналогична такой:


# rpm -Uvh http://ftp.colocall.net/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
 	   

Только в CentOS7 запустите следующую команду:


# yum install epel-release
 	   
[Совет]Совет

Проверьте самую последнюю версию в .

Если вы желаете проверить все доступные версии Zabbix в EPEL, это можно сделать следующей командой:


# yum --disablerepo="*" --enablerepo="epel" search zabbix
 	   

После того как ваш репозиторий был установлен, вы можете установить сами пакеты (за исключением того что ниже приводится команда для 3.0, а не для 4.0, так как последний не был доступен на момент написания):


# yum install zabbix30-agent zabbix30-dbfiles-mysql zabbix30-servermysql zabbix30-web-mysql-yum install epel-release
 	   

Репозиторий Zabbix

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


# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
 	   

После установки требуемого репозитория вы можете установить необходимые пакеты:


# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
 	   

Ubuntu/ Debian

У Zabbix имеются репозитории, доступные для Debian и Ubuntu, в точности как и для CentOS/Red Hat, поэтому оба поддерживаются в равной степени. Просто имейте ввиду, что Zabbix SIA имеет в последнее время небольшое предпочтение для CentOS/Red Hat и что именно они предпочтительны для обучения, но обе версии поддерживаются и проверяются в равной степени:


# For Ubuntu 18.04
# wget https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.0-1+bionic_all.deb

# For Debian 9
# wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-1+stretch_all.deb
# dpkg -i zabbix-release_4.0-1+bionic_all.deb
 	   

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


# apt update
# add-apt-repository universe # (This is needed
                              # for package 
                              # like fping ...)
# apt install zabbix-server-mysql zabbix-agent zabbix-frontend-php
 	   

Установка из исходного кода

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

Сервер и агент

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

Требования программного обеспечения

Теперь нам следует приступить к компиляции различных компонентов Zabbix, так что убедитесь что вы установили минимум требуемых пакетов чтобы заполучить работающим Zabbix с MySQL. Вот они:

  • GCC

  • Automake

  • MariaDB (или любая иная MySQL совместимая база данных)

В зависимости от вашего дистрибутива и желаемой вами функциональности вам могут такжет потребоваться некоторые из следующих пакетов:

  • zlib-devel

  • mariadb-devel (для поддержки MySQL)

  • glibc-devel

  • curl-devel (для веб- мониторинга)

  • libidn-devel (от него может зависеть curl-devel)

  • openssl-devel (от него может зависеть curl-devel)

  • net-snmp-devel (для поддержки SNMP)

  • popt-devel (от него может зависеть net-snmp-devel)

  • rpm-devel (от него может зависеть net-snmp-devel)

  • OpenIPMI-devel (для поддержки IPMI)

  • libssh2-devel (для прямых проверок SSH)

  • libxm2-devel (для мониторинга VMware)

  • unixODBC-devel (для мониторинга базы данных)

  • Java SDK (для проверок шлюза Java/ JMX)

Выгрузка исходного кода

Имеются различные способы выгрузки необходимого исходного кода Zabbix. Вы можете получить его из репозитория Subversion (SVN), который будет обсуждён в Дополнении B: Являясь частью сообщества; однако, для данной процедуры установки я предлагаю вам выгрузить версию 4.0.0 с самой домашней страницы Zabbix, https:/​/​www.​zabbix.​com/. Хотя может иметься возможность применять самую последнюю стабильную версию, использование 4.0.0 позволит вам более тесно придерживаться инструкций. Перейдите к разделу Download и ухватить необходимый пакет исходного кода в сжатом виде. Обычно на этой странице выгрузки доступна только самая последняя стабильная версия, поэтому вам может потребоваться перейти к архивам исходного кода, но не берите какую- то версию разработки или бета версию, которые также могут быть доступными.

Чтобы упростить все последующие ссылки, я предлагаю вам выбрать некий каталог для работы, например, ~/zabbix (в предположении что ~ это ваш каталог Code). Выгрузите необходимый архив в этот каталог.

Компиляция

По завершению выгрузки требуемого архива откройте некий Терминал и раскройте его:


$ cd ~/zabbix; tar -zxvf zabbix-4.0.0.tar.gz
		

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

Для целей данной книги мы скомпилируем Zabbix с поддержкой сервера, агента, MySQL, CURL, SNMP, SSH, ODBC, XML (VMware) и IPMI.

Для продолжения введите в своём Терминале следующее:


$ cd zabbix-4.0.0
$ ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --with-openipmi --enable-agent --with-libxml2 --with-unixodbc --with-ssh2 --with-openssl
		

По завершению некое резюме всех скомпилированных компонентов будет выведено на печать. Убедитесь что вы имеете приведённое ниже включённым:


 Enable server:         yes
 Server details:
 With database:         MySQL
 WEB Monitoring:        CURL
 SNMP:                  yes
 IPMI:                  yes
 SSH:                   yes
 TLS:                   OpenSSL
 ODBC:                  yes
 Enable agent:          yes
 	   

Если данная конфигурация завершится успешно, всё хорошо. Если она откажет, проверьте выводимые на печать в вашей консоли сообщения об ошибках и убедитесь что всё запрашиваемое из необходимого было установлено. Файл с названием config.log может предоставлять дополнительные сведения об этих ошибках. Если вы не можете обнаружить что не так, проверьте Дополнение A: Поиск неисправностей, которое перечисляет некоторые наиболее распространённые проблемы компиляции.

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


$ make
		

Вы можете запастись чашкой чая, но не ожидайте что у вас будет много времени - компиляция Zabbix не занимает слишком много времени; даже на старом Pentium II с 350 МГц компиляция требует примерно пять минут. На современных машинах это требует менее минуты. После того как данный процесс make завершится, проверьте самую последние строки на какие- нибудь сообщения об ошибках. Если их нет, поздравляем - вы успешно скомпилировали Zabbix!

Теперь нам следует установить его. Я предлагаю вам создать соответствующие пакеты, но это потребует некоторых усилий и будет зависеть от дистрибутива. Другим вариантом является запуск make install. Это разместит все файлы в вашей файловой системе, но не выполнит регистрацию Zabbix как некоего пакета установки - удаление и обновление такого программного обеспечения более сложный процесс.

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


$ make install
		
[Замечание]Замечание

Здесь и далее в этой книге некое приглашение $ означает обычного пользователя, в то время как приглашение # означает пользователя root. Для запуска команд от имени root обычно используются команды su или sudo..

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

Дефис или подчёркивание

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

  • zabbix_server вместо zabbix-server

  • zabbix_agentd вместо zabbix-agentd

  • zabbix_server.conf вместо zabbix-server.conf

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

Начальная настройка

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

  • Установка из исходного кода: /usr/local/etc

  • Установка пакета RHEL/CentOS/Debian/Ubuntu /etc

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

Для настройки агента Zabbix нам ничего не нужно. На текущий момент нас прекрасно устроит его настройка по умолчанию. Это чудесно, не так ли?

Для своего сервера нам потребуется внести некие изменения. Откройте файл zabbix_server.conf в любимом вами редакторе (для его изменения вам понадобятся права root) и отыщите следующие записи в этом файле:

  • DBName

  • DBUser

  • DBPassword

Установкой по умолчанию для DBName должно быть zabbix; мы можем оставить это как есть. DBUser установлен в root, но нам это не нравится, поэтому давайте изменим его на zabbix. Для DBPassword выберите любой пароль. Вам не придётся запоминать его, поэтому можете действовать с выдумкой.

В решениях подобных UNIX некий хэш символ или # в самом начале строки обычно означает что такая строка является строкой комментария. Убедитесь что те строки от которых вы желаете наблюдать воздействие не начинаются с некоего символа хэша.

Создание и наполнение базы данных

Для того чтобы имеющийся сервер Zabbix хранил данные, нам требуется некая база данных. Поскольку мы устанавливаем свой сервер с поддержкой MySQL, нам требуется для начала установить соответствующий сервер MySQL. Вы увидите, что мы устанавливаем вместо MySQL MariaDB. Это из- за того, что теперь большинство дистрибутивов предпочитают доставлять MariaDB вместо MySQL, поскольку MySQL был приобретён Oracle и люди опасаются, что Oracle изменит содержание лицензии. Zabbix также поддерживает и прочие базы данных, такие как Oracle, IBM DB2 и PostgreSQL. Та причина, по которй мы применяем MySQL состоит в том, что известно о том её наиболее широком распространении, а также она является предпочитаемой Zabbix SIA базой данных. Это не означает, что прочие решения хуже или менее проверены. Это всего лишь по той причине что Zabbix SIA лучше знаком с MySQL, а не с PostreSQL или прочими поддерживаемыми базами данных:


CentOS/Red Hat 7
# yum install mariadb-server

Ubuntu/Debian
# apt install mysql-server
		

Нам также придётся создать некую базу данных. Запустите некоего клиента MySQL для подключения к MySQL:


CentOS/Red Hat 7 Start the database first and set a DB root password
# systemctl start mariadb; systemctl enable mariadb
# mysql_secure_installation
# mysql -u root -p

Ubuntu/Debian Start the database first and set a DB root password
# mysql_secure_installation
# mysql -u root -p
		

Применение mysql_secure_installation является просто настройкой некоего пароля root для вашей базы данных. Это также позволяет вам настраивать простым манером MySQL/ MariaDB более безопасным образом.

Введите имеющийся пароль root для MySQL (вам придётся установить его в процессе данной установки MariaDB или этот пароль может быть чем- то, что установлено по умолчанию в вашем дистрибутиве). Если вы не знаете этого пароля, вы можете попытаться опустить -p. Такое переключение сообщает данному клиенту о возможности попытки подключаться без пароля (или с неким пустым паролем).

Если вы применяете MySQL Community Edition из соответствующего пакета и его версия 5.7.6 или выше, он вырабатывает случайным образом некий пароль, который сохраняется в logfiles. Для получения дополнительной информации проверьте документацию MySQL.

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


mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost'
identified by 'mycreativepassword';
Query OK, 0 rows affected (0.12 sec)
		

Воспользуйтесь тем паролем, который вы установили в своём файле zabbix_server.conf вместо mycreativepassword.

Выйдите из текущего клиента MySQL введя следующую команду:


mysql> quit
		

Давайте наполним свою вновь созданную базу данных схемой Zabbix и начальными данными. Последующие команды относятся к тем файлам, которые поставляются в соответствующем исходном коде Zabbix. При установке из пакетов эти файлы могут размещаться в таком каталоге как /usr/share/doc/zabbix-server-mysql-4.0.0/ или /sr/share/zabbixserver-mysql:


# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
		

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


mysql> drop database zabbix;
Query OK, 0 rows affected (0.00 sec)
		
[Совет]Совет

Будьте внимательны, и не удаляйте некую базу данных с важной информацией! После удаления данной базы данных Zabbix, создайте её вновь, как это мы делали ранее.

На текущий момент мы должны иметь сам сервер Zabbix, а также установленного и готового к запуску агента.

Запуск

Вам никогда не следует запускать свой сервер или агента Zabbix в качестве root, что очень распространено для большинства процессов демона. Если вы установили Zabbix из пакетов дистрибутива, системные пользователи уже должны быть созданы - если это не так, давайте создадим нового пользователя для запуска этих процессов. Вы можете воспользоваться инструментами, предоставляемыми вашим дистрибутивом или применить наиболее широко доступную программу, useradd, которую следует исполнять от имени root:


# useradd -m -s /bin/bash zabbix
		

Для промышленных систем рассмотрите возможность применения различных учётных записей для самого сервера Zabbix и агента. В противном случае пользователи с правами настройки будут иметь возможность исследовать параметры доступа к базе данных Zabbix путём инструкций агенту на чтение файла настроек самого сервера. Некоторые пакеты дистрибутва, такие как EPEL и OpenSUSE уже применяют отдельные учётные записи с именами zabbixsrv или zabbixs, установленными по умолчанию.

Это создаст некоторого пользователя с именем zabbix с каким- то каталогом home в его местоположении по умолчанию /home/zabbix, а также с оболочкой в /bin/bash.

[Совет]Совет

Хотя использование bash в пробных системах сделает более простой отладку проблем, в промышленных системах рассмотрите возможность применения /bin/nologin или /bin/false.

Если вы выполняли установку из исходного кода, давайте попробуем самый прямой подход - запуск двоичных файлов. Само местоположение таких исполняемых файлов будет зависеть от выбранного вами метода установки. Установка из исходного кода без каких бы то ни было дополнительных параметров поместит исполняемые файлы ваших агента и сервера в /usr/local/sbin; пакеты дистрибутива скорее всего поместят их в /usr/sbin. В предположении что они содержатся в вашем пути, вы можете выяснить где находятся эти двоичные файлы, исполнив следующее:


# which zabbix_server
		
[Совет]Совет

Помните о потенциальной возможности применения дефиса или тире вместо нижнего подчёркивания.

Это покажет нечто аналогичное следующему:


/usr/sbin/zabbix_server
		

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


# whereis zabbix_server
		

Эта команда скорее всего перечислит все двиочные файлы, файлы настройки и основную страницу:


zabbix_server: /usr/sbin/zabbix_server /usr/local/etc/zabbix_server.conf /usr/share/man/man3/zabbix_server
		

Раз вы знаете точное местоположение своих исполняемых файлов, исполните следующее от имени пользователя root:


# <path>/zabbix_agentd
		
[Совет]Совет

Мы применяем zabbix_agentd, который запускается в виде демона. Более старые версии также имели исполняемый zabbix_agent, который предоставлял возможность запуска внутри inetd ( internet service daemon); он не поддерживал активные элементы и, в большинстве случаев, имел худшую производительность чем агент демона.

Это запустит демон агента Zabbix, который должен стартовать втихую демоническим образом. Если эта команда воспроизведёт ошибки, разрешите их прежде чем продолжить. Если это преодолено, продолжите запуском самого сервера Zabbix:

root:


# <path>/zabbix_server
		
[Совет]Совет

Проверьте файл журнала сервера Zabbix, настроенный в zabbix_server.conf. Если имели место ошибки, относящиеся к базе данных, исправьте их и запустите повторно этот сервер Zabbix.

Если вы выполнили установку из пакетов, выполните следующее:


# systemctl start zabbix-agent
# systemctl start zabbix-server
		
[Замечание]Замечание

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

Не стесняйте себя в попытке попробовать прочие параметры, такие как stop и restart - вам должно быть очевидно что они делают.

Вы можете убедиться что ваши службы исполняются при помощи параметра status. Для некоторой не исполняемой службы вы должны получить такое:


# systemctl status zabbix-server
		

Некая же запущенная служба выдаёт следующее:


zabbix-server.service - Zabbix Server
Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2018-08-05 12:57:13 CEST; 1min 39s ago
Process: 1972 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 1974 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
├─1974 /usr/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
├─1979 /usr/sbin/zabbix_server: configuration syncer [synced
configuration in 0.008373 sec, idle 60 sec]
....
		

Хотя и приятно запускать процессы Zabbix, вряд ли это будет именно тот процесс, который предполагается выполнять вручную при каждом запуске системы, поэтому ваши сервер и агент следует добавить в последовательность запуска вашей системы. Она зависит от конкретного дистрибутива, поэтому мы здесь не можем обсудить все возможные варианты. Для RHEL или CentOS должна помочь такая команда:


# systemctl enable zabbix-agent
# systemctl enable zabbix-server
		

Она добавит обе службы для запуска во время загрузки.

Хорошую сводку по Systemd можно найти в следующей документации

Проверка состояния конкретной службы

Хотя метод systemd и является отличным способом проверки состояния службы в некоторых дистрибутивах, он не доступен повсеместно и его не всегда бывает достаточно. Порой вы можете захотеть воспользоваться иными способами определения того запущен ли ваш сервер или агент Zabbix:

  • Проверка запущенных процессов: Наиболее общий способ проверки того запущен ли определённый процесс состоит в просмотре его среди исполняемых процессов. Вы можете проверить исполняется ли уже в реальности ваш демон агента Zabbix воспользовавшись такой командой:

    
    $ ps -C zabbix_agentd
    		
  • Вывод из команды ss: Порой некий демон агента может запуститься, но получить отказ при связывании с соответствующим портом или же этот порт может использоваться каким- то иным процессом. Вы можете проверить будет ли некий иной процесс выполнять ожидание по вашему порту Zabbix или что ваш демон агента Zabbix ожидает по верному порту запустив такую команду:

    
    # ss -tlnp
    		
    [Совет]Совет

    ss является заменой netstat в CentOS/Red Hat; если вы всё ещё предпочитаете применять netstat, имеется возможность установить пакет net-tools - просто помните что netstat объявлена устаревшей.

    Пока вы не станете пользователем root, названия процессов не будут выводиться на печать для процессов иных пользователей. В полученном выводе просмотрите строки, аналогичные следующим:

    
    State  Recv-Q Send-Q Local Address:Port Peer Address:Port
    LISTEN  0     128    *:10050            *:* users:(("zabbix_agentd",pid=1965,fd=4),("zabbix_agentd",pid=1964,fd=4),("zabbix_agentd",pid=1963,fd=4),
    ...
    LISTEN  0     128   *:10051             *:* users:(("zabbix_server",pid=2011,fd=5),("zabbix_server",pid=2010,fd=5),("zabbix_server",pid=2009,fd=5),
    ...
    LISTEN  0     50   *:3306               *:* users:(("mysqld",pid=1832,fd=14))
    LISTEN 0 128 *:22 *:* users:(("sshd",pid=1033,fd=3))
    LISTEN  0     100   127.0.0.1:25        *:* users:(("master",pid=1278,fd=13))
    LISTEN 0 128 :::10050 :::* users:(("zabbix_agentd",pid=1965,fd=5),
    ...
    LISTEN  0     128   :::10051            :::* users:(("zabbix_server",pid=2011,fd=6),("zabbix_server",pid=2010,fd=6),("zabbix_server",pid=2009,fd=6),
    ...
    LISTEN  0     128    :::22              :::* users:(("sshd",pid=1033,fd=4))
    LISTEN 0 100 ::1:25 :::* users:(("master",pid=1278,fd=14))  
    		

    Они указывают на то, что наш процесс zabbix_agentd запущен и выполняет ожидание со всех адресов по порту 10050 - что нам и нужно.

  • Обращение через Telnet к порту: Даже когда некая служба запущена и успешно связана с неким портом, могут присутствовать некие проблемы подключения, возможно, вызываемые неким локальным межсетевым экраном. Чтобы быстро проверить связь с желаемым портом вы можете испробовать следующее:

    
    # ss -tlnp
    		

    Приведённая команда должна открыть соединение с вашим демоном агента Zabbix и этот демон должен не закрывать немедленно такое подключение. Всё это точно так же применимо и к вашему серверу Zabbix, за исключением единственной разницы, что его значением порта по умолчанию является 10051.

    В CentOS имеется возможность что telnet не работает - это происходит по той причине, что нам его следует вначале установить, что можно сделать с помощью такой команды:

    
    # yum install telnet
    		

Веб интерфейс

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

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

Предварительные требования и настройки вашей среды

Конечно, выступая в качестве некого веб- интерфейса Zabbix, он требует некую платформу для работы - какой- то веб сервер со средой PHP. Нам потребуется установить следующее:

  • Некий веб сервер, поддерживаемый PHP, при том что самым распространённым является Apache

  • PHP с версией 5.4.0 или выше

[Замечание]Замечание

Последующие инструкции применимы для установки из исходного кода. Установка из пакетов обычно также устанавливает и сам интерфейс Zabbix. В CentOS вам следует убедиться что у вас имеется установленный и запущенный Apache.

В нашем следующем блоке кода мы покажем вам как устанавливать соответствующий веб сервер в CenOS и Debian:


On CentOS
# yum install httpd php php-ldap php-mysql
# systemctl enable httpd
# systemct start httpd

On Debian/Ubuntu
# apt install apache2 php php7.2-cli php7.2-mysql php7.2-common php7.2-curl php7.2-json php7.2-cgi libapache2-mod-php7.2 php7.2 php7.2-ldap
		

Прлоще всего установить их из пакетов распространения, так как они позаботятся о всех необходимых зависимостях. Просто убедитесь что вы установили верный коннектор PHP к своей базе данных - в нашем случае это php-mysql. Если вы пожелаете выполнять подключения в своей AD/LDAP, вам также понадобится удостовериться что установлен и php-ldap.

[Замечание]Замечание

Некоторые дистрибутивы расщепляют сами модули ядра PHP. Они могут содержать ctype, net-socket, libxml и тому подобное.

После того как вы получили всё это установленным, самое время настроить интерфейс. И снова, имеется вариант для случая когда вы использовали пакеты или делали установку из исходного кода. Если вы сделали это через пакеты, у ваc уже установлен такой интерфейс и вы должны иметь возможность настройки через мастер, которая объясняется далее. Если же вы следуете установке из исходного кода, это всего лишь простое копирование некоторых файлов.

Прежде всего вам предстоит решить куда должен проследовать код вашего интерфейса. Большинство дистрибутивов, которые упаковывают веб серверы, применяют /srv/www/htdocs или /var/www. Если вы скомпилировали веб сервер Apache из его исходного кода, это будет /usr/local/apache2/htdocs (если только вы вручную не изменили соответствующий прфикс, или не установили более раннюю версию Apache). Мы разместим свой интерфейс в некотором простом подкаталоге, zabbix.

Допустим, что вы установили пакеты распространения Apache в веб каталоге root с /srv/www/htdocs, поместить ваш интерфейс туду куда требуется это просто выполнить следующее от имени пользователя root:


# cp -r frontends/php /srv/www/htdocs/zabbix
		

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


CentOS/Red Hat
# firewall-cmd --add-service=http --permanent
# firewall-cmd --reload

Debian / Ubuntu
(standard there is no firewall installed you could use iptables or ufw or similar solution)
# apt install firewalld
		
[Совет]Совет

Zabbix предоставляет настройки для HTTP сразу после установки. Это не является самой лучшей практикой и в промышленном решении предлагается настраивать Zabbix надлежащим образом с применением HTTPS.

Применение мастера настроек через веб интерфейс

У веб- интерфейса имеется некий мастер, который помогает вам нам настраивать его основы. Давайте пройдём те образцы шагов, которые он предлагает.

Самое время включить браузер и перейти по адресу Zabbix: http://<server_ip_or_name&dt;/zabbix. Он должен веоиколепно работать в самых последних версиях большинства браузеров, включая Firefox, Chrome, Safari, Opera, Konqueror и Internet Explorer.

Шаг 1 - Добро пожаловать

Если всё было настроено верно, вы должны получить приветствие от своего мастера установки:

 

Рисунок 1-4



Если это не так, есть несколько вещей которые могли всё испортить. Если данное соединение отказало полностью, Убедитесь что Apache стартовал и нет никакого межсетевого экрана, блокирующего доступ. Если вы наблюдаете пустую страницу или некий PHP код, убедитесь что PHP установлен и настроен надлежащим образом что выполнять синтаксический разбор файлов, завершающихся на .php посредством соответствующей директивы AddType application/x-httpd-php. Если вы наблюдаете вместо своего мастера установки перечисление файлов и каталогов, убедитесь что вы добавили index.php в директиву DirectoryIndex. Если эти хитрости не помогают, сверьтесь с документацией PHP.

Этот экран не предлагает нам много чего для настройки, поэтому просто кликните по Next step.

Шаг 2 - Предварительные требования PHP

На этом шаге ваш мастер установки проверит предварительные требования, относящиеся к PHP. Если вам повезёт, всё будет удовлетворено и вас будут приветствовать зелёные записи:

 

Рисунок 1-5



Если это так, просто кликните по кнопке Next step и продолжите с Шага 3 - Доступ к базе данных.

Однако более часто одна или более записей будут иметь красное предупреждение Fail с перечислением после него. Именно здесь предметы являются более интересными. Проблемы с этого момента распадаются на две категории - PHP installation или configuration.

Такие записи как PHP version, PHP databases support, PHP bcmath, PHP mbstring, PHP gd, PHP gd PNG/JPEG/FreeType support и прочие, которые не перечислены как option, являются проблемами установки PHP. Для их разрешения либо установите соответствующие пакеты распространения (порой именуемые как php5-bcmath, php5-gd, php5-mysql, и так далее) или выполните повторную компиляцию PHP с соответствующими параметрами.

PHP option "memory_limit", PHP option "post_max_size", PHP option "upload_max_filesize", PHP option "max_execution_time", PHP option "max_input_time", а также временная зона PHP являются проблемами настройки, которые все устанавливаются в файле конфигурации php.ini. Этот файл обычно расположен в /etc/php5 либо в чём-то аналогичном для пакетов распространения и в /usr/local/lib для установки из исходного кода. Настройте следующие параметры:


max_execution_time 300
memory_limit 128M
post_max_size 16M
upload_max_filesize 2M
max_input_time 300
always_populate_raw_post_data -1
date.timezone Europe/Riga
 	   

Для временной зоны установите параметр date.timezone на ту временную зону, которая лучше всего соответствует вашей среде. Установкой по умолчанию для Европы является Europe/Riga, а допустимые варианты вы можете просмотреть в http://www.php.net/manual/en/timezones.php.

Убедитесь что вы перезапустили Apache после настройки соответствующего файла конфигурации. Если вы не можете отыскать php.ini, либо вы выполнили изменения, но ваш мастер установки не принимает иъ, создайте некий файл с названием test.php в своём каталоге htdocs только со следующим содержимым:


<?php phpinfo() ?>
 	   

Перейдите к этому файлу при помощи своего браузера и проверьте соответствующее значение для записи Configuration File (php.ini) Path - именно здесь вам следует искать php.ini.

По окончанию всех исправлений кликните по кнопке Next step для продолжения.

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


CentOS/Red Hat
# /etc/httpd/conf.d/zabbix.conf
Debian/Ubuntu
#/etc/apache2/conf-enabled/zabbix.conf
		

Шаг 3 - Доступ к базе данных

Ещё не забыли ту базу данных, которую мы создавали перед этим? Именно её информацию мы размещаем здесь:

 

Рисунок 1-6



Мы уже настроили параметры доступа для своего сервера Zabbix, однако наш интерфейс Zabbix использует иной файл настроек. Для нас должны работать установленные по умолчанию Bold Database type, Database host и Database port. Установите и Database name и User в значение zabbix. Если вы забыли пароль, просто отыщите его или скопируйте из zabbix_server.conf. После ввода всех данных кликните по кнопке Next step. Если все установки верны, ваш мастер должен перейти к следующему этапу.

Шаг 4 - Подробности сервера Zabbix

Следующий раздел позволяет вам определить местоположение вашего сервера Zabbix:

 

Рисунок 1-7



Установленные по умолчанию значения для хоста и порта нам подходят, но мы можем получить преимущества от заполнения поля Name. Содержимое этого поля будет применяться для заголовков страниц и меток в самом правом верхнем углу нашего интерфейса Zabbix - что может нам быть на самом деле удобно если у нас имеется множество установок Zabbix. Будьте свободны при внесении любого названия здесь, однако для данной книги мы озаглавим этот сервер как Zabbix One. Когда вы сделаете это, давайте снова нажмём Next step. Наш следующий экран является итогом тех выборов, которые мы осуществили в своих предыдущих экранах.

Шаг 5 - Краткое содержание

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

 

Рисунок 1-8



Шаг 6 - Написание файла настроек

Достаточно вероятно что в вашем следующем экране вас поприветствует отказ:

 

Рисунок 1-9



Ваш мастер установки пытается выполнить сохранение своего файла настроек, однако с теми правами доступа что он имеет это не должно быть возможным. Предыдущие версии Zabbix поясняли две альтернативы для случившегося. К сожалению, Zabbix 4.0 потерял оправдание для одной из них. Этими двумя возможными решениями являются:

  1. Кликните по Download the configuration file и вручную поместите этот файл в каталог htdocs/zabbix/conf.

  2. Сделайте свой каталог htdocs/zabbix/conf доступным на запись со стороны веб сервера (исполняя от имени root). Примените такие команды:

    
    # chown < username>  /path/to/htdocs/zabbix/conf
    # chmod 700 /path/to/htdocs/zabbix/conf
    		

Очевидно, что нам следует вставить верные имя пользователя и каталог в эти команды. Помните, что обычными местоположениями являются /var/www/html и /usr/local/apache2/htdocs - вы пользовались одной из них для копирования кода интерфейса Zabbix. Обычными пользователями являются wwwrun, www-data, nobody и daemon - вы можете какой из них является правильным для вашей системы запустив это:


$ ps aux | grep http
		

Вы также можете исполнить и такое:


$ ps aux | grep apache
		

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

[Совет]Совет

Вы также можете пропустить свой мастер настроек скопировав abbix.conf.php.example в каталоге conf в zabbix.conf.php и изменив его напрямую. В этом случае вам надлежит вручную проверить что все требования установки и настройки PHP приведены в соответствие.

Вам предлагается ограничить имеющиеся полномочия на данный файл по завершению всего на доступность толко по чтению самим пользователем веб сервера исполнив следующие команды от имени root:


# chmod 440 /path/to/htdocs/zabbix/conf/zabbix.conf.php
# chown root /path/to/htdocs/zabbix/conf/
		

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

Шаг 7 - Завершение работы с мастером

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

 

Рисунок 1-10



Шаг 8 - Регистрация

Сразу после того как вы нажали Finish вы должны обнаружить окно регистрации:

 

Рисунок 1-11



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

  • Username : Admin

  • Password : zabbix

Это позволит вам получить ваш начальный экран интерфейса, который скинет вас в совершенно пустую инструментальную панель:

 

Рисунок 1-12



Поздравляем! Ваш веб интерфейс теперь настроен и вы зарегистрировались в нём.

[Совет]Совет

В дальнейшем имеется и более простой способ изменения настроек вашего интерфейса Zabbix. Файл настроек zabbix.conf.php может быть изменён в подробностях доступа к базе данных, хоста и порта самого сервера Zabbix, а также того названия сервера, которое вы вводили на четвёртом этапе. Большинство из этих параметров в этом файле самостоятельно себя обозначают; например, $ZBX_SERVER_NAME изменит название вашего сервера.

Если вы подробнее приглядитесь к правому верхнему углу, вы заметите нечто знакомое: это само имя сервера, которе мы ввели ранее в своём мастере настройки. Оно позволяет проще отличать данную установку от прочих экземпляров Zabbix; например, когда вам приходится иметь и проверочный и промышленный экземпляры. Кроме того, это название также применяется в заголовках страниц, а следовательно и в заголовках закладок в большинстве современных браузеров. Когда открыто множество закладок, у вас должна иметься возможность отыскать это название экземпляра прямо в самой закладке. Нет необходимости кликать на каждую индивидуально и проверять соответствующий URL или правый верхний угол соответствующего интерфейса Zabbix:

 

Рисунок 1-13



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

 

Рисунок 1-14



Теперь мы сосредоточимся на этом виджете. Наш интерфейс успешно отображает, что наш сервер Zabbix запущен и показывает те хост и порт, к которым он пробует выполнить подключение. Он также знает некие основные вещи о настройке Zabbix - всего имеются настроенными 76 хостов. Постойте, что это? Мы всего лишь установили его и больше ничего не настраивали; как их может быть уже 76? Давайте рассмотрим внимательнее и заглянем в колонку DETAILS. Эти значения соответствуют тем описаниям, в скобках, которые размещены в колонке PARAMETER. Итак у нас 0 отслеживаемых хостов, 1 который не подлежит отслеживанию и 75 шаблонов. Теперь это имеет смысл - 75 из этих 76 являются шаблонами, а не реальными хостами. И всё же имеется один хост, кторый не подлежит отслеживанию что это за чёрт?

Кликните по Configuration, а затем Hosts. Вы должны увидеть такой экран:

 

Рисунок 1-15



[Замечание]Замечание

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

Итак, вот оно. Как оказывается, в базе данных Zabbix по умолчанию уже имеется настроенным один сервер - наш локальный сервер Zabbix. Он отключён по умолчанию, на что указано в экране System information и здесь строкой Disabled в соответствующей колонке Status.

[Совет]Совет

В онлайн руководстве Zabbix имеется множество технических подробностей.

Выводы

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

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

Вопросы

  1. Назовите три основных компонента, которые нам следует настроить в некотором сервере Zabbix.

  2. На каком языке написан сам сервер Zabbix?

  3. На каком языке написан интерфейс Zabbix?

  4. Какие базы помимо MySQL поддерживает Zabbix?

Дальнейшее чтение

Ниже приведён перечень URL, которые должны помочь вам отыскать некую дополнительную информацию относительно того что мы рассматривали в этой главе: