Система мониторинга серверов Zabbix.

Когда у вас появляется много серверов ,то вам уже не так удобно следить за ними. Встает вопрос о их мониторинге, оповещение о проблемах на сервере. Отказ каких то сервисов, оперативно управление. Zabbix отличное решение этих вопросов.

Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования. Это просто чудовищный комбайн. Поддерживает несколько видов мониторинга:

  • Simple checks — может проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP, без установки какого-либо программного обеспечения на наблюдаемом хосте.
  • Zabbix agent — может быть установлен на UNIX-подобных или Windows-хостах для получения данных о нагрузке процессора, использования сети, дисковом пространстве и так далее.
  • External check — выполнение внешних программ, также поддерживается мониторинг через SNMP.

Мы постараемся подробно рассказать как установить и настроить это чудо. Познакомимся с основными настройками и возможностями Zabbix.

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

Теперь установим сервер Zabbix. У меня проблем с установкой из коробки не было:

apt install zabbix-server-mysql zabbix-frontend-php

Если у вас все таки возникли какие то проблемы, вы можете взять пакет deb из официального репозитория https://repo.zabbix.com/zabbix/4.0/debian/

wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb
dpkg -i zabbix-release_4.0-2+stretch_all.deb
apt update
apt install zabbix-server-mysql zabbix-frontend-php

Для работы сервера нам нужна база данных, приступим к созданию базы и привилегий пользователя. Зайдем в базу данных как root:

mysql -u root -p

Следующий пример создает базу данных «zabbixdb»:

CREATE DATABASE zabbixdb ;

или  CHARACTER SET, COLLATE которые  используется для задания стандартной кодировки таблицы и порядка сортировки.

CREATE DATABASE zabbixdb CHARACTER SET utf8 COLLATE utf8_general_ci;

Для нормальной работы Zabbix нужна кодировка базы данных UTF-8.

Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить:

 SHOW CREATE DATABASE name ;

Теперь зададим привилегии для пользователя zabbix, что бы он мог работать с базой данных:

GRANT ALL  PRIVILEGES ON zabbixdb.* TO zabbix@localhost IDENTIFIED BY '12345';

То есть пользователь  zabbix подключенный локально 
@localhost с паролем 12345 получает все привилегии над всей базой данных(включай таблицы и т.д.) zabbixdb — zabbixdb.*

Теперь мы загрузи все таблицы в нашу базу. Они находятся в папке 
/usr/share/zabbix-server-mysql/ 

zcat /usr/share/zabbix-server-mysql/schema.sql.gz | mysql -u zabbix -p zabbixdb
zcat /usr/share/zabbix-server-mysql/images.sql.gz | mysql -u zabbix -p zabbixdb
zcat /usr/share/zabbix-server-mysql/data.sql.gz | mysql -u zabbix -p zabbixdb

Теперь настроим нашу базу в конфигурационном файле 
 /etc/zabbix/zabbix_server.conf и укажем там данные аутентификации:

DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBpassword=password

Далее, включаем конфигурационный файл zabbix для apache2:

a2enconf zabbix-frontend-php

Теперь нужно перезапустить Zabbix и Apache, чтобы применить изменения:

service apache2 restart
service zabbix-server restart

Заходим в браузере  http://ВашIP/zabbix

У меня не настроена timezona в php, сейчас мы это исправим в php.ini и перезапустим Apache.

date.timezone = Europe/Moscow

Дальше укажите параметры доступа к базе данных, они будут использоваться для работы веб-интерфейса:

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

Файл нужно скачать и сохранить в /etc/zabbix/ вручную, владельца файла надо поменять на www-data

chown www-data /etc/zabbix/zabbix.conf.php

Введите имя пользователя Admin с паролем zabbix для входа под Супер-Администратором Zabbix. Вот мы и справились с самой простой частью, установкой и базовой настройкой сервера Zabbix. Продолжение следует.