Т.к. у меня дома на моем микросервере (HP MicroServer Gen8 (4CPUs x 2,494Ghz, Intel Xeon CPU E3-1265L V2 2.50GHz, RAM 12Gb))
развернута одна VM
(внутри гипервизора ESXi 5.5
) специально под собственный мониторинг базирующейся на Zabbix 5 + Ubuntu 18.04 Server
, вот только сперва я это сделал под Apache2
, а вот размышляя чтобы бы оптимизировать пришел к выводу, а почему-бы не перевести на nginx
. К тому же будет заметка. Я за быстроту и собственные наработки.
Шаг №1:
Система Ubuntu 18.04 Server
установлена у меня через FOG Project
с применением файла ответов + настроечный скрипт на последующую работу + утилиты от VMware 5.5:
Шаг №2:
Изменяю именование системы:
ekzorchik@srv-bionic:~$ sudo nano /etc/hosts 172.33.33.23 srv-zabbix.polygon.local srv-zabbix ekzorchik@srv-bionic:~$ sudo nano /etc/hostname srv-zabbix ekzorchik@srv-bionic:~$ sudo reboot
Шаг №3:
Устанавливаю nginx +
сервис базы данных, т.е. mariadb
и компоненты php
для выполнения php
скриптов:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y nginx mariadb-server php7.2-fpm php7.2-mysql snmp libnet-snmp-perl snmp-mibs-downloader ekzorchik@srv-zabbix:~$ sudo mysqladmin -u root password 712mbddr@ ekzorchik@srv-zabbix:~$ sudo rm /var/www/html/index.nginx-debian.html ekzorchik@srv-zabbix:~$ nginx -V | head -n1 nginx version: nginx/1.14.0 (Ubuntu) built with OpenSSL 1.1.1 11 Sep 2018 TLS SNI support enabled ekzorchik@srv-zabbix:~$ sudo nano /etc/php/7.2/fpm/php.ini max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 date.timezone = Europe/Moscow
Шаг №4:
Создаю сайт под Zabbix
для конфигурации Web
—сервиса nginx:
ekzorchik@srv-zabbix:~$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup ekzorchik@srv-zabbix:~$ sudo unlink /etc/nginx/sites-available/default ekzorchik@srv-zabbix:~$ sudo unlink /etc/nginx/sites-enabled/default ekzorchik@srv-zabbix:~$ sudo nano /etc/nginx/sites-available/zabbix server { listen 80; root /usr/share/zabbix; index index.php; server_name 172.33.33.102; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # With php7.2-fpm: fastcgi_pass unix:/var/run/php7.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } ekzorchik@srv-zabbix:~$ sudo ln -s /etc/nginx/sites-available/zabbix /etc/nginx/sites-enabled/zabbix ekzorchik@srv-zabbix:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ekzorchik@srv-zabbix:~$ sudo pkill php7.2-fpm ekzorchik@srv-zabbix:~$ sudo systemctl restart nginx php7.2-fpm
Шаг №5:
Прописываю репозитарии на установку Zabbix 5
в систему:
ekzorchik@srv-zabbix:~$ wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb ekzorchik@srv-zabbix:~$ sudo dpkg -i zabbix-release_5.0-1+bionic_all.deb ekzorchik@srv-zabbix:~$ cat /etc/apt/sources.list.d/zabbix.list deb http://repo.zabbix.com/zabbix/5.0/ubuntu bionic main deb-src http://repo.zabbix.com/zabbix/5.0/ubuntu bionic main ekzorchik@srv-zabbix:~$ ekzorchik@srv-zabbix:~$ sudo apt-get update
Шаг №6:
Устанавливаю компонент Zabbix
на работу с базой данных, создаю пользователя, пароль на пользователя и базу которая будет использована под сервис Zabbix:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y zabbix-server-mysql ekzorchik@srv-zabbix:~$ sudo mysql -u root -p712mbddr@ -e "create database db_zabbix character set utf8 collate utf8_bin" ekzorchik@srv-zabbix:~$ sudo mysql -u root -p712mbddr@ -e "create user 'us_zabbix'@'localhost' identified by '612mbddr@'" ekzorchik@srv-zabbix:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_zabbix.* to 'us_zabbix'@'localhost';"
Шаг №7:
В комплекте установленного пакета связки mysql + Zabbix: zabbix-server-mysql
присутствует структура формирующая базу данных, ее следует импортировать в созданную "Шаг №6"
базу:
ekzorchik@srv-zabbix:~$ sudo zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u us_zabbix -p612mbddr@ db_zabbix
Шаг №8:
Теперь настраиваю серверную часть Zabbix
на взаимодействие с базой данных:
ekzorchik@srv-zabbix:~$ sudo cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.backup ekzorchik@srv-zabbix:~$ sudo rm /etc/zabbix/zabbix_server.conf ekzorchik@srv-zabbix:~$ sudo nano /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=db_zabbix DBUser=us_zabbix DBPassword=612mbddr@ DBPort=3306 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=5 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6 LogSlowQueries=3000 StatsAllowedIP=127.0.0.1
Шаг №9:
Устанавливаю Zabbix Frontend:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y zabbix-frontend-php zabbix-nginx-conf zabbix-get
Шаг №10:
Устанавливаю Zabbix
—агент на систему где у меня Zabbix
—сервер, на эту же:
ekzorchik@srv-zabbix:~$ sudo apt-get install -y zabbix-agent ekzorchik@srv-zabbix:~$ sudo mv /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.backup ekzorchik@srv-zabbix:~$ sudo nano /etc/zabbix/zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 #EnableRemoteCommands=1 AllowKey=system.run[*] LogRemoteCommands=1 Server=127.0.0.1, 172.33.33.102 ServerActive=127.0.0.1,172.33.33.102 Timeout=5 Hostname=Zabbix server Include=/etc/zabbix/zabbix_agentd.d/*.conf UnsafeUserParameters=1
Шаг №11:
Запускаю сервер, и агент дабы после последующих если нужны будет перезагрузки сервера службы поднимались автоматически:
ekzorchik@srv-zabbix:~$ sudo systemctl enable zabbix-server zabbix-agent ekzorchik@srv-zabbix:~$ sudo systemctl restart zabbix-server zabbix-agent
Шаг №12:
Перехожу к первоначальной настройке Zabbix
через Web
—интерфейс:
http://IP&DNS/ - (http://172.33.33.102)
после URL
адрес становится вида http://172.33.3.102/setup.php
и я нажимаю Next Step
, проверяю что на этапе "Check of pre-requisites"
все рекомендуемые настройки в статусе OK
и только после этого нажимаю "Next Step"
, далее заполняю настройки взаимодействия будущего сервиса Zabbix
с базой, пользователем и паролем:
и нажимаю Next Step
Далее указываю
Host: localhost
Port: 10051
Name: 172.33.33.102
И нажимаю Next Step
Проверяю результирующую и если все устраивает, то нажимаю Next Step
В случае успеха – впрочем по-другому у меня и быть не может вижу надпись: «Congratulations! You have successfully installed Zabbix frontend.
Configuration file "/usr/share/zabbix/conf/zabbix.conf.php" created.»
, а значит нажимаю Finish
и перехожу к использованию только что самолично развернутого Zabbix
сервиса версии 5
на Ubuntu 18.04 Server amd64
Шаг №13:
Авторизуюсь на Web
—интерфейсе Zabbix 5:
http://IP&DNS/index.php - (http://172.33.33.102/index.php)
Username: Admin
Password: zabbix
Remember me for 30 days: отмечаю галочкой
И нажимаю Sign in
И вот новый интерфейс вашего/моего мониторинга с которым я буду взаимодействовать на благо личного использования, как для моих проектов, так и для обслуживаемых узлов – как фрилансер:
Шаг №14:
Но вот, что еще нужно сделать – это дать возможность через Web
—интерфейс менять язык интерфейса, чтобы если пишутся личные мануалы не забывать для себя же в первую очередь указывать именование, как на русском, так и на английском.
ekzorchik@srv-zabbix:~$ locale LANG=en_US.UTF-8 LANGUAGE=en.US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 ekzorchik@srv-zabbix:~$ sudo locale-gen ru_RU.UTF-8 Generating locales (this might take a while)... ru_RU.UTF-8... done Generation complete. ekzorchik@srv-zabbix:~$
Теперь через Web
-интерфейс изменяю язык интерфейса с английского на русский:
http://IP&DNS (http://172.33.33.102) – user&pass – User Settings – User
– и Language
с English (en_GB)
ставлю, как Russian (ru_RU)
, а затем нажимаю Update
И вот интерфейс изменился тут же на русскоязычный:
Вот теперь все намного приятнее к последующему использованию.
Итак, я для себя подготовил шпаргалку на тему как вместо Web
-сервера Apache2
использовать быстродействующий nginx
(Просто данный Web
-сервис у меня везде, на всех сервисах, личных и корпоративных). На этом заметка завершена, с уважением автор блога Олло Александр aka ekzorchik.