Установка Zabbix 3.0 на Freebsd 10

Обнаружил некоторое время назад, что на официальном сайте zabbix в документации нет инструкции по установке на Freebsd. Хотя я знаю, что zabbix отлично устанавливается и работает на freebsd. В разделе download тоже нет ничего для freebsd. Решил разобраться в этой теме и написать подробную инструкцию, так как это будет полезно для многих.


Введение

После недавнего выхода обновления zabbix 3.0, я начал активно его использовать. Написал для этого инструкцию по установке заббикса на centos. С этой системой я больше всего работают. Но какие-то ностальгические чувства не позволяют мне забывать freebsd. Хотя я ее почти не использую в новых установках по разным причинам последние несколько лет, работать с freebsd мне нравится и иногда приходится. IPFW мне кажется самым простым и удобным фаерволом до сих пор. Но я хотел рассказать не об этом 🙂

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

Подготовка сервера к установке

Обновим список пакетов:

# pkg update

Обновление пакетов в freebsd

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

# pkg install mysql56-server

Добавляем в rc.conf строку для запуска:

# sysrc mysql_enable=YES

И запускаем mysql:

# service mysql-server start

Запускаем скрипт для установки пароля root и выполнения некоторых начальных настроек. На все вопросы отвечаем положительно.

# /usr/local/bin/mysql_secure_installation

Нам понадобится web сервер apache для работы заббикса. Устанавливаем его из пакетов.

# pkg install apache24

Добавляем сервис в автозагрузку.

# sysrc apache24_enable=YES

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

Установка Zabbix 3.0 на Freebsd

Теперь можно начать установку непосредственно сервера мониторинга zabbix. Ставим опять же из пакетов. Сначала посмотрим, какие там есть версии:

# pkg search zabbix

Установка zabbix 3.0 на freebsd 10

Практически самые свежие. В данный момент на сайте разработчика последняя версия 3.0.2_1.

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

# pkg install zabbix3-server-3.0.1_2

После установки заббикса, создадим для него базу данных mysql. Можно установить phpmyadmin и сделать все через него. Но если у вас на этом сервере не будет полноценного web сервера, то делать это излишне. Сделаем все в командной строке. Подключаемся к консоли mysql и выполняем несколько команд.

# mysql -u root -p

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '12345678';

mysql> flush privileges;





zabbixназвание базы данных и пользователя этой базы
12345678пароль пользователя zabbix

Импортируем схемы базы данных. Идем в каталог со схемами и загружаем их в mysql:

# cd /usr/local/share/zabbix3/server/database/mysql

# cat schema.sql images.sql data.sql | mysql -u zabbix -p zabbix

На запрос пароля вводим ранее установленный пароль 12345678. Проверить созданные таблицы можно в консоли mysql следующими командами:

mysql> use zabbix

mysql> show tables;

Последняя команда должна вывести длинный список таблиц базы. В моем случае это было 113 таблиц.

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

# cp /usr/local/etc/zabbix3/zabbix_server.conf.sample /usr/local/etc/zabbix3/zabbix_server.conf

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

# mcedit /usr/local/etc/zabbix3/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=12345678

Добавляем сервер в rc.conf и запускаем:

# sysrc zabbix_server_enable=YES

# service zabbix_server start

И тут я получил ошибку:

/usr/local/etc/rc.d/zabbix_server: ERROR: USAGE: get_pidfile_from_conf string file (zabbix_server)

Я очень долго с ней ковырялся. В гугле и яндексе вообще никакого упоминания нет об том. Как-будто больше никто не ставил на freebsd последнюю версию заббикса, либо мне просто очень не повезло с конкретной версией, в которую закралась ошибка. Стал внимательно смотреть на файл для запуска/usr/local/etc/rc.d/zabbix_server. Заметил там подозрительную строку:

if get_pidfile_from_conf PidFile ${zabbix_agentd_config}; then

Не понял, при чем тут agentd, если речь идет о сервере. Я так понял, что это баг. После того, как я исправил zabbix_agentd_config на zabbix_server_config он у меня благополучно запустился.

Продолжаем установку. Теперь нам надо поставить web морду для заббикса. Устанавливаем из пакетов zabbix3-frontend-3.0.1_2. В вашем случае посмотрите сами последнюю версию и устанавливайте ее.

# pkg install zabbix3-frontend-3.0.1_2

Фронтенд тянет за собой все зависимости по php. Но нужно будет вручную установить mod_php. Проверяем какая версия php у нас установлена на предыдущих шагах:

# pkg info | grep php

Проверка версии php

У меня это php56. Проверяю последнюю версию mod_php для версии 5.6.

# pkg search mod_php56

mod_php56-5.6.20 PHP Scripting Language

Ставлю эту версию:

# pkg install -y mod_php56-5.6.20

Поле завершения установки, нужно будет подредактировать конфиг апача и пхп, для удовлетворения требований zabbix. Открываем /usr/local/etc/apache24/httpd.conf и добавляем в самый конец:

<FilesMatch ".php$">

   SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch ".phps$">

   SetHandler application/x-httpd-php-source

</FilesMatch>

Там же ищем строку

DirectoryIndex index.html

и добавляем в конец index.php, чтобы стало вот так:

DirectoryIndex index.html index.php

Еще нужно добавить в конфиг алиас и директорию, где лежат файлы web интерфейса заббикса. Добавляем в самый конец httpd.conf:

Alias /zabbix /usr/local/www/zabbix3



<Directory "/usr/local/www/zabbix3">

  Options Indexes FollowSymLinks

  AllowOverride All

  Require all granted

  Allow from all

</Directory>

Сохраняем, выходим. Теперь создадим конфиг для php и подредактируем его:

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

# mcedit /usr/local/etc/php.ini

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = Europe/Moscow

always_populate_raw_post_data = -1

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

# service apache24 restart

Он там может варнинги написать по поводу ServerName, можно не обращать на это внимание. Теперь у нас все готово для перехода в web панель и завершения установки. Открываем в браузере страницу http://ip-сервера/zabbix. Вас встретит стартовая страница установки.

welcome to zabbix 3.0

Нажимаете Next Step. Если вы правильно внесли ранее указанные настройки в php, то все проверки должны пройти успешно. Если нет, то проверяйте, что не так.

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

На следующем шаге указываете параметры подключения к mysql базе. Они берутся из самого начала статьи, где мы настраивали mysql.

Настройка подключения к mysql

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

Настройка подключения к серверу

Дальше снова жмете Next Step, попадаете на страницу окончательной проверки параметров. Тут ничего делать не надо, двигаемся дальше. На последнем этапе вы можете получить ошибку.

Ошибка установки zabbix на freebsd

Я сразу понял, с чем она связана. У web сервера не хватает прав, чтобы записать созданный конфиг файл. У каталога /usr/local/www/zabbix3 владелец root. Веб сервер не может записать в эту папку. Нам нужно сделать владельцем этой папки пользователя www, от которой работает веб сервер. Идем в консоль и сделаем это:

# chown -R www:www /usr/local/www/zabbix3

Возвращаемся в браузере на предыдущую страницу с проверкой конфигурации и снова жмем Next Step. На этот раз ошибки нет.

Завершение установки

На этом установка zabbix 3.0 на Freebsd 10.3 завершена. После нажатия Finish вы попадете на окно логина в систему. Пользователь и пароль по-умолчанию Admin/zabbix. Вот так выглядит чистая установка zabbix на freebsd:

Zabbix Dashboard

Установка zabbix agent 3.0 на freebsd 10.3

Давайте для примера установим на этот же сервер агент zabbix. Сделать это очень просто. Снова смотрим список свежих пакетов zabbix:

# pkg search zabbix3-agent

zabbix3-agent-3.0.1_2          Enterprise-class open source distributed monitoring (agent) LTS

Ставим эту версию:

# pkg install  zabbix3-agent-3.0.1_2

По-умолчанию агент уже сконфигурирован на работу с локальным сервером. Нам нужно только скопировать конфиг:

# cp /usr/local/etc/zabbix3/zabbix_agentd.conf.sample /usr/local/etc/zabbix3/zabbix_agentd.conf

Добавить в атозагрузку и запустить агент:

# sysrc zabbix_agentd_enable=YES

# service zabbix_agentd start

Чтобы мониторинг заработал, нужно в веб интерфейсе зайти  раздел Configuration -> Hosts и нажать на Disabled напротив Zabbix server, чтобы он стал Enabled

Настройка хоста

Через 2-3 минуты можно идти проверять поступление данных. На этом все, основную тему статьи я раскрыл. Мы научились устанавливать zabbix server и agent 3.0 на freebsd.

Заключение

Я коснулся только базовой установки сервера мониторинга. Дальше его нужно настраивать для сбора данных. Чуть больше информации я дал в материале на тему установки zabbix на centos. Там можно посмотреть, как настроить оповещения и установить агент мониторинга на windows машину. Рекомендую ознакомиться, если вы планируете дальше использовать систему. Заббикс различается только в установке, дальнейшая настройка на всех серверах будет примерно одинаковой. Можно брать любые примеры из раздела Zabbix на моем сайте и внедрять их в свой мониторинг.

Дополнительные материалы по Freebsd





Рекомендую полезные материалы по Freebsd:


  • Установка
  • Настройка
  • Обновление
  • Шлюз
  • Прокси сервер
  • Веб сервер NGINX
  • Веб сервер Apache


Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик.



Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности.



Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления.



Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop.



Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования.



Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache.



Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента.


Видео

Ниже снято видео установки zabbix 3.0 на freebsd 10, снятое в точности по приведенной выше статье. Если у вас что-то не получается настроить, посмотрите, как это делаю я.