Пора приобщаться к новому и уходить от версии Zabbix 2.2.11 (Ubuntu Precise) до более совершенной (новой) Zabbix 3.2.1 чем я сейчас и займусь.
На заметку: чтобы перенести данный из версии 2.2.11 в текущую новую, можно воспользоваться заметкой: – нет не будет работать, т. к. из документации видно, что для перехода с версии 2 на версию 3 нужно совершить еще кучу действий по апгрейду на следующие действия в этом промежутке, так что проще открыть все задокументированные настройки поставки на мониторинг сервисов и перебить их руками.
Все дальнейшие действия протекают в системе Ubuntu 14.04.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
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
Нажимаю «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-сервером:
может так случиться, что открытая 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 и результат достигнут точнее то что и было задумано.
Нажимаю «Дополнительно» → «Добавить исключение» – «Подтвердить
исключение безопасности» и вот для чего все это было проделано:
Вот теперь пошаговое руководство для себя разобрано в полной мере. Публиковать ли его на блоге — не знаю, жалко — это был мой труд и мое время которое я на это дело потратил. Все что делаю нужно делать только для себя.
Чтобы при обращении к http://IP&DNS не показывало дефолтную страницу Apache а сразу же перекидывало на https://IP&DNS
нужно сделать следующее:
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.