Устанавливаем систему мониторинга Zabbix на FreeBSD

ZABBIX — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования.

Итак, имеем следующую систему

uname -a

FreeBSD 9.2 amd64

первым делом обновляем порты

portsnap update

Ищем необходимый порт

cd /usr/ports && make search name=zabbix


Переходим в директорию нужного порта и собираем:

cd /usr/ports/net-mgmt/zabbix22-server && make config install clean

Оставляем как есть и нажимаем «ОК»

К имеющимся опциям по умолчанию я добавил «MYSQL» и нажал «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

После установки, наберём команду rehash, чтобы FreeBSD перечитала файлы, находящиеся в маршрутах поиска. Теперь установим mysql-server, который необходим для работы zabbix

cd /usr/ports/databases/mysql55-server && make BATCH=yes install clean && rehash

Добавим демон mysqld в автозагрузку

echo 'mysql_enable="yes"' >> /etc/rc.conf

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

cp /usr/local/share/mysql/my-large.cnf /var/db/mysql/my.cnf

Запускаем mysql-server:

/usr/local/etc/rc.d/mysql-server start

Проверяем, что сервер баз данный запущен и работает

/usr/local/etc/rc.d/mysql-server status

Установим root-пароль для mysql-server

mysqladmin -u root -h localhost password 'xaxatyxa'

где:

  • -u - указываем пользователя, который будет входить в систему
  • -h - адрес сервера к которому подключаемся
  • xaxatyxa — пароль на сервер, замените и запомните на необходимый вам

Для работы zabbix необходимо создать базу данных. Подключаемся к серверу

mysql -u root -p

и создаем

CREATE DATABASE zabbix CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

выходим из клиента mysql

Zabbix поддерживает достаточно много баз-данных

ls -1 /usr/local/share/zabbix22/server/database/

В нашем случаем интересно только mysql. Но для работу zabbix не достаточно только наличие сервера баз-данных, необходимо ещё создать и инициализировать таблицы базы данных zabbix:

cd /usr/local/share/zabbix22/server/database/mysql/
cat schema.sql data.sql images.sql | mysql -u root -p zabbix

Если возникнут ошибки, тогда советую загружать таблицы по отдельности

cat /usr/local/share/zabbix22/server/database/mysql/schema.sql | mysql -u root -p zabbix Enter password:
cat /usr/local/share/zabbix22/server/database/mysql/images.sql | mysql -u root -p zabbix
cat /usr/local/share/zabbix22/server/database/mysql/data.sql | mysql -u root -p zabbix

Скопируем файл конфигурации zabbix

cp /usr/local/etc/zabbix22/zabbix_server.conf.sample /usr/local/etc/zabbix22/zabbix_server.conf

На начальном этапе настройки необходимо и достаточно задать параметры доступа к базе данных:

ee /usr/local/etc/zabbix22/zabbix_server.conf

Ищем и правим следующие параметры:

DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

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

echo 'zabbix_server_enable="yes"' >> /etc/rc.conf

Запускаем сервер zabbix

/usr/local/etc/rc.d/zabbix_server start

проверяем работу

/usr/local/etc/rc.d/zabbix_server status

Более подробную информацию об ошибках можно найти в папке tmp 

После того как мы убедились, что демон zabbix работает переходим к  установке и настройке веб-интерфейса

Первым делом устанавливаем apache с поддержкой mysql:

cd /usr/ports/www/apache22 && make WITH_MYSQL=yes BATCH=yes install clean

Прописываем apache в автозагрузке

echo 'apache22_enable="YES"' >> /etc/rc.conf

Редактируем конфигурационный файл

ee /usr/local/etc/apache22/httpd.conf

Ищем и комментируем строку

# LoadModule unique_id_module libexec/apache22/mod_unique_id.so

Запускаем apache22

/usr/local/etc/rc.d/apache22 start

Устанавливаем PHP

cd /usr/ports/lang/php55 && make WITH_APACHE=yes BATCH=yes install clean

Открываем на редактирование конфиг apache

ee /usr/local/etc/apache22/httpd.conf

Ищем строки

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

Редактируем, чтобы получилось

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.htm index.shtml index.php
</IfModule>

Создаем конфигурационный файл php-application.conf

echo 'AddType application/x-httpd-php .php' > /usr/local/etc/apache22/Includes/php-application.conf
echo 'AddType application/x-httpd-php-source .phps' >> /usr/local/etc/apache22/Includes/php-application.conf

Создаём конфигурационный файл PHP

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

Устанавливаем временную зону в файле php.ini

ee /usr/local/etc/php.ini

Должно получиться

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = 'Asia/Novosibirsk'

Добавим настройки в PHP.ini которые необходимы для работы zabbix:

echo ';' >> /usr/local/etc/php.ini
echo ';' >> /usr/local/etc/php.ini
echo ';' >> /usr/local/etc/php.ini
echo ';ZABBIX SETTINGS' >> /usr/local/etc/php.ini
echo 'post_max_size = 16M' >> /usr/local/etc/php.ini
echo 'max_execution_time = 300' >> /usr/local/etc/php.ini
echo 'max_input_time = 300' >> /usr/local/etc/php.ini

Устанавливаем PHP-Extensions

cd /usr/ports/lang/php5-extensions && make WITH_MYSQL=yes BATCH=yes install clean

Создаём тестовый файл для проверки PHP

echo '<?php phpinfo(); ?>' >> /usr/local/www/apache22/data/phpinfo.php

Перезапускаем apache

/usr/local/etc/rc.d/apache22 restart

проверяем доступность в веб-браузере

http://IP_ВАШЕГО_СЕРВЕРА/phpinfo.php

После того как мы убедились в работе apache и php, переходим к  установке и настройке веб-интерфейса zabbix

cd /usr/ports/net-mgmt/zabbix22-frontend && make config install clean

Устанавливаем галочки согласно рисунка и жмём «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Оставляем как есть и нажимаем «ОК»

Если всё пройдёт без ошибок, в конце должны увидеть

Открываем на редактирование конфигурационный файл apache

ee /usr/local/etc/apache22/httpd.conf

В самом конце вставляем следующие строки

Alias /zabbix /usr/local/www/zabbix22
<Directory /usr/local/www/zabbix22>
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>

Если хотим ограничить доступ

Alias /zabbix /usr/local/www/zabbix22
<Directory /usr/local/www/zabbix22>
  AllowOverride All
  Order deny,allow
  Deny from all
  Allow from IP_от куда можно 192.168.1.0/24
</Directory>

Перезапускаем веб-сервер

/usr/local/etc/rc.d/apache22 restart

Переходим на страницу

http://IP-адрес-вашего-сервера/zabbix

 Устанавливаем агента на сервер zabbix

cd /usr/ports/net-mgmt/zabbix22-agent && make BATCH=yes config install clean

Копируем конфиг агента zabbix

cp /usr/local/etc/zabbix22/zabbix_agentd.conf.sample /usr/local/etc/zabbix22/zabbix_agentd.conf

Добавляем агента zabbix в автозагрузку

echo 'zabbix_agentd_enable="YES"' >> /etc/rc.conf

Запускаем демон агента

/usr/local/etc/rc.d/zabbix_agentd start

Информацию о состоянии агента можно найти в /tmp/zabbix_agentd.log

Возможный ошибки ZABBIX

1. Ошибка при загрузке таблиц zabbix (cat schema.sql data.sql images.sql | mysql -u root -p zabbix)

ERROR 1452 (23000) at line 3002: Cannot add or update a child row: a foreign key                                    constraint fails (`zabbix`.`sysmaps_elements`, CONSTRAINT `c_sysmaps_elements_2                                   ` FOREIGN KEY (`iconid_off`) REFERENCES `images` (`imageid`))

пробуем загрузить по отдельности

cat /usr/local/share/zabbix22/server/database/mysql/schema.sql | mysql -u root -p zabbix Enter password:
cat /usr/local/share/zabbix22/server/database/mysql/images.sql | mysql -u root -p zabbix
cat /usr/local/share/zabbix22/server/database/mysql/data.sql | mysql -u root -p zabbix

2. Ошибка «zabbix22-frontend-2.2.1 cannot be installed:doesn't work with lang/php5 port (doesn't support PHP 5.4 5.2). » при установке zabbix-frontend

===>  zabbix22-frontend-2.2.1 cannot be installed: doesn't work with lang/php5 port (doesn't support PHP 5.4 5.2).
*** [install] Error code 1
Stop in /usr/ports/net-mgmt/zabbix22-frontend.

установите php

3.Ошибки php: «post_max_size, max_execution_time, max_input_time» при установке zabbix через веб-интерфейс

PHP option post_max_size 8M 16M Fail
PHP option upload_max_filesize 2M 2M OK
PHP option max_execution_time 30 300 Fail
PHP option max_input_time 60 300 Fail

решение:

echo ';' >> /usr/local/etc/php.ini
echo ';' >> /usr/local/etc/php.ini
echo ';' >> /usr/local/etc/php.ini
echo ';ZABBIX SETTINGS' >> /usr/local/etc/php.ini
echo 'post_max_size = 16M' >> /usr/local/etc/php.ini
echo 'max_execution_time = 300' >> /usr/local/etc/php.ini
echo 'max_input_time = 300' >> /usr/local/etc/php.ini

4.Ошибка создании конфига zabbix.conf.php при настройке через веб-интерфейс

Решение

touch /usr/local/www/zabbix22/conf/zabbix.conf.php
chmod 777 /usr/local/www/zabbix22/conf/zabbix.conf.php

Ссылки и документация по мониторингу Zabbix для вкуривания:

  1. http://ru.wikipedia.org/wiki/Zabbix
  2. https://www.zabbix.com/wiki/
  3. https://www.zabbix.com/documentation/doku.php?id=ru
  4. http://www.sergeysl.ru/freebsd-zabbix/
Остались или есть ещё вопросы? Задавайте!
(не забудьте указать ссылку на этот пост)




6 комментариев

  1. Редактировать php.ini, не верно. Т.к. эти настройки принимаются глобально, правильно делать в apacheконфиге. Вот вырезка из официального пакета zabbix для centos

    <Directory «/usr/share/zabbix»>

        Options FollowSymLinks

        AllowOverride None

        Order allow,deny

        Allow from all

     

        php_value max_execution_time 300

        php_value memory_limit 128M

        php_value post_max_size 16M

        php_value upload_max_filesize 2M

        php_value max_input_time 300

        php_value date.timezone Europe/Moscow

    </Directory>

    p.s. + Неплохо описать настройки zabbix-server.conf, по дефолту там запускается несколько poller, половины не надо. Прокси можно отключить , java, если < 10 клиентов то и 1 pollerхватит. И стоит мониторить очереди, если там видно что что-то висит, то добавляем. 

    Thumb up 1 Thumb down 0

    • Я машинку буду использовать только для zabbix, поэтому где настраивать php для меня не принципиально. Конечно если использовать машинку под несколько задач, тогда у Вас вариант правильнее !

      по поводу p.s. пока только вкуриваю документацию, если есть полезные ссылки... буду признателен =)  

      Thumb up 0 Thumb down 0

  2. icomprovider Russian Federation Mozilla Firefox Windows :

    Автор , спасибо большое, я вам очень благодарен за такую статью, все получилось без проблем и танцев с бубном. Здоровья вам ! 8)

    Thumb up 0 Thumb down 0

  3. При выполнении команд cat schema.sql data.sql images.sql | mysql -u root -p zabbix выползает ошибка.

    ERROR 1452 (23000) at line 4519: Cannot add or update a child row: a foreign key constraint fails (`zabbix`.`sysmaps_elements`, CONSTRAINT `c_sysmaps_elements_2` FOREIGN KEY (`iconid_off`) REFERENCES `images` (`imageid`))

    Не могу понять в чем проблема

     

    Thumb up 0 Thumb down 0

  4. master Russian Federation Google Chrome Windows :

    дошел до проверки php, набрал /ip адрес/phpinfo.php

    начинает скачивать файл phpinfo.php

    если набрать просто /ip адрес/ в браузере то появляется it works

    Thumb up 0 Thumb down 0

Оставить комментарий

Установка, настройка, мониторинг и администрирование linux, unix, windows систем