2 Установка
1 Как получить Zabbix
Проверьте домашнюю страницу Zabbix по адресу http://www.zabbix.com для получения информации о текущей версии и инструкций по загрузке исходных кодов.
Zabbix распространяется в виде исходного кода, однако имеются дистрибутивы уже скомпилированных исполняемых файлы для разных ОС.
2 Требования
2.1 Аппаратные требования
2.1.1 Требования к памяти
Zabbix требуется и оперативная память, и память на жестком диске. 128 МБ оперативной памяти и 256 МБ свободного места на жестком диске, может быть неплохо для начала. Тем не менее, объем необходимой памяти диска, очевидно, зависит от количества узлов сети и параметров, которые будут контролироваться. Если вы планируете сохранять историю контролируемых параметров длительный срок, вы должны иметь ввиду, что по крайней мере будет нужно иметь несколько гигабайт для хранения данных истории в базе данных.
Каждый процесс демона Zabbix требует несколько подключений к базе данных. Объем памяти, необходимой для подключения к базе данных, зависит от настроек базы данных.
2.1.2 Требования к процессору
Zabbix и особенно база данных может потребовать значительных процессорных ресурсов в зависимости от количества контролируемых параметров и выбранной базы данных.
2.1.3 Другое оборудование
Потребуется Последовательный порт передачи данных и GSM модем для использования СМС уведомлений встроенных в Zabbix. Конвертер USB-to-serial так же будет работать.
2.1.4 Примеры конфигураций оборудования
В таблице приводятся несколько вариантов аппаратных конфигураций:
Имя | Платформа | ЦПУ/Память | База данных | Количество контролируемых узлов сети |
---|---|---|---|---|
Маленькая | Ubuntu Linux | PII 350MHz 256MB | MySQL MyISAM | 20 |
Средняя | Ubuntu Linux 64 bit | AMD Athlon 3200+ 2GB | MySQL InnoDB | 500 |
Большая | Ubuntu Linux 64 bit | Intel Dual Core 6400 4GB | RAID10 MySQL InnoDB или PostgreSQL | >1000 |
Очень большая | RedHat Enterprise | Intel Xeon 2xCPU 8GB | Fast RAID10 MySQL InnoDB, PostgreSQL или Oracle | >10000 |
2.2 Поддерживаемые платформы
В связи с требованиями безопасности и критически важных контролируемых серверов, только операционная система UNIX является единственной операционной системой, которая может обеспечить необходимую производительность, отказоустойчивость и гибкость. Zabbix работает на всех ведущих версиях ОС.
Zabbix протестирован на следующих платформах:
-
AIX
-
FreeBSD
-
HP-UX
-
Linux
-
Mac OS/X
-
NetBSD
-
OpenBSD
-
SCO Open Server
-
Solaris
-
Windows 2000, 2003, XP, Vista (только Zabbix агент)
2.3 Требования к программному обеспечению
Zabbix построен на современном ВЕБ сервере Apache, ведущих СУБД, и языке сценариев PHP.
Следующее программное обеспечение потребуется для работы Zabbix:
Приложение | Версия | Комментарии |
---|---|---|
Apache | 1.3.12 или более поздняя | |
PHP | 5.0 или более поздняя | |
PHP модули: php-gd |
GD 2.0 или более поздняя | Модуль PHP GD должен поддерживать формат PNG. |
Поддержка PHP TrueType | –with-ttf | |
Поддержка PHP bc-math | php-bcmath, –enable-bcmath | |
Поддержка PHP XML | php-xml или php5-dom, если поставляется как отдельный пакет от дистрибьютора | |
Поддержка сессий PHP | php-session, если поставляется как отдельный пакет от дистрибьютора | |
Поддержка сокетов PHP | php-net-socket, –enable-sockets. Требуется для поддержки пользовательских скриптов. | |
Поддержка PHP multibyte | php-mbstring, –enable-mbstring | |
IBM DB2 ibm_db2 |
Требуется, если используется IBM DB2 в качестве базы для Zabbix. | |
MySQL php-mysql |
3.22 или более поздняя | Требуется, если используется MySQL в качестве базы для Zabbix. |
Oracle oci8 |
Требуется, если используется Oracle в качестве базы для Zabbix. | |
PostgreSQL php-pgsql |
7.0.2 или более поздняя если Zabbix < 1.8.9 7.4 или более поздняя если Zabbix >= 1.8.9 |
Требуется, если используется PostgresSQL в качестве базы для Zabbix. Подумайте об использовании PostgreSQL 8.x или более поздней версии для большей производительности. Предлагаем использовать по крайней мере PostgreSQL версии 8.3, который показывает очень хорошую производительность VACUUM. |
SQLite php-sqlite3 |
3.3.5 или более поздняя | Требуется, если используется SQLite в качестве базы для Zabbix. |
2.3.1 Веб-браузер на стороне клиента
Требуется поддержка HTML и PNG изображений. MS Explorer (5.xx и 6.xx) и Mozilla 1.x работают отлично. Cookies и Java скрипты должны быть включены. Поддерживаются последние версии Mozilla Firefox, Microsoft Internet Explorer, Opera и Konqueror. Также и другие браузеры (Google Chrome, Apple Safari) могут работать с Zabbix.
2.4 Требования к серверу
Требование | Описание |
---|---|
OpenIPMI | Требуется для поддержки IPMI |
libssh2 | Требуется для поддержвки SSH. Версия 1.0 или более новая. |
fping | Требуется для элементов данных ICMP ping. |
2.5 Выбор СУБД
Сервер и прокси Zabbix поддерживают пять СУБД:
-
IBM DB2
-
MySQL
-
Oracle
-
PostgreSQL
-
SQLite
2.6 Размер базы данных
Данные конфигурации Zabbix требуют фиксированное количество дискового пространства и сильно не увеличиваются.
Размер базы данных Zabbix в основном зависит от следующих переменных, которые определяют историю собранных данных:
-
Количество обрабатываемых запросов в секунду
Это среднее количество новых значений, которые Zabbix сервер получает каждую секунду. Например: Если имеется 3000 элементов данных с интервалом проверки 60 секунд, то количество обрабатываемых запросов за секунду рассчитывается 3000/60 = 50. Это означает, что каждую секунду в базу данных Zabbix добавляется 50 новых записей.
-
Настройки очистки истории в базе данных (Housekeeper)
Zabbix хранит значения определенный период времени, обычно несколько недель или месяцев. Каждое новое значение требует определенный объем дискового пространства и индексов.
Так что, если требуется сохранение истории 30 дней и каждую секунду в базу данных добавляется 50 новых записей, общее количество значений будет равно примерно (30*24*3600)* 50 = 129.600.000 или около 130М значений.
В зависимости от типа базы данных, типа полученных значений (с плавающей точкой, целые числа, строки, лог файлы и т.д.) может потребоваться от 40 байт до сотен байт дискового пространства для хранения значения. Обычно одно значение занимает около 50 байт.
В нашем случае это означает, что 130M значений потребуют 130M * 50 байт = 6.5GB дискового пространства.
-
Настройки очистки тенденций в базе данных (Housekeeper)
Zabbix хранит ежечасную статистику значений max/min/avg/count для каждого элемента данных в таблице trends и trends_uint. Эти данные используются для отслеживания тенденций и для графиков при отображении большого периода времени. Период в 1 час не является настраиваемым.
Базе данных Zabbix, в зависимости от типа базы данных, требуется около 128 байт на один элемент.
Предположим, что если требуется хранить тенденции в течении 5 лет. Значения 3000 элементов данных потребуют (3000/3600)*(24*3600*365)* 128 = 3.4ГБ за год, или 16.8ГБ за 5 лет. Первое значение в формуле 3600 представляет собой период усреднения тенденций в один час.
-
Настройки очистки событий в базе данных (Housekeeper)
Каждое событие требует около 130 байт дискового пространства. Большое количество событий генерируется Zabbix сервером ежедневно. В самом худшем случае, мы можем предположить, что Zabbix порождает одно событие в секунду.
Это означает, что если требуется хранить события 3 года, то для этого потребуется 3*365*24*3600* 130 = 12.3ГБ дискового пространства.
Представленная ниже таблица содержит формулы для расчета требуемого пространства жесткого диска для системы мониторинга Zabbix:
Параметр | Формула для расчетам занимаемого места(в байтах) |
---|---|
Конфигурация Zabbix | Фиксированный размер. Ориентировочно 10MB или меньше. |
История | дней*(элементов/частота обновления)*24*3600*байт элементы : количество элементов данных дней : количество дней хранения истории частота обновления : среднее значение периода проверки элементов данных байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 50 байт |
Тенденции | дней*(элементов/3600)*24*3600*байт элементов : количество элементов данных дней : количество дней хранения тенденций байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 128 байт. |
События | дней*событий*24*3600*байт событий : количество событий в секунду. Одно (1) событие в худшем случае. дней : количество дней хранения событий байт : количество байт, требуемых для одного значения, зависит от типа базы данных, около 130 байт. |
Общее количество требуемого места на жестком диске рассчитывается:
Конфигурация + История + Тенденции + События
После установки Zabbix такое дисковое пространство более не будет использовано сразу. Размер базы данных будет увеличиваться со временем, но потом рост все же остановится – это зависит от настроек очистки базы данных (Housekeeper).
2.7 Синхронизация времени
Очень важно иметь точную дату и время системы на сервере с запущенным Zabbix. ntpd один из наиболее популярных демонов синхронизации времени хоста с временем на остальных серверах.
3 Компоненты
3.1 Компоненты Zabbix
Zabbix состоит из нескольких основных компонентов программного обеспечения, назначение которых изложены ниже.
3.2 Zabbix сервер
Это ядро программного обеспечения Zabbix. Сервер может удаленно проверять сетевые сервисы (такие как веб-серверы и почтовые серверы), используя простые проверки сервисов, но он также является центральным компонентом, которому агенты сообщают информацию о доступности, целостности и статистику. Сервер является хранилищем, в котором хранятся все конфигурационные, статистические и оперативные данные, и он является тем компонентом в программном обеспечении Zabbix, который оповестит администраторов в случае возникновения проблем с любым контролируемым оборудованием.
Zabbix может также выполнять мониторинг без агентов, а также мониторинг сетевых устройств с помощью SNMP агентов.
3.3 Zabbix прокси
Прокси это необязательный компонент развертывания Zabbix. Прокси собирает данные о производительности и доступности для Zabbix сервера. Все собранные данные заносятся в буфер на локальном уровне и передаются Zabbix серверу, к которому принадлежит прокси.
Zabbix прокси является идеальным решением для централизованного мониторинга отдаленных мест, филиалов, сетей, не имеющих местных администраторов.
Zabbix прокси может быть также использован для распределения и снятия нагрузки с одного Zabbix сервера. В этом случае, прокси только собирает данные, что обеспечивает меньшую нагрузку на ЦПУ и на ввод/вывод диска на самом сервере.
3.4 Zabbix агент
Для активного мониторинга локальных ресурсов и приложений (таких как жесткие диски, память, статистика процессора и т.д.) на системах в сети, должны быть запущенны Zabbix агенты. Агент будет собирать информацию о работе системы, на которой он работает, и предоставлять эти данные Zabbix серверу для дальнейшей обработки. В случае возникновения проблем (например, жесткий диск заполнился или аварийно завершился некий процесс), Zabbix сервер может предупреждать администраторов конкретного оборудования, от которого и возникла проблема.
Zabbix агенты являются чрезвычайно эффективными потому что они используют родные системные вызовы для сбора статистической информации.
3.5 Веб-интерфейс
Веб-интерфейс предоставлен для обеспечения легкого доступа к данным мониторинга и конфигурации системы Zabbix откуда угодно и с любой платформы. Интерфейс является частью Zabbix сервера, и обычно (но не обязательно), запущен на том же физическом сервере что и Zabbix сервер.
4 Установка из исходных кодов
4.1 Требования к программному обеспечению
Сборка Zabbix сервера или агентов из исходных кодов требует дополнительного программного обеспечения (требуемые версии).
Потребуется следующее программное обеспечение для компилирования Zabbix:
Одна из следующих СУБД:
-
Файлы заголовков и библиотек IBM DB2
Требуются файлы заголовков и библиотек из CLI.
-
Файлы заголовков и библиотек MySQL
-
Файлы заголовков и библиотеки Oracle
Требуются файлы заголовков и библиотек из OCI.
-
Файлы заголовков и библиотек PostgreSQL
-
Файлы заголовков и библиотек SQLite
Файлы заголовков и библиотек NET-SNMP (или UCD-SNMP). Требуется для поддержки SNMP. Опционально.
Файлы заголовков и библиотек Iksemel. Требуется для поддержки отправки сообщений Jabber. Опционально.
Файлы заголовков и библиотек Libcurl. Требуется для модуля Веб мониторинга. Опционально.
Компилятор C. GNU C является лучшим выбором для открытых платформ. Другие (HP, IBM) C компиляторы также могут быть использованы.
GNU Make. GNU make требуется для создания Zabbix Makefiles.
4.2 Структура дистрибутива Zabbix
-
src
Папка содержит исходные коды для всех процессов Zabbix, исключая веб-интерфейс.
-
src/zabbix_server
Папка содержит Makefile и исходные коды для zabbix_server.
-
src/zabbix_agent
Папка содержит Makefile и исходные коды для zabbix_agent и zabbix_agentd.
-
src/zabbix_get
Папка содержит Makefile и исходные коды для zabbix_get.
-
src/zabbix_sender
Папка содержит Makefile и исходные коды для zabbix_sender.
-
src/libs
Папка содержит Makefile и исходные коды для общих библиотек процессов Zabbix.
-
include
Папка содержит файлы include Zabbix.
-
misc
-
misc/init.d
-
Папка содержит скрипты автозапуска для разных платформ.
-
frontends
-
frontends/php
-
Папка содержит файлы для Веб-интерфейса PHP.
-
create
Папка содержит SQL скрипт для первичного создания базы данных.
-
create/schema
Папка содержит схемы создания базы данных.
-
create/data
Папка содержит данные для первичного создания базы данных.
-
upgrades
Папка содержит процедуры обновления с других версий Zabbix.
4.3 Zabbix сервер
На стороне сервера
Шаг 1
Создайте аккаунт суперпользователя Zabbix.
Сервер будет работать под этим пользователем. Для использования в производственной среде вы должны создать выделенный непривилегированный аккаунт (обычно используется 'zabbix'). Запуск Zabbix из под 'root','bin', или из под любых других аккаунтов со специальными правами может представлять угрозу безопасности. Не делайте этого!
Если Zabbix сервер и агент работают на одной машине, то рекомендуется использовать разных пользователей для запуска сервера и для запуска агента. В противном случае, если сервер и агент запущены под одним пользователем, агент будет иметь доступ к файлу конфигурации сервера и любой пользователь с правами Администратора в Zabbix может с легкостью получить, например, пароль от базы данных.
Шаг 2
Распакуйте исходные коды Zabbix
shell> tar -zxf zabbix-1.8.tar.gz
Шаг 3
Создайте базу данных для Zabbix
С исходными кодами Zabbix предоставляются SQL скрипты, которые можно использовать для создания требуемой схемы в базе данных, а также для заполнениями настройками по умолчанию. Есть отдельные скрипты для IBM DB2, MySQL, Oracle, PostgreSQL и SQLite.
Для IBM DB2:
shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768" shell> cd create/schema shell> db2batch -d zabbix -f ibm_db2.sql shell> cd ../data shell> db2batch -d zabbix -f data.sql shell> db2batch -d zabbix -f images_ibm_db2.sql
Для MySQL:
shell> mysql -u<username> -p<password> mysql> create database zabbix character set utf8; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix shell> cd ../data shell> cat data.sql | mysql -u<username> -p<password> zabbix shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix
Для Oracle (мы предполагаем, что пользователь zabbix с паролем password существует и имеет права на создание объектов в базе данных в сервисе ORCL):
shell> cd create
Скопируйте папку data/images куда-нибудь на сервер oracle, например /home/oracle:
shell> scp -r data/images user@host:/home/oracle
Измените файл data/images_oracle.sql и установите переменную images_dir в ”/home/oracle/images”:
CREATE OR REPLACE DIRECTORY image_dir AS '/home/oracle/images'
Выполните для импорта данных:
shell> sqlplus zabbix/password@host/ORCL
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
Для PostgreSQL:
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix shell> cd ../data shell> cat data.sql | psql -U <username> zabbix shell> cat images_pgsql.sql | psql -U <username> zabbix
Для SQLite:
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cd ../data shell> cat data.sql | sqlite3 /var/lib/sqlite/zabbix.db shell> cat images_sqlite3.sql | sqlite3 /var/lib/sqlite/zabbix.db
Шаг 4
Сконфигурируйте и скомпилируйте исходные коды для вашей системы
Исходные коды должны быть скомпилированы как для сервера (машина мониторинга), так и для клиентов (машины, которые мониторятся). Для конфигурирования исходных кодов для сервера вы должны указать какая база данных будет использоваться.
shell> ./configure --enable-server --with-ibm-db2 --with-net-snmp --with-jabber --with-libcurl # для IBM DB2 + Jabber + Веб-мониторинг
или
shell> ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl # для MySQL + Jabber + Веб-мониторинг
или
shell> ./configure --enable-server --with-oracle --with-net-snmp --with-jabber --with-libcurl # для Oracle + Jabber + Веб-мониторинг
или
shell> ./configure --enable-server --with-pgsql --with-net-snmp --with-jabber --with-libcurl # для PostgreSQL + Jabber + Веб-мониторинг
или
shell> ./configure --enable-server --with-sqlite3 --with-net-snmp --with-jabber --with-libcurl # для SQLite3 + Jabber + Веб-мониторинг
Используйте флаг –with-oracle чтобы указать расположение OCI API.
Однако, если вы хотите скомпилировать исполняемые файлы клиента вместе с исполняемыми файлами сервера, запустите:
shell> ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl
Шаг 5
Соберите и установите все
shell> make install
По умолчанию make install устанавливает все файлы в папки /usr/local/sbin, /usr/local/lib и т.д.. Убедитесь, что у вас хватает полномочий для записи в эти папки.
Вы можете указать другой путь для установки, который отличается от /usr/local, используя флаг –prefix, например –prefix=/home/zabbix. В этом случае исполняемые файлы демонов будут установлены в папку <prefix>/sbin, а утилиты в папку <prefix>/bin. Man pages будут установлены в папку <prefix>/share.
Шаг 6
Настройте /etc/services
Этот шаг не обязательный, однако рекомендуемый. На стороне клиента (машина, которая мониторится), добавьте следующие строки в /etc/services:
zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper
Обратите внимание, что номера портов являются официальными портами Zabbix зарегистрированными в IANA.
Шаг 7
Настройте /etc/inetd.conf
Если вы планируете использовать zabbix_agent вместо рекомендуемого zabbix_agentd, вы должны добавить следующие строки:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Перезапустите inetd
shell> killall -HUP inetd
Шаг 8
Создайте директорию, где будут хранится конфигурационные файлы
mkdir /etc/zabbix
Шаг 9
Настройте /etc/zabbix/zabbix_agentd.conf
Вы должны настроить этот файл для каждого узла сети где установлен zabbix_agentd. Файл должен содержать IP адрес Zabbix сервера. Соединения с другими хостами будут запрещены. Вы можете использовать файл misc/conf/zabbix_agentd.conf в качестве примера.
Шаг 10
Настройте /etc/zabbix/zabbix_server.conf
Для небольших установок (до 10 наблюдаемых узла сети), параметров по умолчанию будут достаточно. Однако, вам нужно будет изменить параметры по умолчанию, для достижения максимальной производительности в Zabbix. Смотрите раздел оптимизация производительности для получения более подробных сведений.
Вы можете использовать misc/conf/zabbix_server.conf в качестве примера.
Шаг 11
Запустите процессы сервера
Запустите zabbix_server на стороне сервера.
shell> cd sbin shell> ./zabbix_server
Шаг 12
Запустите агентов
Запустите zabbix_agentd на нужных узлах сети.
shell> cd sbin shell> ./zabbix_agentd
4.4 Прокси Zabbix
Прокси Zabbix – это специальный демон. Он не требуется для запуска процесса сбора информации в обычном случае.
Шаг 1
Создайте аккаунт суперпользователя Zabbix
Прокси будет работать под этим пользователем. Для использования в производственной среде вы должны создать выделенный непривилегированный аккаунт (обычно используется 'zabbix'). Запуск Zabbix из под 'root','bin', или из под любых других аккаунтов со специальными правами может представлять угрозу безопасности. Не делайте этого!
Шаг 2
Распакуйте исходные коды Zabbix
shell> tar -zxf zabbix-1.8.tar.gz
Step 3
Создайте базу данных для Zabbix. Опционально.
С исходными кодами Zabbix поставляются SQL скрипты, которые можно использовать для создания требуемой схемы в базе данных. Имеются отдельные скрипты для IBM DB2, MySQL, Oracle, PostgreSQL и SQLite.
Для IBM DB2:
shell> db2 "create database zabbix using codeset utf-8 territory us pagesize 32768" shell> cd create/schema shell> db2batch -d zabbix -f ibm_db2.sql
Для MySQL:
shell> mysql -u<username> -p<password> mysql> create database zabbix character set utf8; mysql> quit; shell> cd create/schema shell> cat mysql.sql | mysql -u<username> -p<password> zabbix
Для Oracle (мы предполагаем, что пользователь zabbix с паролем password существует и имеет права на создание объектов в базе данных):
shell> cd create/schema shell> cat oracle.sql | sqlplus zabbix/password >out.log
ALTER DATABASE NATIONAL CHARACTER SET UTF8;
Для PostgreSQL:
shell> psql -U <username> psql> create database zabbix; psql> \q shell> cd create/schema shell> cat postgresql.sql | psql -U <username> zabbix
Для SQLite:
shell> cd create/schema shell> cat sqlite.sql | sqlite3 /var/lib/sqlite/zabbix.db
Шаг 4
Сконфигурируйте и скомпилируйте исходные коды для вашей системы
Исходные коды должны быть скомпилированы для демона Zabbix прокси. Для настройки исходных кодов прокси вы должны указать какая база данных будет использоваться.
shell> ./configure --enable-proxy --with-ibm-db2 --with-net-snmp # для IBM DB2 + мониторинг по SNMP
или
shell> ./configure --enable-proxy --with-mysql --with-net-snmp # для MySQL + мониторинг по SNMP
или
shell> ./configure --enable-proxy --with-pgsql --with-net-snmp # для PostgreSQL + мониторинг по SNMP
или
shell> ./configure --enable-proxy --with-oracle --with-net-snmp –with-libcurl # для Oracle + мониторинг по SNMP
или
shell> ./configure --enable-proxy --with-sqlite3 --with-net-snmp # for SQLite3 + SNMP monitoring
Используйте флаг –with-oracle для указания расположения OCI API.
Однако, если вы хотите скомпилировать исполняемые файлы клиента вместе с исполняемыми файлами прокси, запустите:
shell> ./configure --enable-proxy --enable-agent --with-mysql --with-net-snmp
Флаг –enable-static может быть использован для принудительной статической линковки.
Шаг 5
Соберите и установите все
shell> make install
По умолчанию, make install устанавливает все файлы в папки /usr/local/sbin, /usr/local/lib и т.д.. Вы можете указать другой путь установки,который отличается от /usr/local, используя флаг –prefix
Шаг 6
Настройте /etc/services
Этот шаг опциональный, однако рекомендуемый. На стороне клиента (машина, которая мониторится), добавьте следующие строки в /etc/services:
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
Шаг 7
Настройте /etc/inetd.conf
Если вы планируете использовать zabbix_agent вместо рекомендуемого zabbix_agentd, вы должны добавить следующие строки:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Перезапустите inetd
shell> killall -HUP inetd
Измените настройки по умолчанию в файлах конфигурации
Шаг 8
Настройте /etc/zabbix/zabbix_proxy.conf
Для небольших установок (до 10 наблюдаемых узлов сети), параметры по умолчанию будут достаточны. Однако, вам нужно будет изменить параметры по умолчанию, для достижения максимальной производительности Zabbix прокси.
Убедитесь, что вы правильно установили параметры имени узла сети и сервера.
Вы можете использовать misc/conf/zabbix_proxy.conf в качестве примера.
Шан 9
Запустите процесс Zabbix прокси
Запустите zabbix_proxy:
shell> cd sbin shell> ./zabbix_proxy
4.5 Zabbix агент
На стороне клиента
Шаг 1
Создайте аккаунт суперпользователя Zabbix
Агент будет работать под этим пользователем. Для использования в производственной среде вы должны создать выделенный непривилегированный аккаунт (обычно используется 'zabbix'). Zabbix агенты защищены от запуска из под аккаунта root.
Шаг 2
Распакуйте исходные коды Zabbix
shell> tar -zxf zabbix-1.8.tar.gz
Шаг 3
Сконфигурируйте и скомпилируйте исходные коды для вашей системы
Исходные коды должны быть скомпилированы только для клиента.
Для настройки исходных кодов клиента выполните:
shell> ./configure --enable-agent
Шаг 4
Соберите агента
shell> make
Шан 5
Настройте /etc/services
Этот шаг опциональный, однако рекомендуемый.
На стороне клиента (наблюдаемый сервер), добавьте следующие строки в /etc/services:
zabbix_agent 10050/tcp zabbix_trap 10051/tcp
Шаг 6
Настройте /etc/inetd.conf
Если вы планируете использовать zabbix_agent вместо рекомендуемого zabbix_agentd, вы должны добавить следующие строки:
zabbix_agent stream tcp nowait.3600 zabbix /opt/zabbix/bin/zabbix_agent
Перезапустите inetd
shell> killall -HUP inetd
Шаг 7
Создайте директорию, где будут хранится конфигурационные файлы
mkdir /etc/zabbix
Шаг 8
Настройте /etc/zabbix/zabbix_agentd.conf
Вы должны настроить этот файл для каждого узла сети где установлен zabbix_agentd. Файл должен содержать IP адрес Zabbix сервера. Соединения с другими хостами будут запрещены. Вы можете использовать misc/conf/zabbix_agentd.conf в качестве примера.
Шаг 9
Запустите zabbix_agentd на всех машинах, которые мониторятся
shell> /opt/zabbix/bin/zabbix_agentd
4.6 Веб-интерфейс Zabbix
Шаг 0
Веб-интерфейс Zabbix написан на языке PHP, поэтому чтобы его запустить вам потребуется веб-сервер с поддержкой PHP. Установка производится путем простого копирования PHP файлов в папку HTML вебсервера. Предлагается использовать подпапку вместо корневой папки HTML.
Общепринятые места размещения папок HTML документов для веб-сервера Apache составляют:
-
/usr/local/apache2/htdocs (папка по умолчанию при установке Apache из исходных кодов)
-
/srv/www/htdocs (OpenSUSE, SLES)
-
/var/www/html (Fedora, RHEL, CentOS)
-
/var/www (Debian, Ubuntu)
Чтобы создать подпапку и скопировать файлы веб-интерфейса Zabbix, выполните следующие команды, заменив <htdocs> на корректный путь для вашего случая:
mkdir <htdocs>/zabbix cd frontends/php cp -a . <htdocs>/zabbix
Шаг 1
Шаг 2
Шаг 3
Убедитесь, что все требования к программному обеспечению выполнены.
Требование | Минимальное значение | Описание |
---|---|---|
Версия PHP | 5.0 | |
Лимит памяти PHP | 8МБ | В php.ini: memory_limit = 128M |
Максимальный размер PHP Post | 8МБ | В php.ini: post_max_size = 8M |
Максимальный размер загружаемых файлов в PHP | 16MB | В php.ini: upload_max_filesize = 16MB |
Максимальное время выполнения PHP | 300 секунд | В php.ini: max_execution_time = 300 |
Максимальное время input PHP | 300 секунд | В php.ini: max_input_time = 300 |
Часовой пояс в PHP | В php.ini: date.timezone Варианты часовых поясов здесь |
|
Поддержка базы данных в PHP скриптах | одна из: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite | Один из следующих модулей должен быть установлен: ibm_db2, php-mysql, oci8, php-pgsql, php-sqlite3 |
PHP BC math | Любой | Скомпилированный с PHP5. |
поддержка PHP многобайтовости | Любой | Скомпилированный с PHP5 или отдельным модулем php-mbstring. |
PHP MB String | Любой | Скомпилированный с PHP5. |
PHP Sockets | Любой | Скомпилированный с PHP5. |
PHP Session | Любой | Скомпилированный с PHP5. |
Версия GD | 2.0 или выше | Модуль php-gd. |
Форматы изображений | По крайней мере PNG | Модуль php-gd. |
Модуль libxml | Любой | Скомпилированный с PHP5. |
Модуль ctype | Любой | Скомпилированный с PHP5. |
Шаг 4
Шаг 5
Шаг 6
Шаг 7
Шаг 8
Шаг 9
Только для распределенного мониторинга!
Если вы используете распределенный мониторинг вы должны один раз выполнить:
shell> ./zabbix_server –n <nodeid>
где Node ID уникальный идентификатор Ноды. Например:
shell> ./zabbix_server –n 1
Эта команда сконвертирует данные в базе данных для использования с Нодой ID '1', а также добавит локальную Ноду.
Шаг 10
5 Обновление
5.1 Изменение уровня релизов
Для изменения уровня релизов требуется только обновление исполняемых файлов и веб-интерфейса. Если упомянуто в заметках к релизу, в базу данных опционально могут быть добавлены индексы для повышения производительности. Обновление можно выполнять легко, перескакивая несколько версий, например, обновление с 1.8.1 на 1.8.3 может быть выполнено за один шаг.
Смотрите заметки по установке и обновлению для получения более подробной информации.
6 Использование готового решения Zabbix
В качестве альтернативы ручной настройке или повторному использованию существующего сервера для Zabbix, пользователи могут загрузить готовое решение Zabbix.
Для запуска, загрузите готовое решение и перейдите в вашем браузере по IP, который был получен по DCHP.
Готовое решение Zabbix основано на следующих версиях OpenSUSE:
Версия готового решения Zabbix | Версия OpenSUSE |
---|---|
1.8.2 | 11.2 |
1.8.3 | |
1.8.4 | 11.3 |
1.8.5 | |
1.8.6 | |
1.8.7 | 11.4 |
1.8.8 | |
1.8.9 | |
1.8.10 | |
1.8.11 | |
1.8.12 |
Образ доступен в следующих форматах:
-
vmdk (VMWare/Virtualbox);
-
OVF (Open Virtualisation Format);
-
CD iso;
-
Образ HDD/flash;
-
Xen guest.
Этот образ содержит настроенный Zabbix сервер, работающий с базой данных MySQL, также доступен и веб-интерфейс.
Готовое решение было создано с помощью SUSE Studio.
6.1 Изменения в конфигурации SUSE
Имеется несколько изменений применительно к базовой конфигурации OpenSUSE.
6.1.1 Изменения настроек MySQL
-
Отключен бинарный лог;
-
InnoDB настроен на хранение данных каждой таблицы в отдельном файле.
6.1.2 Использование статического IP адреса
По умолчанию готовое решение получает IP адрес по DHCP. Для того, чтобы указать статический IP адрес выполните:
-
Зайдите под пользователем root;
-
Откройте файл /etc/sysconfig/network/ifcfg-eth0 в вашем любимом редакторе;
-
Установите переменную BOOTPROTO в static;
-
Установите IPADDR, NETMASK и другие параметры как требуется для вашей сети;
-
Создайте файл /etc/sysconfig/network/routes. Например для маршрута по умолчанию используйте default 192.168.1.1 – – (заменив вашим адресом шлюза).
-
Выполните команду rcnetwork restart.
Для настройки DNS, добавьте записи серверов имен в /etc/resolv.conf, указывая по одному серверу имен в одной строке: nameserver 192.168.1.2.
В качестве альтернативы, можно использовать утилиту настройки yast для обновления настроек сети.
6.1.3 Изменение часового пояса
По умолчанию готовое решение использует UTC часовой пояс для системного времени. Для изменения часового пояса, скопируйте соответствующий файл из /usr/share/zoneinfo в /etc/localtime, например:
cp /usr/share/zoneinfo/Europe/Riga /etc/localtime
6.1.4 Другие изменения
-
Сеть настроена на получение IP адреса по DHCP;
-
Утилита fping имеет права 4710 и ей назначен владелец группы zabbix – suid и только разрешено использование группе zabbix;
-
ntpd настроен на синхронизацию с пулами публичных серверов;
-
Добавлены различные простые утилиты, которые могут сделать работу с Zabbix и мониторингом в целом легче.
6.2 Конфигурация Zabbix
Установленное готовое решение Zabbix имеет следующие пароли и другие изменения конфигурации:
6.2.1 Пароль
Система:
-
root:zabbix
-
zabbix:zabbix
База данных:
-
root:zabbix
-
zabbix:zabbix
Веб-интерфейс Zabbix:
-
admin:zabbix
Для изменения пароля пользователя базы данных, потребуются изменения в следующих местах:
-
MySQL;
-
zabbix_server.conf;
-
zabbix.conf.php.
6.2.2 Размещения файлов
-
Файлы конфигурации расположены в /etc/zabbix.
-
Файлы журналов (логи) Zabbix расположены в /var/log/zabbix.
-
Веб-интерфейс Zabbix расположен в /usr/share/zabbix.
-
Домашняя папка для пользователя zabbix – /var/lib/zabbix.
6.2.3 Изменения в настройках Zabbix
-
По умолчанию некоторые элементы данных и триггеры отключены в шаблоне Linux (в основном те, которые не соответствуют установке готового решения);
-
Имя сервера для веб-интерфейса Zabbix изменено на “Zabbix 1.8 Appliance”;
-
Часовой пояс веб-интерфейса изменен на Europe/Riga – родина Zabbix (этот параметр можно изменить в файле /etc/php5/apache2/php.ini);
-
Деактивированные триггеры и веб сценарии по умолчанию отображаются, во избежании путаницы.
6.2.4 Сохранение конфигурации
Если вы загрузили готовое решение с Live CD или по какой-то причине не можете иметь постоянного накопителя, вы можете создать архивную копию базы данных, включая все настройки и все собранные данные.
Для создания архивной копии, выполните:
mysqldump zabbix | bzip2 -9 > dbdump.bz2
Теперь вы можете переместить файл dbdump.bz2 на другую машину.
Для восстановления из архивной копии, переместите копию в готовое решение и выполните:
bzcat dbdump.bz2 | mysql zabbix
6.3 Доступ к веб-интерфейсу
По умолчанию доступ к веб-интерфейсу разрешен с:
-
127.0.0.1
-
192.168.0.0/16
-
10.0.0.0/8
-
::1
Корневой каталог веб-сервера (/) перенаправляется на /zabbix, таким образом доступ к веб-интерфейсу может быть получен как с http://<хост>, так и с http://<хост>/zabbix.
Эти параметры могут быть изменены в /etc/apache2/conf.d/zabbix.conf. Вы должны перезапустить вебсервер после изменения этого файла. Чтобы это сделать зайдите на сервер по SSH под root и выполните:
service apache2 restart
6.4 Фаервол
По умолчанию, открыто только два порта – 22 (SSH) и 80 (HTTP). Для открытия других портов – например, портов Zabbix сервера и агента – измените правила iptables с помощью утилиты SuSEfirewall2:
SuSEfirewall2 open EXT TCP zabbix-trapper zabbix-agent
Затем перезагрузите правила фаервола:
SuSEfirewall2 stop SuSEfirewall2 start
6.5 Возможности мониторинга
Zabbix сервер скомпилирован с поддержкой следующих функций:
-
SNMP;
-
IPMI;
-
Веб мониторинг;
-
SSH2;
-
IPv6.
В представленной конфигурации Zabbix сервер наблюдает за некоторыми базовыми параметрами самого себя с помощью локально установленного агента, дополнительно веб-интерфейс Zabbix наблюдается и с помощью веб мониторинга.
6.6 Именование, скрипты запуска и другие скрипты
Имена демонов Zabbix изменены со стандартных с подчеркиванием на имена с тире для поддержки принципов SUSE. Они называются:
-
zabbix-agentd
-
zabbix-server
Аналогичным образом и файлы конфигурации:
-
/etc/zabbix/zabbix-server.conf
-
/etc/zabbix/zabbix-agentd.conf
Представлены соответствующие скрипты запуска. Для контроля Zabbix сервера используйте следующие команды:
service zabbix-server status rczabbix-server status /etc/init.d/zabbix-server status
Замените server на agentd для демона Zabbix агента.
6.6.1 Скрипты планировщика
Имеется скрипт планировщика, который запускается crontab каждые 10 минут и перезапускает Zabbix сервер, если он не запущен, /var/lib/zabbix/bin. Скрипт записывает в журнал дату и время проблем и начала попыток /var/log/zabbix/server_problems.log. Этот скрипт доступен в готовом решении Zabbix начиная с версии 1.8.3.
6.6.2 Увеличение доступного дискового пространства
Доступного дискового пространства в готовом решении может быть недостаточно. В этом случае имеется возможность расширить используемый диск. Для этого сначала расширьте блочное устройство в вашей среде виртуализации, затем выполните эти шаги.
Запустите fdisk для изменения размера раздела. Выполните под root:
fdisk /dev/sda
Эта команда запустит fdisk для диска sda. Затем, переключитесь на использование секторов введя:
u
Затем удалите существующий раздел и создайте новый с нужным размером. В большинстве случаев вы будете выбирать доступный максимум, что расширит файловую систему до размера, который вы сделали доступным для виртуального диска. Для этого введите следующую последовательность в fdisk:
d n p 1 (принимаем по умолчанию 63) (принимаем по умолчанию max)
Если вы хотите оставить пространство для дополнительных разделов (swap и т.д.), вы можете ввести другое значение для last sector (последний сектор). По завершении сохраните изменения введя:
w
Перезагрузите виртуальную машину (т.к. раздел, который был измен, используется в настоящее время). После перезагрузки возможно изменить размер файловой системы.
resize2fs /dev/sda1
Теперь файловая система должна быть увеличена до размера раздела.
6.7 Заметки о специфичных форматах
6.7.1 Xen
Для использования образов в Xen сервере, выполните:
xm create -c file-with-suffix.xenconfig
Для получения более подробной информации по использованию образов Xen смотрите следующие страницы:
Конвертация образа для XenServer
Для использования Xen образов в Citrix Xenserver вам необходимо сконвертировать образ диска. Чтобы это сделать:
-
Создайте виртуальный диск, который будет по крайней мере такого же размера как и образ
-
Узнайте UUID этого диска
xe vdi-list params=all
-
Если имеется много дисков, их можно отфильтровать по параметру имени name-label (имя-метка), как назначенные при создании виртуального диска
-
Импортируйте образ
xe vdi-import filename="image.raw" uuid="<UUID>"
Инструкции с Brian Radford blog.
6.7.2 VMWare
Образы в формате vmdk используются напрямую в продуктах VMWare Player, Server и Workstation. Для использования в ESX, ESXi и vSphere образы должны быть сконвертированы используя конвертер VMWare.
6.7.3 Образ HDD/flash (raw)
Смотрите http://en.opensuse.org/openSUSE:SUSE_Studio_Disc_Image_Howtos для получения более подробной информации относительно образов диска.
6.8 Известные проблемы
6.8.1 Для готового решения 1.8.8
Готовое решение Zabbix 1.8.8 сообщает о себе в сообщениях загрузки, что основано на версии 1.8.7. Это неправильно, актуальное готовое решение содержит Zabbix 1.8.8.
Data source: Zabbix