Zabbix可帮助您实时监控从数万台服务器、虚拟机及网络设备采集的数百万指标。Zabbix Operator让用户能够轻松在OpenShift上部署、管理和维护Zabbix环境。通过安装此集成方案,您只需单条命令即可部署Zabbix server/proxies及其他组件。
Zabbix Operator提供以下几种安装选项:
Zabbix server - 一个简单的Zabbix安装方案,包含Zabbix server、Zabbix网页界面和Zabbix Java网关,支持MySQL数据库。该功能不提供MySQL服务,需要外部MySQL数据库。
Zabbix server (完整版) - 包含Zabbix server、Zabbix网页界面、Zabbix Java网关和MySQL服务器实例的Zabbix安装方案。
Zabbix proxy (SQLite3) - 使用Zabbix proxy的极简方式。该功能为Zabbix proxies提供SQLite3支持,并允许指定proxies的数量。
Zabbix proxy (MySQL) - Zabbix proxy的另一种选择方案。此选项支持并提供MySQL数据库,可以使用内置MySQL数据库实例或外部数据库。
Zabbix agent - 可以在每个可用节点上部署Zabbix agent,用于远程节点的稳定性和性能监控。它能实现完全自动化的指标收集!
Zabbix设备 - Zabbix设备是一种非常简单的部署方式
test and check Zabbix features. This option provides all the core components in one solution. It includes Zabbix server, Zabbix Java gateway, Zabbix web interface and MySQL server in deployment. It is very useful for testing Zabbix features!
当前Zabbix Operator基于Zabbix 6.0 LTS version版本,支持OpenShift 4.1、4.2、4.3、4.4、4.5和4.6版本。
通过Red Hat Marketplace安装Zabbix Operator要求OpenShift集群已在Marketplace门户注册,包括在集群中部署PullSecret。未完成此操作将导致从Red Hat registry拉取镜像时出现认证失败。
1. 从Operators子菜单中选择OperatorHub并搜索Zabbix。
选择RedHat Marketplace选项。
2. 选择"Zabbix Operator"并点击Purchase。
OpenShift需在Red Hat Marketplace门户完成注册。
3. 选择最适合的安装选项。
4. 根据需求指定产品配置。
5. 在Red Hat Marketplace中导航至您的软件,并按图示安装Zabbix Operator软件。
6. 安装Operator。将update审批策略设为Automatic,确保始终安装最新version的Zabbix组件。
7. Zabbix Operator现已安装至指定集群。
8. 前往Operators → Installed Operators。
9. 打开"Zabbix Operator"配置页面。
如果在AWS中安装了OpenShift,请确保为工作节点的安全组开放必要的端口。
1. 从Operators子菜单中选择OperatorHub并搜索Zabbix。
2. 选择Zabbix Operator并点击Install。
3. 选择安装选项。
4. 转到Operators → Installed Operators。
5. 打开"Zabbix Operator"配置页面。
部分操作数(安装选项)需要预先创建额外资源。以下章节描述了这些先决条件。所有可能的配置选项在操作数部署期间均可用。例如:Zabbix proxy (MySQL):
YAML部分提供了所有可用选项及其默认值:
该操作符有几个前提条件:
1. 现有的MySQL数据库入口点 - 在运行"Zabbix server"操作符之前 必须创建MySQL数据库/集群. 例如: 带有持久卷的独立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. 使用secret的MySQL凭证 - 必须是包含 mysql_root_password, mysql_zabbix_username和 mysql_zabbix_password数据的secret. 例如:
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视图. 例如:
最后,该操作符将create多个pod. 可以在 Workloads → Pods部分检查它们:
Zabbix web界面的路由位于Networking → Routes下. 该URL提供对Zabbix web界面的访问. 在以下 示例中为http://zabbix-server-zabbix.apps-crc.testing/
:
该操作数有几个前提条件:
1. MySQL卷声明 - 必须是持久卷声明。例如:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: zabbix-database
namespace: zabbix
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 50Gi
2. 使用secret的MySQL凭证 - 必须包含 mysql_root_password、mysql_zabbix_username和 mysql_zabbix_password数据的secret。例如:
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视图。例如:
最终,该操作数将create多个pod。可以在 Workloads → Pods部分检查它们:
Zabbix web界面的路由位于Networking → Routes下。 该URL提供对Zabbix web界面的访问。在以下 示例中为http://zabbix-full-zabbix.apps-crc.testing/
:
"Zabbix proxy (SQLite3)"操作数配置示例:
最终该操作数将create多个pod。您可以在 工作负载→Pods部分查看它们:
以下流程描述如何通过Openshift控制台create新密钥.
1. 打开Workloads → Secrets部分并切换项目至Zabbix Operator项目(默认为"zabbix").
2. 使用From YAML选项创建新密钥.
可以直接在Zabbix Web界面容器中启用HTTPS 这种情况下create使用YAML选项创建以下secret:
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参数的名称file是固定的 请仅使用上述示例中列出的名称!
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连接至数据库"选项值以及"MySQL数据库证书(客户端)"密钥值。