[[Установка Zabbix на Gentoo Linux]]

GentooZabbix

Установка 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 сервера' была включена и установка агента для локальной машины.

Настройка агента

Агент может работать в двух режимах:

  1. самостоятельно (standalone) – тогда он постоянно запущен как сервис и обрабатывает запросы от сервера сам, также в этом режиме может проводиться активная проверка (когда агент сам посылает данные серверу).
  2. через 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.

Полезная Информация

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

Обсуждение

matt, 2014/02/13 04:52

Здравствуйте! Ставил Zabbix по Вашей статье, столкнулся с некоторыми трудностями: 1. При инициализации базы необходимо выполнять импорт в другом порядке, schema.sql→images.sql→data.sql, иначе MySQL ругается на несуществующие ID (Zabbix 2.0.9-r1, MySQL 5.5.32)

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

2. Для авторизации поумолчанию логин Admin, именно с большой буквы, иначе не пускает :)

Aleksey, 2014/02/13 11:10
  1. Исправил. Хм… сейчас проверил, ошибок нет обоих случаях dev-db/mysql-5.1.70, net-analyzer/zabbix-2.0.9-r1. Хотя с 1.8 в 2.0 порядок поменял.
  2. Исправил
Ваш комментарий. Вики-синтаксис разрешён:
47 +5 = ?
 
howto/zabbix/install_zabbix_on_gentoo.txt · Последние изменения: 2014/02/13 11:00 — lexa
Gentoo Linux Driven by DokuWiki