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 для вкуривания:
- http://ru.wikipedia.org/wiki/Zabbix
- https://www.zabbix.com/wiki/
- https://www.zabbix.com/documentation/doku.php?id=ru
- http://www.sergeysl.ru/freebsd-zabbix/
Я машинку буду использовать только для zabbix, поэтому где настраивать php для меня не принципиально. Конечно если использовать машинку под несколько задач, тогда у Вас вариант правильнее !
по поводу p.s. пока только вкуриваю документацию, если есть полезные ссылки… буду признателен =)
Автор , спасибо большое, я вам очень благодарен за такую статью, все получилось без проблем и танцев с бубном. Здоровья вам ! 8)
При выполнении команд 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`))
Не могу понять в чем проблема
Проблема решилась. =)
mysql -u root -p zabbix < schema.sql
mysql -u root -p zabbix < images.sql
mysql -u root -p zabbix < data.sql
дошел до проверки php, набрал /ip адрес/phpinfo.php
начинает скачивать файл phpinfo.php
если набрать просто /ip адрес/ в браузере то появляется it works