Как установить Zabbix сервер на Ubuntu Xenial

Posted by

Сегодня я для себя составлю шпаргалку по разворачиванию сервиса Zabbix версии: 3.2.5 (на момент написания заметки от 30.04.2017). Раз уже давно существует и используется релиз Ubuntu Xenial Server 16.05 LTS то и пора бы посмотреть, а изменилось ли что-либо в установке и нюансах первоначальной настройки. Вот обо всем этом Вы узнаете здесь и сейчас. Просто во всех руководствах почему-то не приводятся все шаги, а лишь куски да и не полный вывод из чего конкретно он получился. Я же стараюсь, как уже не однократно говорил воссоздать все окружение и уже потом наложить на него сервис и поставленную задачу. Для меня важно все делать самим дабы не зависеть ни от кого.

Итак, собственно сама настройка, в роли тестовой станции выступит виртуальная система развернутая под тестовым окружением Virtualbox со следующими характеристиками: RAM = 2, HDD = 30, CPU = 1. В боевом исполнении эти значения подбираются исходя из Вашего личного опыта и Ваших наработок.

Шаг №1: Подготавливаю систему

ekzorchik@srv-mon:~$ sudo nano /etc/update-manager/release-upgrades

Prompt=never

ekzorchik@srv-mon:~$ sudo rm /etc/localtime

ekzorchik@srv-mon:~$ sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

ekzorchik@srv-mon:~$ sudo rm -Rf /var/lib/apt/lists

ekzorchik@srv-mon:~$ sudo apt-get update && sudo apt-get upgrade -y

ekzorchik@srv-mon:~$ uname -a && lsb_release -a && arch

Linux srv-mon 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: .2 LTS

Release: 16.04

Codename: xenial

x86_64

ekzorchik@srv-mon:~$ sudo nano /etc/profile

export LC_ALL="en_US.UTF-8"

ekzorchik@srv-mon:~$ source /etc/profile

Шаг №2: Устанавливаю необходимые пакеты перед установкой

ekzorchik@srv-mon:~$ sudo apt-get install mysql-server mysql-client apache2 php-mbstring php-bcmath php-xml -y

New password for the MySQL "root" user: 712mbddr@

Repeat password for the MySQL "root" user: 712mbddr@

Шаг №3: После убираю не нужные описания сайтов для Apache2:

ekzorchik@srv-mon:~$ sudo unlink /etc/apache2/sites-available/000-default.conf

ekzorchik@srv-mon:~$ sudo unlink /etc/apache2/sites-available/default-ssl.conf

ekzorchik@srv-mon:~$ sudo unlink /etc/apache2/sites-enabled/000-default.conf

ekzorchik@srv-mon:~$ sudo rm /var/www/html/index.html

Шаг №4: Настраиваю Webсервер Apache2:

ekzorchik@srv-mon:~$ sudo nano /etc/apache2/apache2.conf

ServerName srv-mon

ekzorchik@srv-mon:~$ sudo nano /etc/php/7.0/apache2/php.ini

date.timezone = Europe/Moscow

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

Шаг №5: Далее создаю базу и пользователя под базу на взаимодействие сервиса Zabbix с базой данных где будет храниться вся информация:

ekzorchik@srv-mon:~$ sudo mysql_secure_installation

ekzorchik@srv-mon:~$ mysql -u root -p712mbddr@ -e "create database db_zabbix character set utf8 collate utf8_bin"

ekzorchik@srv-mon:~$ mysql -u root -p712mbddr@ -e "grant all privileges on db_zabbix.* to uzabbix@localhost identified by '612mbddr@'"

ekzorchik@srv-mon:~$ mysql -u root -p712mbddr@ -e "flush privileges"

Шаг №6: Теперь подключаю репозитарий содержащий пакеты устанавливаемого Zabbix:

ekzorchik@srv-mon:~$ sudo nano /etc/apt/sources.list.d/zabbix.list

deb http://repo.zabbix.com/zabbix/3.2/ubuntu xenial main contrib non-free

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

ekzorchik@srv-mon:~$ sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 082AB56BA14FE591

ekzorchik@srv-mon:~$ sudo bash -c "gpg --export 082AB56BA14FE591 | apt-key add - "

ekzorchik@srv-mon:~$ sudo apt-get update

Шаг №7: Возвращаюсь к установке Zabbix, т. к. шагами выше я успешно подключил репозитарии:

ekzorchik@srv-mon:~$ sudo apt-get install zabbix-server-mysql zabbix-agent zabbix-frontend-php -y

Теперь нужно в конфигурационном файле Zabbix-сервиса сервера указать все необходимые данные такие как:

  • имя используемой базы данных
  • имя пользователя под эту базу данных
  • пароль пользователя

ekzorchik@srv-mon:~$ sudo nano /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=db_zabbix

DBUser=uzabbix

DBPassword=612mbddr@

DBPort=3306

ekzorchik@srv-mon:~$ sudo ln -sf /usr/share/zabbix/ /var/www/html/zabbix

ekzorchik@srv-mon:~$ sudo service zabbix-agent start

ekzorchik@srv-mon:~$ sudo service zabbix-server start

ekzorchik@srv-mon:~$ sudo service apache2 restart

Шаг №8: Теперь отрываю в браузере URL ссылку вида: http://IP&DNS/zabbix, где IP&DNS это данный текущей системы, узнать, к примеру IP адрес можно так:

ekzorchik@srv-mon:~$ ip r | awk '{print $9}'

10.7.8.201

Шаг №9: Итого ссылка: http://10.7.8.201/zabbix/setup.php, первым делом меня встречает мастер установки, нажимаю на шаге Welcome кнопку Next step.

На следующем шаге Check of pre-requisites проверяем, чтобы все параметры соответствовали состоянию OK, если что-то не так, то исправляем, у меня все ок, а по этому двигаюсь дальше, нажимаю кнопку Next step.

На следующем шаге Configure DB connection указываю параметры подключения к базе данных:

  • Database type: MySQL
  • Database host: localhost
  • Database port: 3306
  • Database name: db_zabbix
  • User: uzabbix
  • Password: 612mbddr@

и нажимаю Next step, но вот что — мастер говорит что ошибка подключения к базе:

Ошибка подключения Web-фронтенда к базе отсутствует структура таблиц

Как мне припоминается из работы Zabbix под Ubuntu Trusty, там то же самое было, и в этом случае нужно импортировать структуру таблиц в базу данных:

ekzorchik@srv-mon:~$ sudo gzip -d /usr/share/doc/zabbix-server-mysql/create.sql.gz

ekzorchik@srv-mon:~$ sudo mysql -u root -p712mbddr@ db_zabbix < /usr/share/doc/zabbix-server-mysql/create.sql

После перехожу на страницу с ошибкой установки и нажимаю клавишу F5 дабы обновить отображаемую информацию на странице. Ошибка пропадает.

На следующем шаге Zabbix server details указываем IP или DNS имя сервера для разворачиваемого сервиса Zabbix.

  • Host: localhost
  • Port: 10051
  • Name: 10.7.8.201

и нажимаю кнопку Next step

На следующем шаге Pre-installation summary проверяю, все настройки которые я вводил под руководством мастера установки. Все так и есть и поэтому нажимаю кнопку Next step.

И мастер радостно меня поздравляет, что установка Web-оснастки Zabbix успешно завершена.

Congratulations! You have successfully installed Zabbix frontend.

Configuration file «/usr/share/zabbix/conf/zabbix.conf.php» created.

Нажимаю кнопку Finish

Теперь я оказался на странице URL ссылка которой: http://10.7.8.201/zabbix/index.php где необходимо произвести авторизацию в развернутой системе мониторинга. По умолчанию идентификационные данные следующие:

  • Username: admin
  • Password: zabbix

и нажимаю Sign in, но не тут то было в доступе отказано: Login name or password is incorrent. Странно, в Ubuntu Precise, Ubuntu Trusty это были дефолтные данные. Итого, видимо разработчики изменили их, теперь они:

  • Username: Admin
  • Password: zabbix

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

Серверная часть Zabbix успешно установлена на Ubuntu Xenial

Шаг №10: Но это еще не все, нужно преобразовать работу с Webинтерфейсом мониторинга Zabbix с URL ссылки вида: http на https. Дальнейшие действия должны быть аналогичны тем которые я проделывал на Ubuntu Trusty, посмотрим так ли это:

ekzorchik@srv-mon:~$ openssl req -new -x509 -days 3650 -keyout zabbix.key -out zabbix.pem

Enter PEM pass phrase: ввожу 712mbddr@

Verifying - Enter PEM pass phrase: повторяю ввод 712mbddr@

Common Name (e.g. server FQDN or YOUR name) []:10.7.8.201

ekzorchik@srv-mon:~$ cp zabbix.key{,.orig}

ekzorchik@srv-mon:~$ openssl rsa -in zabbix.key.orig -out zabbix.key

Enter pass phrase for zabbix.key.orig: ввожу 712mbddr@

writing RSA key

ekzorchik@srv-mon:~$ rm zabbix.key.orig

ekzorchik@srv-mon:~$ sudo cp zabbix.pem /etc/ssl/certs/

ekzorchik@srv-mon:~$ sudo cp zabbix.key /etc/ssl/private/

ekzorchik@srv-mon:~$ sudo chmod 0600 /etc/ssl/private/zabbix.key

ekzorchik@srv-mon:~$ sudo nano /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html/zabbix

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/ssl/certs/zabbix.pem

SSLCertificateKeyFile /etc/ssl/private/zabbix.key

</VirtualHost>

</IfModule>

ekzorchik@srv-mon:~$ sudo a2ensite default-ssl.conf

ekzorchik@srv-mon:~$ sudo apache2ctl configtest

Syntax OK

ekzorchik@srv-mon:~$ sudo service apache2 restart

Теперь доступ к Web-панели управления Zabbix работает через самоподписанный сертификат по ссылке вида: https://10.7.8.201/zabbix/zabbix.php?action=dashboard.view

Шагами выше у меня теперь работает, как http так и через https.

Шаг №11: Для того, чтобы подключение работало только через https нужно сделать следующее:

ekzorchik@srv-mon:~$ sudo nano /etc/apache2/ports.conf

#Listen 80

ekzorchik@srv-mon:~$ sudo service apache2 restart

Хоть такой способ это крайность, но имеет место быть. После него только через https можно подключиться к Web-интерфейсу администрирования Zabbix сервиса. И вот по итогу что можно сказать, а то что установка не сильно отличается от установки на Ubuntu Trusty, вообще все дело в Ваших навыках и практике. А еще забыл в Вашем желании. На этом я прощаюсь, задача выполнена, с уважением автор блога Олло Александр aka ekzorchik.