Skip to main content

Установка Zabbix на FreeBSD 10

zabbix8

Пошаговая инструкция по установке и настройке zabbix с нуля (включая БД, apache).

Первым делом установим новый пакетный менеджер. Можно конечно собирать из портов, однако не вижу в этом особого смысла: во-первых это дольше, во-вторых при компиляции тянется много "мусора" в систему.

# pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/freebsd:10:x86:64/latest, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-1.4.12...
Extracting pkg-1.4.12: 100%
Message for pkg-1.4.12:
If you are upgrading from the old package format, first run:
# pkg2ng
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100% 944 B 0.9kB/s 00:01
Fetching packagesite.txz: 100% 5 MiB 5.3MB/s 00:01
Processing entries: 100%
FreeBSD repository update completed. 23955 packages processed

# pkg update
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.

Проверим текущие версии Zabbix

# pkg search zabbix
zabbix2-agent-2.0.14
zabbix2-frontend-2.0.14
zabbix2-proxy-2.0.14
zabbix2-server-2.0.14
zabbix22-agent-2.2.9
zabbix22-frontend-2.2.9
zabbix22-proxy-2.2.9
zabbix22-server-2.2.9
zabbix24-agent-2.4.4
zabbix24-frontend-2.4.4
zabbix24-proxy-2.4.4
zabbix24-server-2.4.4

Ставим zabbix24-server

# pkg install zabbix24-server-2.4.4
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
Updating database digests format: 100%
The following 20 packages will be affected (of 0 checked):
New packages to be INSTALLED:
zabbix24-server: 2.4.4
iksemel: 1.4_6
gnutls: 3.2.21
trousers-tddl: 0.3.10_7
p11-kit: 0.22.1
libtasn1: 4.2
ca_root_nss: 3.18
libffi: 3.2.1
indexinfo: 0.2.3
nettle: 2.7.1
gmp: 5.1.3_2
libidn: 1.29
gettext-runtime: 0.19.4
libssh2: 1.4.3_5,2
fping: 3.10
net-snmp: 5.7.3_6
perl5: 5.18.4_13
curl: 7.41.0
unixODBC: 2.3.2_1
mysql56-client: 5.6.23
The process will require 150 MiB more space.
26 MiB to be downloaded.

Для работы zabbix server необходима база данных. Я в качестве БД использую MySQL. Установим базу той же версии что и клиент, который подтянулся за zabbix server.

# pkg install mysql56-server
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 1 packages will be affected (of 0 checked):
New packages to be INSTALLED:
mysql56-server: 5.6.23
The process will require 84 MiB more space.
8 MiB to be downloaded.
Proceed with this action? [y/N]: y
Fetching mysql56-server-5.6.23.txz: 100% 8 MiB 8.4MB/s 00:01
Checking integrity... done (0 conflicting)
[1/1] Installing mysql56-server-5.6.23...
===> Creating users and/or groups.
Creating group 'mysql' with gid '88'.
Creating user 'mysql' with uid '88'.
[1/1] Extracting mysql56-server-5.6.23: 100%
Message for mysql56-server-5.6.23:
************************************************************************
Remember to run mysql_upgrade the first time you start the MySQL server
after an upgrade from an earlier version.
************************************************************************

Запустим базу и зададим пароль для root пользователя MySQL

# /usr/local/etc/rc.d/mysql-server onestart
Starting mysql.
# mysqladmin -u root password root_password

Подготовим базу для zabbix: создадим новую БД, пользователя, и дадим ему доступ до базы.

# mysql -u root -p
Enter password:
mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixpass';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \q
Bye

Портируем схемы (mysql -u 'логин юзера' -p 'имя БД'):

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

Свяжем zabbix с MySQL. Сделаем копию zabbix_server.conf.sample и настроим zabbix_server.conf 

# cd /usr/local/etc/zabbix24/
# cp zabbix_server.conf.sample zabbix_server.conf

В файле zabbix_server.conf необходимо поменять 4 строчки:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbixpass

Далее установим агент

# pkg install zabbix24-agent
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 1 packages will be affected (of 0 checked):
New packages to be INSTALLED:
zabbix24-agent: 2.4.4
The process will require 692 KiB more space.
164 KiB to be downloaded

Скопируем конфиг и запустим агент (по умолчанию он настроен на мониторинг zabbix server. Править необязательно)

# cp /usr/local/etc/zabbix24/zabbix_agentd.conf.sample /usr/local/etc/zabbix24/zabbix_agentd.conf
# sysrc zabbix_agentd_enable=YES
zabbix_agentd_enable: -> YES
# service zabbix_agentd start
Starting zabbix_agentd.

При установке frontend необходимо обратить внимание на версию php, которую он за собой "потянет". В моём случае версия была 5.6.7

# pkg install zabbix24-frontend-2.4.4
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 43 packages will be affected (of 0 checked):
New packages to be INSTALLED:
zabbix24-frontend: 2.4.4
php56-session: 5.6.7
php56: 5.6.7
libxml2: 2.9.2_2
pcre: 8.35_2
php56-xmlwriter: 5.6.7
php56-xmlreader: 5.6.7
php56-dom: 5.6.7
php56-xml: 5.6.7
php56-simplexml: 5.6.7
php56-ctype: 5.6.7
php56-sockets: 5.6.7
php56-ldap: 5.6.7
openldap-client: 2.4.40_1
php56-snmp: 5.6.7
php56-bcmath: 5.6.7
php56-gd: 5.6.7
libXpm: 3.5.11_2
xproto: 7.0.26
libXext: 1.3.3,1
xextproto: 7.3.0
libXau: 1.0.8_2
libX11: 1.6.2_2,1
libxcb: 1.11
libXdmcp: 1.1.1_2
libpthread-stubs: 0.3_6
kbproto: 1.0.6
libXt: 1.1.4_2,1
libSM: 1.2.2_2,1
libICE: 1.0.9,1
freetype2: 2.5.5
png: 1.6.16
jpeg: 8_6
t1lib: 5.1.2_4,1
libXaw: 1.0.12_2,2
printproto: 1.0.5
libXp: 1.0.2_2,1
libXmu: 1.1.2_2,1
php56-gettext: 5.6.7
php56-mysqli: 5.6.7
php56-mysql: 5.6.7
php56-mbstring: 5.6.7
oniguruma4: 4.7.1_1
The process will require 88 MiB more space.
15 MiB to be downloaded.

Установим apache24 для web интерфейса

# pkg install apache24
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 5 packages will be affected (of 0 checked):
New packages to be INSTALLED:
apache24: 2.4.12
expat: 2.1.0_2
apr: 1.5.1.1.5.4
gdbm: 1.11_2
db5: 5.3.28_2
The process will require 74 MiB more space.
16 MiB to be downloaded.

Для данной версии php установим пакеты php_extensions и mod_php

# pkg install mod_php56-5.6.7
# pkg install php56-extensions-1.0
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 14 packages will be affected (of 0 checked):
New packages to be INSTALLED:
php56-extensions: 1.0
php56-opcache: 5.6.7
php56-posix: 5.6.7
php56-hash: 5.6.7
php56-filter: 5.6.7
php56-tokenizer: 5.6.7
php56-json: 5.6.7
php56-sqlite3: 5.6.7_1
sqlite3: 3.8.8.3
php56-pdo_sqlite: 5.6.7_1
php56-pdo: 5.6.7
php56-iconv: 5.6.7
libiconv: 1.14_6
php56-phar: 5.6.7
The process will require 6 MiB more space.
2 MiB to be downloaded.

Настроим apache24 (/usr/local/etc/apache24/httpd.conf)

В этот файл добавим строчки

<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>

В модуле dir_module допишем index.php

<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

Не забудьте проверить загружен ли модуль php. 

LoadModule php5_module        libexec/apache24/libphp5.so

И раскомментировать строку

Include etc/apache24/extra/httpd-vhosts.conf

Сделаем виртуальный хост для zabbix

<VirtualHost zabbix.example.org:*>
ServerAdmin Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript.
DocumentRoot "/usr/local/www/zabbix24/"
ServerName zabbix.example.org
<Directory "/usr/local/www/zabbix24/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
Allow from all
</Directory>
</VirtualHost>

Дадим права апачу на директорию zabbix и скопируем конфиг php

# chown -R www:www /usr/local/www/
# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Добавим в rc.conf apache24, zabbix_server, mysql_server

# sysrc mysql_enable=YES
mysql_enable: -> YES
# sysrc apache24_enable=YES
apache24_enable: -> YES
# sysrc zabbix_server_enable=YES
zabbix_server_enable: -> YES

Запустим zabbix server и apache (БД мы запускали ранее)

# service zabbix_server start
Starting zabbix_server.
# service apache24 start
Performing sanity check on apache24 configuration:
Syntax OK
Starting apache24.

После этого зайдём на web server http:\\zabbix.example.org (можно зайти по ip адресу, если у вас нет домена. Для этого в настройках виртуального хоста вместо домена напишите ip адрес) и попадаем на страницу установки zabbix. Нажимаем Next

zabbix1

Видим что не нравится zabbix.

zabbix2

Отредактируем файл php.ini чтобы исправить эти недочёты. 

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1

Перезапустим apache и нажмём Retry

zabbix3

Следующим шагом подключим базу данных. Введите данные и нажмите Test

zabbix4

Заполняем дополнительную информацию (опционально) и проверяем правильность всех данных

zabbix5

zabbix6

Поздравляю! Zabbix server установлен! Можно приступать к мониторингу сети.

zabbix7

freebsd, zabbix