Zabbix – свободная система для мониторинга различных IT инфраструктур, например облачных сервисов, обычной сети, а так же VPS. Она умеет отслеживать самые разные параметры, например, загрузку ЦПУ, место на жестком диске, пинг, доступность узлов, загрузку сети, а так же строить графики и рассылать оповещения.
Мониторинг Zabbix может быть развернут как с помощью программы агента, так и с помощью существующих ресурсов системы или устройства (например с помощью ICMP пинга, или SNMP, в том числе подключаясь через SSH или Telnet, выполняя любую команду и использовать вывод как возвращаемое значение)
Сегодня мы используя Mysql в качестве БД и Nginx в качестве web сервера запустим Zabbix на Ubuntu версии 20.04.
Подготовка:
Нам понадобится сервер с ubuntu 20.04 и root доступ
Большинство команд в этой инструкции потребуют root доступ, зайдите под суперпользователем или используйте sudo.
Zabbix присутствует в стандартных репозиториях, но не в последней версии, к счастью у Zabbix есть свой репозиторий, его и подключим командой:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb
dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb
Нам понадобится целый набор приложений, давайте установим его.
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts
База данных
Скачаем Mysql.
apt install mysql-server
Не забудем его запустить.
systemctl start mysql.service
Зайдем в Mysql под суперпользователем
mysql -uroot -p
При первом запуске нас попросят ввести пароль, заводим любой удобный нам.
Добавим базу.
create database zabbix character set utf8mb4 collate utf8mb4_bin;
Серверу понадобится аккаунт для работы с БД, создадим его следующей командой. Можно подставить свой пароль(оставляем кавычки).
create user zabbix@localhost identified by 'password';
Дадим ему права, для работы с бд.
grant all privileges on zabbix.* to zabbix@localhost;
Разрешим бинарное логирование (позволит подставить шаблонную базу данных).
set global log_bin_trust_function_creators = 1;
quit;
Скачаем шаблонную конфигурацию, введём пароль, добавленный выше.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
Выключаем логирование,
mysql -uroot -p
set global log_bin_trust_function_creators = 0;
quit;
Поправим содержимое
nano /etc/zabbix/zabbix_server.conf
Уберем комментарий (нужно стереть символ “#”) с “DBPassword=” и впишем свой пароль.
Для быстрого поиска можно воспользоваться Ctrl+W
Закрываем Nano. Ctrl+X, соглашаемся с изменениями.
Настройка web-сервера
Изменим файл /etc/zabbix/nginx.conf. Снимаем комментарии с опций ‘listen’ и ‘server_name’.
listen 8080 – это порт на котором будет открываться интерфейс Zabbix, менять его не нужно, а в строке server_name понадобиться вписать IP адрес cервера вместо “example.com”.
Настройка интерфейса
Посмотрим доступные языки.
Если мы хотим пользоваться локализованными интерфейсом, то придется вначале настроить список доступных локалей.
locale -a
Для добавления нужной нам, откроем /etc/locale.gen и снимем комментарий с ru_RU.UTF8
sudo nano */etc/locale.gen*
Выходим из файла, сохраняем изменения, обновляем подключенные локали.
sudo locale-gen
Перезагрузим Zabbix, чтобы подгрузились новые локализации.
systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
И конечно добавим автоматическую загрузку на старте системы
systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Проверяем – всё ок.
Двигаемся дальше, проверяем что всё работает.
Тип БД – Mysql, БД, как и пользователь – zabbix, пароль от пользователя такой же как в базе данных.
Время и имя выбираем любое удобное.
Ещё раз проверяем что всё в порядке.
Сервер готов, осталось зайти и начать пользоваться, жмем ‘Finish’ и вводим учётные данные.
Username: Admin
Password: zabbix
Заключение
Сегодня мы сделали первый шаг в настройке системы мониторинга, установив сервер Zabbix на Ubuntu 20.04