Сотрудникам ИТ-отделов любой крупной компании знакомы такие моменты, когда все телефоны просто разрываются. Ведь не работает стратегически важное ПО и бизнес-процесс остановился! Системные администраторы жадно изучают логи и пытаются разобраться в произошедшем. Время идёт, страсти накаляются, репутация падает… Можно ли как-то избежать подобных ситуаций? К сожалению, нет. Но, можно свести к минимуму. В рамках данной статьи рассмотрим ряд инструментов, которые помогают следить за состоянием здоровья всех автоматизированных систем компании.
Устанавливаем Zabbix.
Системе мониторинга Zabbix в самом простом варианте необходим один сервер, который в 99% случаях работает на Linux. Для примера мы возьмём Ubuntu Linux на котором установим Apache, MySQL и PHP. Для этого выполним ряд команд в терминале:
sudo apt-get update
sudo apt-get install apache2 libapache2-mod-php
sudo apt-get install mysql-server
sudo apt-get install php php-mbstring php-gd php-xml php-bcmath php-ldap php-mysql
Подключаем репозиторий Zabbix (пример для Ubuntu 18.04):
sudo dpkg -i zabbix-release_4.0-3+bionic_all.deb
Теперь наша система готова к установке серверной части Zabbix. Запускаем процесс установки:
sudo apt-get update
sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent
После успешного завершения процесса установки нам необходимо создать базу данных для работы:
mysql -u root -p
mysql> CREATE DATABASE zabbixdb character set utf8 collate utf8_bin;
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbix'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
Загрузим схему базы данных во вновь созданную базу:
cd /usr/share/doc/zabbix-server-mysql
zcat create.sql.gz | mysql -u zabbix -p zabbixdb
Заключительным этапом будет редактирование конфигурационного файла /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbixdb
DBUser=zabbix
DBPassword=password
Полностью перезагружаем сервер и пытаемся зайти на него с удалённого компьютера по следующему адресу:
http://host_name/zabbix/ - где host_name – имя или ip-адрес вашего сервера Zabbix. Если всё было сделано правильно, то нас приветливо встретит мастер настройки сервера Zabbix.
После неоднократного нажатия на кнопку Next step мы завершим процесс установки и успешно войдём в систему мониторинга под Администратором.
Данная статья не претендует на роль детального описания процесса установки системы Zabbix. Если возникают вопросы – смело идём в любимый поисковик и находим ответы. Мы же наглядно показали, что развернуть Zabbix это не сложно.
Zabbix умеет отслеживать состояние удалённого компьютера/сервера с помощью агента, так и проверять доступность и реакцию стандартных сервисов, таких как SMTP или HTTP, без установки какого-либо программного обеспечения. Но, полную картину о состоянии мы сможем узнать только при помощи кроссплатформенного Zabbix-агента. На все сервера устанавливать его банально лень, даже несмотря на то, что устанавливается он быстро. Но, вот на стратегически важные хосты устанавливать обязательно. Ведь тогда нам открывается возможность в режиме реального времени выводить информацию о загрузке процессора/памяти/дисков, состоянии всех запущенных процессов и многое другое.
Для установки агента в системе 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-agent
service zabbix-agent start
Для других операционных систем все команды описаны в документации Zabbix на официальном сайте проекта.
Самое вкусное в системах мониторинга это то, что они умеют оповещать вас о проблемах. Если маршрутизатор перестал отвечать, недоступен http-протокол или дисковое пространство почтового севера заполнено на 95%, то вы тут же получите сигнал. Сигнал, который поможет устранить проблему ещё до того, как её обнаружили конечные пользователи. Ситуации, в которых следует бить тревогу определяет системный администратор путям создания триггеров (trigers). Триггеры создаются путём написания интуитивно понятных выражений:
{SRV-FS:vfs.fs.size[C:,pfree].last(0)}<1 – на диске C сервера SRV-FS осталось менее 1% свободного места.
{Srv-GDLite:icmpping.max(#3)}=0 – сервер Srv-GDLite 3 раза подряд не ответил на ping
{FCP:proc.num[chrome.exe, Administrator].last(#1)}=1 – на компьютере FCP запущен 1 экземпляр процесса chrome.exe от имени Administrator
Огромное количество триггеров имеется в системе уже из коробки. Администратору остаётся только выбрать способы оповещения. Какие виды оповещения предлагает Zabbix? Визуально показывает на мониторе, есть возможность прислать письмо на почту, либо подключить внешний скрипт, который звонит в колокол или отправляет SMS. Вариантов много.
После длительных испытаний, наша компания пришла к следующему решению: развернуть сервер Zabbix в облачном ЦОД, которые гарантирует 99% uptime и имеет доступ ко всем серверам компании. Telegram-бот находится в облаке Google, что гарантирует 99,9% uptime и доступ в интернет. Утилита PingTool запущена в головном офисе и способна рассылать письма по 3G-каналу связи крупнейшего сотового оператора страны. Благодаря системе мониторинга мы смогли существенно повысить отказоустойчивость всех критически важных узлов и обеспечить бизнесу высокую эффективность благодаря непрерывной работе оборудования и ПО.