
Imaxe.cloud не имеет никакой связи или соглашения с Zabbix LLC. Прочитайте раздел Отношения с Zabbix LLC.
Описание #
Zabbix — корпоративное решение с открытым кодом для распределённого мониторинга, позволяющее следить за всеми параметрами сети серверов, виртуальных машин, приложений и многого другого.
Наш образ Zabbix — лучший способ начать работать с Zabbix в AWS по принципу click & play, с дополнительными возможностями поверх оригинального продукта и с лучшей поддержкой.
Возможности #
Общие
Основные особенности нашего образа Zabbix:
- Установлен на Ubuntu, всегда в последней возможной стабильной версии.
- Установлена последняя стабильная версия сервера Zabbix.
- Установлен и преднастроен последний стабильный веб-интерфейс Zabbix.
- Оптимизирован с самыми стабильными версиями nginx, PHP, MariaDB server и Zabbix.
- Все языки веб-интерфейса установлены и доступны.
Особые
Наши образы дают дополнительные возможности, чтобы быстро и удобно использовать всю мощь облака:
- Отдельная настройка для отправки уведомлений через AWS SNS.
- Отдельная настройка для работы с группами автомасштабирования.
- Стеки CloudFormation, создающие все связанные ресурсы (SNS, SQS, IAM и т. д.).
Доступные версии #
Версии Zabbix, которые мы предлагаем, и их основные характеристики:
Предыдущие версии AMI Zabbix были заблокированы компанией Zabbix LLC, которая, судя по всему, не желает никакой конкуренции. Продукт Imaxe.cloud предлагает уникальные возможности, которых нет у самого Zabbix, поэтому мы считаем это ошибкой и работаем над её устранением.
| AMI | Zabbix | Поддержка Zabbix | Поддержка Imaxe | SNS | Автомасштаб. | Ubuntu | PHP | MariaDB | Marketplace |
|---|---|---|---|---|---|---|---|---|---|
| Zabbix 7.0 v1.1 | 7.0 | ✓ | ✓ | ✓ | ✓ | 24.04 | 8.3 | 10.11 | Открыть → |
| Zabbix 6.4 v2.0 | 6.4 | ✗ | ✓ | ✓ | ✓ | 22.04 | 8.1 | 10.11 | Недоступно |
| Zabbix 6.0 v1.1 | 6.0 | ✓ | ✓ | ✓ | ✓ | 20.04 | 7.4 | 10.11 | Недоступно |
| Zabbix 4.4 v1.2 | 4.4 | ✗ | ✓ | ✓ | ✗ | 18.04 | 7.2 | 10.5 | Недоступно |
| Zabbix 4.2 v8.0 | 4.2 | ✗ | ✓ | ✓ | ✗ | 18.04 | 7.0 | 10.5 | Недоступно |
Жизненный цикл #
У Zabbix довольно строгая политика выпусков: каждые несколько месяцев поддержка текущей стабильной версии прекращается, и, чтобы оставаться на поддержке, приходится переходить на следующий мажорный релиз — со всеми вытекающими.
В Imaxe мы понимаем, что выдерживать такой строгий цикл бывает очень трудно, поэтому разработали для своих образов политику жизненного цикла, которая по возможности остаётся совместимой с циклом Zabbix и при этом даёт нашим пользователям лучшую доступную поддержку.
Версии Zabbix
Сейчас Zabbix предлагает две разные версии своего ПО:
- Версия Standard: включает последние изменения и возможности, но без поддержки LTS.
- Версия LTS: включает последние изменения и возможности на момент выхода и имеет поддержку LTS.
Поддержка версий Standard без LTS
Чтобы новые клиенты могли оценить преимущества, которые вскоре появятся в их LTS-версиях, мы всегда держим рабочим образ последней версии Standard со всеми дополнительными возможностями.
Номер версии образа растёт по мере выхода новых релизов, а номер версии Zabbix меняется, когда растёт и он.
Поддержка версий LTS
Пока это возможно, мы поддерживаем образы, собранные из LTS-версий, обновляя каждые 3 месяца и операционную систему, и дополнительные возможности.
Когда поддерживать образ активным станет невозможно по техническим причинам или из соображений безопасности, он будет отключён, а все пользователи получат уведомление от AWS с указанием наиболее подходящей для них версии.
Кроме того, мы помогаем с миграцией между версиями всегда, когда это возможно.
Установка #
Установка выполняется обычным порядком создания инстанса EC2. Рекомендуемый размер — c5.large.
Группа безопасности обычно включает следующие правила:
| Тип | Протокол | Диапазон портов | Источник |
|---|---|---|---|
| (*) SSH | TCP | 22 | 0.0.0.0/0 |
| (*) HTTP | HTTP | 80 | 0.0.0.0/0 |
| (*) Своё правило TCP | TCP | 10050–10052 | 0.0.0.0/0 |
| HTTPS | HTTPS | 443 | 0.0.0.0/0 |
Правила, отмеченные (*), обязательны — для доступа к веб-интерфейсу или для нормальной работы сервера. Хотя в примере указано 0.0.0.0/0, мы рекомендуем ограничить доступ своими сетями или bastion-сервером.
После запуска инстанса подключиться можно так:
- SSH: с помощью
.pem, выбранного при запуске инстанса, пользовательubuntu. - HTTP: по адресу
http://zabbix.instance.ip/, пользовательAdmin, пароль — ID только что созданного инстанса.
Настройка #
Описанные здесь шаги выполнены под пользователем Admin, поскольку это пользователь по умолчанию.
При первом входе в Zabbix есть несколько задач, чтобы настроить работу под себя и начать получать уведомления. Нажмите User settings в левом меню, затем Profile.
Добавить способ доставки для пользователя
Прежде чем получать уведомления, добавьте пользователю адрес электронной почты (или другой удобный способ). На странице профиля есть вкладка Media; на ней нажмите ссылку Add, откроется окно настройки. Затем не забудьте нажать Update, чтобы изменения сохранились.
Сменить пароль пользователя Admin
По умолчанию образ Zabbix использует ID инстанса в качестве пароля. Это надёжно защищает доступ, но вы, вероятно, захотите пароль, который проще запомнить или который соответствует вашей политике безопасности.
На странице Profile, на вкладке User, пароль Admin меняется кнопкой Change password: введите новый пароль дважды и нажмите Update.
Сменить язык
На странице профиля, на вкладке User, язык интерфейса выбирается в списке Language. Изменения вступают в силу после выбора языка, сохранения кнопкой Update и повторного входа.
Поддержка автомасштабирования # эксперт
Как автомасштабирование AWS работает с Zabbix?
Чтобы обрабатывать автомасштабирование из Zabbix, нужно учесть три момента:
- Добавить новый инстанс в Zabbix, когда он появляется. Это делается автоматической регистрацией активных агентов Zabbix (6.4, 6.0, 4.0). Так при появлении нового инстанса Zabbix автоматически добавляет его как новый узел.
- Сохранить ID инстанса в инвентаре Zabbix. Когда инстанс исчезает (scale in), мы получаем сообщение с его ID, поэтому он должен быть в инвентаре узла, чтобы найти и удалить узел.
- Получать сообщения о масштабировании от AWS. При событии масштабирования AWS публикует сообщение SNS в заданный вами топик. Подключив этот топик к очереди SQS, мы можем читать сообщения из Zabbix и удалять инстансы, покидающие группы масштабирования.

Настроить клиент
Для подготовки клиентов к автомасштабированию в Zabbix нужны два шага: настроить агент Zabbix и добавить файл с пользовательским параметром для элемента instance_id.
Настройка агента Zabbix
Помимо любых других нужных вам изменений, в локальном файле конфигурации агента Zabbix (обычно /etc/zabbix/zabbix_agentd.conf) нужно поменять шесть пунктов:
- Закомментировать параметр
Server. - Добавить
ServerActive=YOUR__ZABBIX__IP__ADDRESS, чтобы задать активный сервер. - Закомментировать параметр
Hostname. - Установить параметр
StartAgentsв0. - Установить параметр
HostnameItemвsystem.hostname. - Установить параметр
HostMetadataItemвsystem.uname.
С такой конфигурацией клиент Zabbix работает в активном режиме (сам отправляет данные серверу и не получает от него проверок). Кроме того, Zabbix использует имя машины как имя узла, поэтому его не нужно менять при каждом запуске нового сервера. Наконец, Zabbix отправляет вывод uname как метаданные: инстансы AWS используют особое ядро, поэтому в нём встречается значение aws, по которому можно регистрировать сервер.
Параметр instance_id
По умолчанию новый сервер из группы автомасштабирования привязывается в Zabbix к специальному шаблону AWS EC2 Template, где есть элемент instance_id, связанный с полем alias инвентаря. Чтобы его наполнять, добавьте в клиент Zabbix пользовательский параметр, создав файл:
UserParameter=aws.ec2.instance_id,curl -s http://169.254.169.254/latest/meta-data/instance-idНастроить сервер
После настройки клиентов следующий шаг — настроить сервер на удаление исчезнувших инстансов. Самый быстрый и простой путь состоит из двух шагов: отправлять сообщения о масштабировании в очередь SQS и настроить сервер на её чтение.
Отправка сообщений о масштабировании в очередь SQS
Нам нужно, чтобы уведомления сервиса автомасштабирования сохранялись в очереди SQS — ради надёжности и масштаба. Поскольку автомасштабирование AWS отправляет уведомления в топик SNS, требуется:
- Создать топик SNS.
- Создать очередь SQS.
- Настроить SNS на доставку сообщений в SQS.
- Создать пользователя IAM, который может читать сообщения.
Так как такая настройка непроста, можно воспользоваться нашим стеком CloudFormation, чтобы создать все элементы в нужном регионе. После развёртывания на вкладке Outputs будут четыре значения, которые стоит записать:
SNSTopicARN: ARN созданного топика SNS.SQSQueueURL: URL очереди SQS.SQSReadIAMUserAccessKeyиSQSReadIAMUserSecretKey: ключ и секрет пользователя IAM.
Эти данные нужны для настройки. Отредактируйте файл /etc/zabbix/zabbix_ami.yml в блоке вида:
sqs:
delay_seconds: 60
default_region: us-east-1
queues:
- url:
access_key_id:
secret_access_key:
region:Для каждой очереди SQS с уведомлениями о масштабировании добавьте элемент массива по образцу существующего, подставив значения из CloudFormation. Подробнее об этом файле — в разделе важные файлы.
Уведомления SNS #
Эта установка Zabbix уже готова к отправке через AWS SNS. Такая конфигурация избавляет от проблем с отправкой почты из AWS и даёт продвинутую и безопасную систему уведомлений.
Настройка отправки оповещений через SNS
Можно настроить до 6 разных топиков SNS, чтобы различать сообщения по важности:
| Уровень важности Zabbix | Ключ в zabbix_ami.yml |
|---|---|
| Not classified | not_classified |
| Information | information |
| Warning | warning |
| Average | average |
| High | high |
| Disaster | disaster |
Чтобы Zabbix отправлял уведомления, нужно создать эти топики и пользователя IAM, который сможет подключаться и публиковать сообщения.
Создание топиков SNS и пользователя IAM
Это гораздо проще с нашим стеком CloudFormation для топиков SNS и пользователя IAM, который создаёт всё сразу. После развёртывания на вкладке Outputs будут значения, которые нужно записать:
SNSNotClassified,SNSInformation,SNSWarning,SNSAverage,SNSHigh,SNSDisaster: топик SNS для каждого уровня важности.ZabbixSendingUserAccessKeyIdиZabbixSendingUserSecretAccessKey: ключ и секрет пользователя IAM.
Одно или несколько из этих значений могут отсутствовать — в зависимости от параметров, выбранных при развёртывании стека.
Настройка /etc/zabbix/zabbix_ami.yml
В файле /etc/zabbix/zabbix_ami.yml есть отдельный раздел для параметров SNS:
sns:
aws:
access_key_id:
secret_access_key:
region:
topics:
not_classified: arn:aws:sns:eu-west-1:000000000000:sample-sns
information: arn:aws:sns:eu-west-1:000000000000:sample-sns
warning: arn:aws:sns:eu-west-1:000000000000:sample-sns
average: arn:aws:sns:eu-west-1:000000000000:sample-sns
high: arn:aws:sns:eu-west-1:000000000000:sample-sns
disaster: arn:aws:sns:eu-west-1:000000000000:sample-snsУкажите нужные топики SNS (один и тот же топик при желании можно использовать несколько раз), а также ключ, секрет и регион. Вот и всё!
Настройка пользователя Zabbix
Последний шаг — указать Zabbix отправлять уведомления через SNS:
- Войти в интерфейс Zabbix под своим пользователем.
- Перейти в User settings → Profile.
- Открыть вкладку Media.
- Добавить новый способ доставки типа AWS SNS, отметить его Enabled и заполнить остальные поля по желанию (поле Send to сейчас не используется).
- Нажать Add, чтобы добавить способ доставки, затем Update, чтобы сохранить изменения.
CloudFormation #
Поскольку создавать все нужные ресурсы AWS хлопотно, здесь можно скачать разные стеки AWS CloudFormation, которые упростят работу.
SNS Topic + SQS Queue + IAM User
Создаёт топик SNS для привязки групп масштабирования, очередь SQS, получающую его уведомления, и пользователя IAM, который может читать и удалять сообщения из очереди.
SNS Topics + IAM User
Создаёт до 5 топиков SNS, в которые Zabbix публикует уведомления, и пользователя IAM, который может их публиковать.
Важные файлы # эксперт
В образе Zabbix есть несколько особых файлов, о которых стоит знать.
/etc/zabbix/zabbix_ami.yml
Это самый важный файл: он управляет настройкой особых возможностей — проверок масштабирования и уведомлений SNS. Пример (с вымышленными данными):
zabbix:
api:
user: autoscaler_api_user
password: i-073672daf01037aea94
sns:
aws:
access_key_id: AKK4L6A3OXZZ5HE2POQRU7V
secret_access_key: cICycAg26hSDpsJwbhZjbaaYlt4Tz3n1xqE7Oxp6X2Hf
region: us-east-1
topics:
not_classified: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
information: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
warning: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
average: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
high: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
disaster: arn:aws:sns:us-east-1:000000000:Zabbix-General-SNS
sqs:
delay_seconds: 60
default_region: us-east-1
queues:
- url: https://sqs.us-east-1.amazonaws.com/000000000/zabbix-pro-sqs-queue
access_key_id: AKIA3OXZZ5HEWUR5A16CNWH
secret_access_key: 8ttYO3Ba9K6p0C+aj3fH5cDt2eRLHmlkHbMtlrpv18S7KRbC
region: us-east-1Сейчас в файле три раздела:
zabbix: поскольку для удаления устаревших узлов нужно обращаться к серверу Zabbix, требуется доступ к API. Для этого создаётся отдельный пользователь, его данные указываются здесь.sns: конфигурация, необходимая для отправки тревог через SNS. Здесь задаются данные пользователя IAM и используемые топики SNS.sqs: конфигурация обработки сообщений о масштабировании в AWS. Здесь задаётся, как часто опрашивать очередь (delay_seconds), и список очередей.
Он содержит учётные данные IAM в открытом виде. Ограничьте права на файл и регулярно меняйте ключи.
/var/log/zabbix-sqs-reader/zabbix-sqs-reader.log
В этом файле записываются события автомасштабирования, прочитанные из SQS.
До настройки вы увидите сообщение Ops! It looks like the file /etc/zabbix/zabbix_ami.yml hasn't been configured yet. We better sleep for 5 minutes. — это нормально, оно исчезнет после настройки zabbix_ami.yml.
Обновления образа # эксперт
Прочитайте весь раздел, прежде чем что-то делать, и подготовьте резервную копию всех данных.
Поскольку Zabbix выпускает новые версии с новыми возможностями, лучше время от времени обновлять наш образ. К сожалению, эти же новшества несут изменения в базе данных и внутри системы, которые могут осложнить обновление существующей установки.
Наш образ Zabbix — лучший способ избежать этих проблем: мы предлагаем путь перехода между мажорными версиями, который быстрее, проще и безопаснее обычного.
Обновление вкратце
Процесс обновления нашего образа довольно прост:
- Сделать дамп текущей базы данных.
- Запустить новый образ с последней стабильной версией.
- Загрузить дамп базы на новый инстанс.
- Запустить наш скрипт миграции.
Так одновременно работают старая и новая версии, и можно провести все необходимые проверки, прежде чем переносить EIP этого инстанса или постепенно переводить клиентов.
В этом руководстве источник — ваш текущий сервер Zabbix, а приёмник — новый сервер.
Процесс обновления
Шаг 1: резервная копия сервера-источника
Первый шаг — сделать образ сервера-источника, чтобы исключить случайную потерю данных. Можно воспользоваться руководством AWS по созданию AMI.
Шаг 2: дамп базы и версия Zabbix
Подключаемся к инстансу по SSH и становимся root:
sudo /bin/su -Затем выгружаем базу данных в файл:
mysqldump zabbix > zabbix_origin_database.sqlНаконец, скачиваем полученный файл на свою машину, чтобы потом загрузить на новый сервер. Также запишите текущую версию Zabbix: её видно в веб-интерфейсе, это число вида 4.0, 4.2, 4.4 или 5.4.
Шаг 3: запустить новый инстанс Zabbix
Следующий шаг — создать новый инстанс Zabbix из последней стабильной версии образа, которую можно найти в нашем профиле продавца на AWS Marketplace. Минимально требуется версия 6.0 нашего образа Zabbix.
Этот новый инстанс станет приёмником, куда мы перенесём данные; последняя версия там уже установлена и обновлена. После запуска скопируйте на него дамп базы с сервера-источника.
Шаг 4: обновить базу данных
Чтобы залить текущую базу, обновить её до новой версии и добавить нужные настройки, используем скрипт /opt/tools/bin/zabbix-ami-upgrade.sh. Запускать его нужно от пользователя ubuntu, указав исходную версию Zabbix и файл дампа. Например, при переходе с Zabbix 4.0:
/opt/tools/bin/zabbix-ami-upgrade.sh 4.0 zabbix_origin_database.sqlПроцесс сообщает о каждом выполненном шаге, а по завершении можно продолжать работу с новым сервером Zabbix.
Шаг 5: зайти в веб-интерфейс
После миграции можно открыть веб-интерфейс и оценить общее состояние сервера. Важно: нужно использовать те же учётные записи и пароли, что были на прежнем сервере.
Шаг 6: перенести особые настройки и перенастроить клиентов
Когда база работает, учтите и другие настройки, которые могли быть на сервере, например:
- Скрипты мониторинга.
- Дополнительные системные пакеты.
- Установленные сертификаты SSL.
Также стоит перенести EIP, настроенный для этого инстанса, чтобы клиентов не пришлось менять.
Если EIP не используется, самое время начать: иначе придётся менять IP нового сервера на всех клиентах.
Поддержка #
Использование этого образа Zabbix включает поддержку по:
- Установке образа.
- Первоначальной настройке.
- Дополнительным настройкам, связанным с образом (например, использованию Let’s Encrypt).
- Настройке Zabbix, связанной с образом.
- Отправке уведомлений Zabbix через SNS.
- Поддержке автомасштабирования в Zabbix.
- Нашим стекам CloudFormation.
- Общей поддержке Zabbix.
- Обновлениям, апгрейдам и миграциям образа.
История изменений #
История образа. Даты соответствуют публикации каждой версии в AWS Marketplace.
Zabbix 7.0 · версия 1.1
Выпущена версия 1.1 нашего образа Zabbix 7.0 с установленным и настроенным Zabbix, поддержкой автомасштабирования и уведомлениями SNS.
Zabbix 6.4 · версия 1.0
Выпущена версия 1.0 нашего образа Zabbix 6.4 с установленным и настроенным Zabbix, поддержкой автомасштабирования и уведомлениями SNS.
Zabbix 6.0 · версия 1.0
Выпущена версия 1.0 нашего образа Zabbix 6.0 LTS с установленным и настроенным Zabbix, поддержкой автомасштабирования и уведомлениями SNS.
Zabbix 5.4 · версия 1.0
Выпущена версия 1.0 нашего образа Zabbix 5.4 с установленным и настроенным Zabbix, поддержкой автомасштабирования и уведомлениями SNS.
Отношения с Zabbix LLC #
У Imaxe.cloud нет и никогда не было никаких соглашений с Zabbix LLC — компанией, которая поддерживает Zabbix.
Информация и поддержка здесь предоставляются неофициально, вокруг свободного программного продукта Zabbix и дополнительных возможностей, которые мы строим поверх него.
Нужна помощь с этим образом?
Вам отвечает та же команда, которая собирает образ, — настоящие инженеры, без ботов и первой линии.