Сегодня я для себя составлю шпаргалку по разворачиванию сервиса 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: Ubuntu 16.04.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, но вот что — мастер говорит что ошибка подключения к базе:
Как мне припоминается из работы 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:
Шаг №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.