Установка Zabbix на Gentoo Linux
net-analyzer/zabbix-2.0.9_rc1-r2
Описание установки системы мониторинга Zabbix на Gentoo Linux.
Рассмотрена установка серверной части с веб-интерфейсом и агентов.
Для работы потребуется:
- СУБД - в примере MySQL
- Веб-сервер (apache, nginx)
- PHP с поддержкой: sockets, bcmath, ctype, gd
Установка Zabbix сервера
Перед установка следует задать нужные USE-флаги. Описание флагов:
USE-флаг | Описание |
---|---|
server | Установка zabbix сервера |
agent | Установка zabbix агента |
proxy | Установка zabbix прокси |
frontend | Веб-интерфейс к серверной части (на php) |
curl | Поддержка curl, необходимо для проверки веб-сайтов |
jabber | Поддержка протокола xmpp (jabber) для отправки уведомлений |
ldap | Поддержка openldap. Возможно использовать для авторизации в веб-интерфейсе |
sqlite3 | Поддержка СУБД sqlite3 |
mysql | Поддержка СУБД MySQL для хранения статистических данных |
oracle | Поддержка СУБД Oracle |
postgres | Поддержка СУБД PostgreSQL |
snmp | Поддержка протокола snmp для сбора данных о клиентской системе (использование процессора, память и т.п.) |
openipmi | Intelligent Platform Management Interface |
Установка флагов:
echo "dev-libs/iksemel gnutls" >> /etc/portage/package.use echo "net-analyzer/zabbix agent server mysql snmp ssh curl frontend jabber " >> /etc/portage/package.use
Допускается выбор только одного флага типа СУБД,
dev-libs/iksemel с флагом gnutls - без этого Jabber уведомления работать не будут
Установка:
emerge net-analyzer/zabbix -av
После установки добавите в конец файла /etc/services следующие строчки:
/etc/services
zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent
Теперь создадим пользователя MySQL zabbix с паролем Pa$sW0RD и БД с именем zabbix.
echo "CREATE DATABASE zabbix" | mysql -u root -p echo "GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'Pa$sW0RD'" | mysql -u root -p
Инициализация структуры базы данных:
mysql -u zabbix -pPa$sW0RD zabbix < /usr/share/zabbix/database/mysql/schema.sql mysql -u zabbix -pPa$sW0RD zabbix < /usr/share/zabbix/database/mysql/images.sql mysql -u zabbix -pPa$sW0RD zabbix < /usr/share/zabbix/database/mysql/data.sql
В MySQL желательно использовать тип таблиц InnoDB, а не MyISAM!
Если в MySQL выключена поддержка InnoDB, то таблицы создадутся типа MyISAM
Установка веб-интерфейса
Скопировать файлы zabbix'a в DocumentRoot нужного нам виртуального хоста на веб-сервере:
cp -r /usr/share/webapps/zabbix/2.0.9_rc1-r2/htdocs/* /var/www/zabbix/htdocs/
Разработчики предлагают производить установку через утилиту webapp-config.
Если у нас Apache и мы НЕ изменяли конфиги по умолчанию и пути, то достаточно выполнить:
webapp-config -I -h localhost -d zabbix zabbix 2.0.9_rc1-r2
утилита скопирует файлы в /var/www/localhost/htdocs/zabbix и заходим по адресу http://localhost/zabbix/
Хотя скорее всего в любом случае утилиту придется настраивать /etc/vhosts/webapp-config, что бы указать правильные пути, какие права выставить на файлы и т.п., а в случае с Nginx возможно придется и пропатчить, т.к. утилита работает не со всеми веб-серверами.
Но сейчас нам нужно тупо скопировать файлы для zabbix'a, а не заниматься настройкой автоматизации.
Настройка сервера
Многие значения в конфигурационном файле можно использовать по умолчанию, но перед запуском необходимо задать параметры для подключения к СУБД:
/etc/zabbix/zabbix_server.conf
... DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Pa$sW0RD # Если MySQL запущен локально то можно подключаться к нему через socket - это должно работать быстрее DBSocket=/var/run/mysqld/mysqld.sock
Запуск сервера:
/etc/init.d/zabbix-server start
Добавление в автозагрузку:
rc-update add zabbix-server default
Настройка веб-интерфейса
Заходим в веб-панель управления Zabbix.
- 1. Introduction
Next»
- 2. Licence Agreement
Принимаем пользовательское соглашение.
- 3. Check of pre-requisites
Проверка параметров PHP.
Все параметры со статусом Fail необходимо установить в соответствии с минимальными требованиями.
Именование | Параметр |
---|---|
PHP memory limit | memory_limit |
PHP post max size | post_max_size |
PHP upload max filesize | upload_max_filesize |
PHP max execution time | max_execution_time |
PHP max input time | max_input_time |
- 4. Configure DB connection
Настройка параметров для подключения к БД.
- 5. Zabbix server details
Next»
- 6. Pre-Installation Summary
Next»
- 7. Install
Save configuration file - скачиваем файл zabbix.conf.php. Его необходимо сохранить по указанному пути, после чего нажать Retry
- 8. Finish
Finish
Для авторизации поумолчанию login:Admin pass:zabbix
Первым делом на верху страницы можно увидеть предупреждение:
Timezone for PHP is not set. Please set "date.timezone" option in php.ini.
Необходимо установить часовой пояс в PHP и перезапустить веб-сервер
php.ini
date.timezone = Europe/Moscow
Установка Zabbix агента
Сервер Zabbix получает данные о состоянии контролируемых машин через своего агента.
На контролируемую машину достаточно установить пакет net-analyzer/zabbix только с флагом agent:
echo "net-analyzer/zabbix -* agent" >> /etc/portage/package.use
После установки добавите в конец файла /etc/services следующие строчки:
/etc/services
zabbix-trapper 10051/tcp Zabbix Trapper zabbix-trapper 10051/udp Zabbix Trapper zabbix-agent 10050/tcp Zabbix Agent zabbix-agent 10050/udp Zabbix Agent
В пункте 'Установка Zabbix сервера' была включена и установка агента для локальной машины.
Настройка агента
Агент может работать в двух режимах:
- самостоятельно (standalone) – тогда он постоянно запущен как сервис и обрабатывает запросы от сервера сам, также в этом режиме может проводиться активная проверка (когда агент сам посылает данные серверу).
- через xinetd – служба xinetd принимает запросы от сервера и запускает агента для сбора данных, т.е. агенты запускаются только при поступлении запроса от сервера. Соответственно активная проверка не может выполняться.
Режим standalone
Обратите внимание - конфигурационный файл /etc/zabbix/zabbix_agentd.conf
Многие значения в конфигурационном файле можно использовать по умолчанию, но необходимо задать параметр Server, который определяет IP адрес Zabbix сервера с которого разрешены запросы, другие IP адреса будут отклонены.
/etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1
/etc/init.d/zabbix-agentd start
Добавление в автозагрузку:
rc-update add zabbix-agentd default
Режим xinetd
Обратите внимание - конфигурационный файл /etc/zabbix/zabbix_agent.conf
Убедитесь что у вас установлена служба xinetd, или выполните установку:
emerge sys-apps/xinetd -av /etc/init.d/xinetd start rc-update add xinetd default
Многие значения в конфигурационном файле можно использовать по умолчанию, но необходимо задать параметр Server, который определяет IP адрес Zabbix сервера с которого разрешены запросы, другие IP адреса будут отклонены.
/etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1
Создайте файл:
/etc/xinetd.d/zabbix
service zabbix-agent { port = 10050 socket_type = stream wait = no user = zabbix server = /usr/sbin/zabbix_agent log_on_failure += USERID only_from = 0.0.0.0 disable = no }
Убедитесь, что сервис xinetd запущен:
/etc/init.d/xinetd status
Установка Zabbix прокси
Zabbix поддерживает собственный proxy сервер который собирает данные (в БД) с контролируемых машин и по запросу пересылает их на основной сервер. Это может пригодиться в ситуации когда контролируемые машины не доступны напрямую с сервера.
На сервере который будет выступать в роли прокси, выполняем установку zabbix-proxy.
Для установки прокси необходимо выставить флаг proxy и флаг используемой СУБД.
Пример установки zabbix proxy с использованием в качестве СУБД sqlite:
echo 'net-analyzer/zabbix -* proxy sqlite3' >> /etc/portage/package.use
emerge net-analyzer/zabbix -av
Создание БД:
cat /usr/share/zabbix/database/create/schema/sqlite.sql | sqlite3 /var/lib/zabbix/zabbix.db cat /usr/share/zabbix/database/create/data/data.sql | sqlite3 /var/lib/zabbix/zabbix.db cat /usr/share/zabbix/database/create/data/images_sqlite3.sql | sqlite3 /var/lib/zabbix/zabbix.db
Корректировка прав:
chown zabbix:zabbix /var/lib/zabbix/zabbix.db
Отредактируйте конфигурационный файл прокси следующим образом:
/etc/zabbix/zabbix_proxy.conf
# IP адрес или dns имя основного сервера с которого разрешены подключения Server=x.x.x.x # Имя прокси сервера (это же имя должно быть у прокси в настройках на сервере (в веб-интрефейсе)) Hostname=zproxy01 # Для sqlite указать путь к БД DBName=/var/lib/zabbix/zabbix.db ## Другие полезные параметры: # Частота отправки собранных данных на сервер (сек): DataSenderFrequency=30 # Как долго прокси будет хранить данные есть основной сервер будет недоступен (часов): ProxyOfflineBuffer=12
Запуск zabbix-proxy:
/etc/init.d/zabbix-proxy start
Добавление в автозагрузку:
rc-update add zabbix-proxy default
Настройка сервера
На основном сервере в конфиге нужно включить сбор данных с прокси:
/etc/zabbix/zabbix_server.conf
# Количество процессов-сборщиков (зависит от кол-во прокси) StartTrappers=2 # Порт на который принимают запросы ListenPort=10051
Перезапустить сервер:
/etc/init.d/zabbix-server restart
Настройка агента
На контролируемых машинах в настройках агента необходимо задать параметр Server, который определяет IP адрес zabbix-proxy.
Полезная Информация
Вся дальнейшая настройка мониторинга осуществляется через веб-интерфейс, который на первый (да и не только на первый) взгляд выглядит не очень понятной и пугающей. Если нужна будет помощь и разъяснения - общайтесь.
- Zabbix - распределённая система мониторинга – общее и детальное описание архитектуры Zabbix'a
Обсуждение
Здравствуйте! Ставил Zabbix по Вашей статье, столкнулся с некоторыми трудностями: 1. При инициализации базы необходимо выполнять импорт в другом порядке, schema.sql→images.sql→data.sql, иначе MySQL ругается на несуществующие ID (Zabbix 2.0.9-r1, MySQL 5.5.32)
2. Для авторизации поумолчанию логин Admin, именно с большой буквы, иначе не пускает :)