Более новый релиз Zabbix на Ubuntu Trusty

Posted by

Пора приобщаться к новому и уходить от версии Zabbix 2.2.11 (Ubuntu Precise) до более совершенной (новой) Zabbix 3.2.1 чем я сейчас и займусь.

На заметку: чтобы перенести данный из версии 2.2.11 в текущую новую, можно воспользоваться заметкой: — нет не будет работать, т. к. из документации видно, что для перехода с версии 2 на версию 3 нужно совершить еще кучу действий по апгрейду на следующие действия в этом промежутке, так что проще открыть все задокументированные настройки поставки на мониторинг сервисов и перебить их руками.

Все дальнейшие действия протекают в системе .5 Server amd64 (CPU = 2, HDD = 100Gb (SATA) (LVM), RAM = 4) для моих контролируемых систем более чем достаточно.

Первое что делаю после установки системы это запрещаю обновление до более новых стабильных релизов Ubuntu, я работаю пока с Ubuntu Trusty:

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

Prompt=never

Прописываем настройки локали и часового пояса:

ekzorchik@srv-host:~$ sudo locale-gen ru_RU

ekzorchik@srv-host:~$ sudo locale-gen ru_RU.UTF8

ekzorchik@srv-host:~$ sudo dpkg-reconfigure locales

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

export LC_ALL="en_US.UTF-8"

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

Теперь отредактирую файл /etc/locale.alias:

ekzorchik@srv-host:~$ sudo nano /etc/locale.alias

вместо: russian ru_RU.ISO-8859-5

изменяю на: russian ru_RU.UTF-8

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

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

Apparmor disable

ekzorchik@srv-host:~$ sudo nano /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

ekzorchik@srv-host:~$ sudo sysctl -p

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

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

ekzorchik@srv-host:~$ sudo apt-get install linux-generic-lts-xenial linux-image-generic-lts-xenial -y

ekzorchik@srv-host:~$ sudo reboot

Итого получается текущая система:

ekzorchik@srv-host:~$ uname -a && lsb_release -a

Linux srv-host 4.4.0-42-generic #62~14.04.1-Ubuntu SMP Fri Oct 7 23:15:48 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.5 LTS

Release: 14.04

Codename: trusty

Ставлю Webсервер LAMP:

ekzorchik@srv-host:~$ sudo tasksel install lamp-server

New password for the MySQL «root» user: 712mbddr@

Repeat password for the MySQL «root» user: 712mbddr@

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

ServerName srv-host

ekzorchik@srv-host:~$ sudo nano /etc/php5/apache2/php.ini

date.timezone = Europe/Moscow

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

Теперь добавляем репозитарий содержащий самую стабильную версию Zabbix на текущий релиз используемой системы:

ekzorchik@srv-host:~$ sudo nano /etc/apt/sources.list

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

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

W: GPG error: http://repo.zabbix.com trusty InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 082AB56BA14FE591

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

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

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

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

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

ekzorchik@srv-host:~$ apt-cache show zabbix-server-mysql | grep Version

Version: 1:3.2.1-1+trusty

Version: 1:2.2.2+dfsg-1ubuntu1

Отлично, приступаю к установке самой последней, т. е. Версии Zabbixсервер 3.2.1:

ekzorchik@srv-host:~$ sudo apt-get install zabbix-server-mysql=1:3.2.1-1+trusty -y

ekzorchik@srv-host:~$ apt-cache show zabbix-agent | grep Version

Version: 1:3.2.1-1+trusty

Version: 1:2.2.2+dfsg-1ubuntu1

ekzorchik@srv-host:~$ sudo apt-get install zabbix-agent=1:3.2.1-1+trusty -y

ekzorchik@srv-host:~$ apt-cache show zabbix-frontend-php | grep Version

Version: 1:3.2.1-1+trusty

Version: 1:2.2.2+dfsg-1ubuntu1

ekzorchik@srv-host:~$ sudo apt-get install zabbix-frontend-php=1:3.2.1-1+trusty -y

ekzorchik@srv-host:~$ sudo apt-get install apt-show-versions -y

ekzorchik@srv-host:~$ sudo apt-show-versions | grep zabbix

zabbix-agent:amd64/trusty 1:3.2.1-1+trusty uptodate

zabbix-frontend-php:all/trusty 1:3.2.1-1+trusty uptodate

zabbix-server-mysql:amd64/trusty 1:3.2.1-1+trusty uptodate

Странно что в момент установки Zabbix-server-mysql у меня не запрашивались данные для работы в частности создание базы данных, пользователя под базу данных и пароля, ну ничего тогда создам сам:

ekzorchik@srv-host:~$ sudo mysql_secure_installation

ekzorchik@srv-host:~$ mysql -u root -p712mbddr@

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 48

Server version: 5.5.52-0ubuntu0.14.04.1 (Ubuntu)

mysql> create database db_zabbix character set utf8 collate utf8_bin;

mysql> grant all privileges on db_zabbix.* to user_zabbix@localhost identified by '612mbddr@';

mysql> flush privileges;

mysql> exit;

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

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

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

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

ExternalScripts=/usr/lib/zabbix/externalscripts

FpingLocation=/usr/bin/fping

#Fping6Location=/usr/bin/fping6

DBHost=localhost

DBName=db_zabbix

DBUser=user_zabbix

DBPassword=612mbddr@

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

Запускаю Zabbix:

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

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

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

Теперь запускаю браузер и открываю URL развернутого Zabbix-сервиса:

ekzorchik@srv-host:~$ ip r

default via 192.168.1.9 dev eth0

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.158

  • Синтаксис: http://IP&DNS/zabbix
  • получается так: http://192.168.1.158/zabbix/setup.php

Разворачиваю релиз Zabbix 3.2 на Ubuntu Trusty

Нажимаю «Next step» — проверяю что на следующем шаге «Check of pre-requisites» нет никаких уведомлений что что-то отсутствует или не верные настройки в конфигурационных файлах и необходимых зависимостях, убедившись что напротив всех параметров стоит: OK следую за мастером переходя к следующего шагу Next step,

Указываю данные для MySQL на подключение к базе данных: db_zabbix

  • Database type: MySQL
  • Database host: localhost
  • Database port: 0 (Use default port)
  • Database name: db_zabbix
  • User: user_zabbix
  • Password: 612mbddr@

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

Cannot connect to the database.

The frontend does not match Zabbix database.

Смотрю логи:

ekzorchik@srv-host:~$ sudo bash -c "cat /var/log/mysql/error.log"

ни чего примечательного не наблюдаю либо я толком не знаю на что смотреть.

А потому выхожу из данной ситуации следующим образом импортирую в базу структуру таблиц:

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

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

после возвращаюсь на страницу где идут по шагам мастера подготовки Zabbix к использованию и на шаге где указав данные подключения к базе нажимаю клавишу F5 и ошибка пропадает (т. е. Я прошел успешно данный шаг).

Теперь (Zabbix server details) мне нужно указать информацию посредством которой Zabbix-сервер будет ожидать подключения из вне, т. е. Порт взаимодействия с агентами:

  • Host: localhost
  • Port: 10051
  • Name: 192.168.1.158

и нажимаю Next step

Теперь на шаге (Pre-Installation summary) проверяю все введенные параметры, т. е.

  • Database type: MySQL
  • Database server: localhost
  • Database port: 3306
  • Database name: db_zabbix
  • Database user: user_zabbix
  • Database password: *********
  • Zabbix server: localhost
  • Zabbix server port: 10051
  • Zabbix server name: 192.168.1.158

Если все верно как и задумано то двигаюсь дальше нажатием на Next step

И вуаля, поздравления от мастера, фронтенд Zabbix успешно установлен:

Congratulations! You have successfully installed Zabbix frontend.

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

Нажимаю Finish и уже могу пользоваться самой стабильной и последней версией системы по мониторингу за подконтрольной инфраструктурой.

Авторизуюсь в ней (системе):

  • URL: http://192.168.1.158/zabbix/index.php
  • Username: admin
  • Password: zabbix
  • Remember me for 30 days: отмечаю галочкой

И нажимаю Sign in

И вот новый вид панели управления и администрирования Zabbix-сервером:

Так выглядит новый релиз Zabbix 3.2

может так случиться, что открытая Web-панель в самом низу страницу будет показывать, что Zabbix-сервер не запущен:

Zabbix server is not running: the information displayed may not be current

проверяем так ли это на самом деле и исправляем если так:

ekzorchik@srv-host:~$ sudo service zabbix-server status

* zabbix_server is not running

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

ekzorchik@srv-host:~$ sudo service zabbix-server status

* zabbix_server is running

Вот теперь всё.

Далее нужно обезопасить работу с Zabbixсервером добавив возможность шифровать соединение, т. е. Открывать URL фронтенда не по http, а по https:

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

writing new private key to ‘zabbix.key’

Enter PEM pass phrase: 712mbddr@

Verifying — Enter PEM pass phrase: 712mbddr@

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

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

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

Enter pass phrase for zabbix.key.orig:712mbddr@

writing RSA key

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

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

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

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

ekzorchik@srv-host:~$ sudo a2enmod ssl

ekzorchik@srv-host:~$ sudo a2ensite default-ssl

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

SSLEngine on

SSLProtocol all -SSLv2

SSLCertificateFile /etc/ssl/certs/zabbix.pem

SSLCertificateKeyFile /etc/ssl/private/zabbix.key

ekzorchik@srv-host:~$ sudo apache2ctl configtest

Syntax OK

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

После запускаю уже URL: https://192.168.1.158/zabbix и результат достигнут точнее то что и было задумано.

Настраиваем обращение к сервису Zabbix через SSL

Нажимаю «Дополнительно» → «Добавить исключение» — «Подтвердить

исключение безопасности» и вот для чего все это было проделано:

Работа Zabbix 3.2 через SSL настроена

Вот теперь пошаговое руководство для себя разобрано в полной мере. Публиковать ли его на блоге — не знаю, жалко — это был мой труд и мое время которое я на это дело потратил. Все что делаю нужно делать только для себя.

Чтобы при обращении к http://IP&DNS не показывало дефолтную страницу Apache а сразу же перекидывало на https://IP&DNS

Доступ к Zabbix 3.2 работает, как через http так и через https

нужно сделать следующее:

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

DocumentRoot /var/www/html/zabbix

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

DocumentRoot /var/www/html/zabbix

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

но вот что ссылка открывается как по http так и по https — пока так оставлю.

Итого, я в шагах задокументировал действия по разворачиванию новой версии Zabbix которую я в последствии начал применять на рабочем месте, многое из предыдущих релизов при переносе в новую версию не заработало как и должно было быть, ведь все также было расписано, но в последствии я также описал но уже с расчетом на эту версию Zabbix. Главное во всем этом — это не сдаваться перед трудностями, если что-то не получается из задуманное, нужно разложить задачу на мелкие составляющие и уже их решать. Так было и есть со мной. А пока я считаю что данная заметка имеет место быть опубликованной на моем блоге, с уважением автор блога Олло Александра aka ekzorchik.