Zabbix — свободная система мониторинга статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым.
В нашем примере мы будем использовать связку Zabbix Server 6.0 LTS с веб сервером Nginx + СУБД MySQL. Операционная система установлена Ubuntu 20.04.
Для начала подготовьте сервер и установите нужные пакеты:
sudo apt update
sudo apt install -y htop iotop nload mc curl tar wget net-tools
Настроим дату и часовой пояс:
sudo timedatectl set-timezone Europe/Moscow
sudo apt -y install chrony
sudo systemctl restart chrony && systemctl enable chrony
Откройте порты: 80, 443,10051 TCP
Установка сервера Zabbix на Ubuntu 20.04
Установим нужный репозиторий Zabbix
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb
sudo apt update
Установите пакеты Zabbix
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
У меня сам по себе поставился Апач, удаляем:
sudo apt -y remove apache2
sudo -y apt autoremove
Установите MySQL
sudo apt install -y mysql-server mysql-client
Установите пароль для root службы MySQL
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'password';
exit
Запустим скрипт безопасности и внесем первоначальные изменения в конфигурацию MySQL
mysql_secure_installation
Отвечаем на вопросы:
Enter password for user root: <ваш пароль с прошлого шага>
Would you like to setup VALIDATE PASSWORD component? N
Change the password for root ? N
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y
Создаем пользователя и базу данных для zabbix
# sudo mysql -uroot -p
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;
Импортируем начальную схему и данные в нашу базу. При запросе введем пароль от созданного пользователя.
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
Измените настройки PHP:
# mcedit /etc/zabbix/php-fpm.conf
php_value[post_max_size] = 100M
php_value[upload_max_filesize] = 100M
php_value[date.timezone] = Europe/Moscow
Укажем в конфиге сервера Zabbix пароль от базы данных:
echo "DBPassword=password" >> /etc/zabbix/zabbix_server.conf
cat /etc/zabbix/zabbix_server.conf | grep DBPassword
Удалите конфиг Nginx по умолчанию:
rm -f /etc/nginx/sites-enabled/default
В файле /etc/zabbix/nginx.conf отредактируйте директивы listen и server_name.
# mcedit /etc/zabbix/nginx.conf
server {
listen 80;
server_name zbx.domain.com;
По желанию можно установить поддержку русского языка:
sudo locale-gen ru_RU
Добавьте в автозагрузку и запустите службы:
sudo systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
sudo systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm
Введите IP адрес или доменное имя вашего сервера в адресной строке и приступите к установке:
После первоначальной инициализации логин по умолчанию Admin, пароль zabbix.
Для того, чтобы оперативно получать события мониторинга настроим оповещения нашего сервера Zabbix.
Оповещения Zabbix на электронную почту
Перейдем в раздел Администрирование -> Способы оповещений и выберем Email.
Приведите настройки шаблона в соответствии с настройками вашего почтового сервера.
Шаблон оповещения можно изменить на вкладке Шаблоны сообщений (Message templates).
Оповещения Zabbix в Telegram
Перейдем в раздел Администрирование -> Способы оповещений и выберем Telegram.
Откроем чат с @BotFather и создаем бота командой /newbot
Указываем имя бота yournamebot и сохраняем полученный токен: **************************
Теперь откройте чат с @myidbot и запросите ID командой /getid
Указываем полученные данные в поле Token, нажимаем кнопку Обновить.
Так же есть возможность проверить работу оповещения. Введите ID чата от бота @myidbot и нажмите Тест:
Активируем действия триггеров Настройка -> Действия -> Report problems to Zabbix administrators
Осталось добавить настроенное оповещение нашему пользователю.
Администрирование -> Пользователи -> Выбираем пользователя Admin и назначаем ему оповещение из Telegram (ID берем из чата @myidbot) или Email.
Установка Zabbix Agent 6 на Ubuntu 20.04
Добавим репозиторий и установим агент:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu20.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb
sudo apt update
sudo apt -y install zabbix-agent
Альтернативные репозитории для других систем смотрим на сайте Zabbix:
https://www.zabbix.com/download
Разрешим подключение к порту агента:
sudo ufw allow 10050/tcp
Введем переменные для быстрой замены конфигурационного файла агента:
zabbixsrv="zbx.domain.com"
serverhostname="server 1"
Заменим содержимое конфига и запустим службу:
sed -i.bak -e "s/^Server*=.*/Server=$zabbixsrv/; s/^ServerActive*=.*/ServerActive=$zabbixsrv/; s/^Hostname*=.*/Hostname=$serverhostname/" /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent && systemctl enable zabbix-agent
Можно посмотреть логи ошибок, если у вас что-то не получается:
tail -f /var/log/zabbix/zabbix_agentd.log
Теперь добавим наш новый сервер для мониторинга в заббиксе:
Настройка -> Узлы сети -> Создать узел сети
Имя хоста: server 1
Группа: любая
В поле агент укажем ip адрес нашего сервера, на котором установили агент.
Шаблон нужно выбрать для Linux сервера: Template OS Linux by Zabbix Agent