Обнаружил некоторое время назад, что на официальном сайте zabbix в документации нет инструкции по установке на Freebsd. Хотя я знаю, что zabbix отлично устанавливается и работает на freebsd. В разделе download тоже нет ничего для freebsd. Решил разобраться в этой теме и написать подробную инструкцию, так как это будет полезно для многих.
Введение
После недавнего выхода обновления zabbix 3.0, я начал активно его использовать. Написал для этого инструкцию по установке заббикса на centos. С этой системой я больше всего работают. Но какие-то ностальгические чувства не позволяют мне забывать freebsd. Хотя я ее почти не использую в новых установках по разным причинам последние несколько лет, работать с freebsd мне нравится и иногда приходится. IPFW мне кажется самым простым и удобным фаерволом до сих пор. Но я хотел рассказать не об этом 🙂
Работать будем с чистой системой Freebsd 10. Устанавливать все будем из пакетов, это быстрее и удобнее.
Подготовка сервера к установке
Обновим список пакетов:
# pkg update
Теперь установим 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
Практически самые свежие. В данный момент на сайте разработчика последняя версия 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
У меня это 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. Вас встретит стартовая страница установки.
Нажимаете Next Step. Если вы правильно внесли ранее указанные настройки в php, то все проверки должны пройти успешно. Если нет, то проверяйте, что не так.
На следующем шаге указываете параметры подключения к mysql базе. Они берутся из самого начала статьи, где мы настраивали mysql.
Теперь предлагается указать имя сервера. Это делать не обязательно, я обычно тут ничего не меняю и не добавляю.
Дальше снова жмете Next Step, попадаете на страницу окончательной проверки параметров. Тут ничего делать не надо, двигаемся дальше. На последнем этапе вы можете получить ошибку.
Я сразу понял, с чем она связана. У 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 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: |
Описание установки 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, снятое в точности по приведенной выше статье. Если у вас что-то не получается настроить, посмотрите, как это делаю я.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.