Zabbix помогает вам осуществлять мониторинг в реальном времени миллионов метрик, собираемых с десятков тысяч серверов, виртуальных машин и сетевых устройств. Zabbix Operator позволяет пользователям легко развёртывать, управлять и поддерживать развёртывания Zabbix на OpenShift. Установив эту интеграцию, вы сможете развёртывать сервер/прокси Zabbix и другие компоненты с помощью одной команды.
Zabbix Operator поставляется с несколькими возможными вариантами установки:
В настоящее время Zabbix Operator основан на версии Zabbix 6.0 LTS и поддерживает OpenShift 4.1, 4.2, 4.3, 4.4, 4.5 и 4.6.
Для установки Zabbix Operator с помощью Red Hat Marketplace требуется, чтобы кластер OpenShift был зарегистрирован на портале Marketplace, включая развёртывание PullSecret в вашем кластере. Невыполнение этого требования приведёт к сбою аутентификации при извлечении образа в реестре Red Hat.
1. Выберите OperatorHub из подменю Operators и выполните поиск Zabbix.
Выберите опцию RedHat Marketplace.
2. Выберите «Zabbix Operator» и нажмите Купить (Purchase).
Openshift необходимо зарегистрировать на портале Red Hat Marketplace.
3. Выберите наиболее подходящий вариант установки.
4. Укажите конфигурацию продукта в соответствии с вашими потребностями.
5. Перейдите к своему программному обеспечению в Red Hat Marketplace и установите программное обеспечение Zabbix Operator, как указано на рисунке.
6. Установите Operator. Установите стратегию утверждения обновлений в значение Automatic, чтобы гарантировать, что у вас всегда установлена последняя версия компонентов Zabbix.
7. Zabbix Operator теперь установлен в указанном вами кластере.
8. Перейдите в раздел Operators → Installed Operators.
9. Откройте страницу настроек «Zabbix Operator».
Если вы установили OpenShift в AWS, убедитесь, что необходимые порты открыты для группы безопасности рабочих узлов.
1. Выберите OperatorHub в подменю Operators и найдите Zabbix.
2. Выберите Zabbix Operator и нажмите Install.
3. Выберите параметры установки.
4. Перейдите в Operators → Installed Operators.
5. Откройте страницу настроек «Zabbix Operator».
Некоторые операнды (параметры установки) требуют предварительного создания дополнительных ресурсов. В следующем разделе описываются эти предварительные требования. Все возможные параметры конфигурации доступны во время развёртывания операнда. Например, Zabbix proxy (MySQL):
Раздел YAML содержит все доступные параметры со значениями по умолчанию:
Для этого операнда есть несколько предварительных требований:
1. Существующая точка входа в базу данных MySQL — база данных/кластер MySQL должны быть созданы до запуска операнда «Zabbix server». Например, автономный сервер MySQL с постоянным томом:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pv-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:8.0
name: mysql
args:
- mysqld
- '--character-set-server=utf8'
- '--collation-server=utf8_bin'
- '--default-authentication-plugin=mysql_native_password'
env:
# Use secret in real usage
- name: MYSQL_ROOT_PASSWORD
value: Welcome1!
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
---
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
clusterIP: None
Обратите внимание, что Zabbix не поддерживает набор символов utf8_mb4 и плагин аутентификации по умолчанию caching_sha2_password.
2. Учётные данные MySQL с использованием секрета — должен быть секрет с данными mysql_root_password, mysql_zabbix_username иmysql_zabbix_password. Например:
kind: Secret
apiVersion: v1
metadata:
name: zabbix-server-secrets
data:
mysql_root_password: V2VsY29tZTEh
mysql_zabbix_password: emFiYml4X3N1cGVyIQ==
mysql_zabbix_username: emFiYml4
type: Opaque
где все поля закодированы с использованием base64. Например:
Пример настроек операнда «Zabbix Server»:
Все параметры настроек доступны с использованием представления в виде формы, но также можно использовать представление в виде YAML. Например:
Наконец, операнд создаст несколько подов. Их можно проверить в разделе Workloads → Pods:
Маршрут для веб-интерфейса Zabbix находится в разделе Networking → Routes. URL-адрес обеспечивает доступ к веб-интерфейсу Zabbix. В следующем примере это http://zabbix-server-zabbix.apps-crc.testing/
:
Этот операнд имеет несколько предварительных требований:
1. MySQL volume claim — должен быть persistent volume claim. Например:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zabbix-database
namespace: zabbix
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 50Gi
2. Учётные данные MySQL — должен быть секрет с данными mysql_root_password, mysql_zabbix_username и mysql_zabbix_password data. Например:
kind: Secret
apiVersion: v1
metadata:
name: zabbix-full-secrets
data:
mysql_root_password: V2VsY29tZTEh
mysql_zabbix_password: emFiYml4X3N1cGVyIQ==
mysql_zabbix_username: emFiYml4
type: Opaque
где все поля закодированы с использованием base64. Например:
Пример настроек операнда «Zabbix Full»:
Все параметры настроек доступны с использованием представления в виде формы, но также можно использовать представление в виде YAML. Например:
Наконец, операнд создаст несколько подов. Их можно проверить в разделе Workloads → Pods:
Маршрут для веб-интерфейса Zabbix находится в разделе Networking → Routes. URL-адрес обеспечивает доступ к веб-интерфейсу Zabbix. В следующем примере это http://zabbix-full-zabbix.apps-crc.testing/
:
Пример настроек операнда «Zabbix proxy (SQLite3)»:
Наконец, операнд создаст несколько подов. Их можно проверить в разделе Workloads → Pods section:
Следующая процедура описывает, как создать новый секрет с помощьюOpenshift Console.
1. Откройте раздел Workloads → Secrets и переключите проект на проект Zabbix Operator (по умолчанию «zabbix»).
2. Создайте новый секрет с помощью опции From YAML.
Можно включить HTTPS непосредственно в подах веб-интерфейса Zabbix. В этом случае создайте следующий секрет с помощью параметра YAML:
kind: Secret
apiVersion: v1
metadata:
name: zabbix-web-sslsecret
data:
ssl.crt: >-
< ssl.crt data>
ssl.key: >-
< ssl.key data >
dhparam.pem: >-
< dhparam.pem data >
Имена сертификатов и файла параметров DH являются статическими. Пожалуйста, используйте только те, которые указаны в примере выше!
На стороне базы данных MySQL:
apiVersion: v1
data:
root-ca.pem: >-
< root-ca.pem data>
server-cert.pem: >-
< server-cert.pem data>
server-key.pem: >-
< server-key.pem data>
kind: Secret
metadata:
name: zabbix-db-server-tls-secret
type: Opaque
На стороне компонентов Zabbix:
apiVersion: v1
data:
client-cert.pem: >-
< client-cert.pem data>
client-key.pem: >-
< client-key.pem data>
root-ca.pem: >-
< root-ca.pem data>
kind: Secret
metadata:
name: zabbix-db-client-tls-secret
type: Opaque
Сертификаты должны включать "-----BEGIN RSA PRIVATE KEY-----"
и "-----END RSA PRIVATE KEY-----"
. Например:
Затем, во время развёртывания, в разделе компонента Zabbix и MySQL сервере (если используется встроенный сервер) выберите правильное значение параметра «TLS-подключение к базе данных (TLS connection to database)» и значение секрета «MySQL database certificates (client)».