Zabbixは、数万台のサーバー、仮想マシン、ネットワークデバイスから収集された数百万のメトリックをリアルタイムで監視するのに役立ちます。Zabbix Operatorを使用すると、ユーザーはOpenShift上でZabbixデプロイメントを簡単に展開、管理、保守できます。この統合をインストールすると、1つのコマンドでZabbixサーバー/プロキシおよびその他のコンポーネントを展開できるようになります。
Zabbix Operatorには、いくつかのインストールオプションが用意されています:
現在、Zabbix Operatorは Zabbix 6.0 LTSバージョンに基づいており、OpenShift 4.1、4.2、4.3、4.4、4.5、および 4.6をサポートしています。
Red Hat Marketplaceを使用してZabbix Operatorをインストールするには、クラスターでのPullSecretのロールアウトを含め、OpenShiftクラスターをMarketplaceポータルに登録する必要があります。これを行わないと、Red Hatレジストリでイメージプル認証が失敗します。
1. OperatorsサブメニューからOperatorHubを選択し、Zabbixを検索します。
RedHat Marketplaceオプションを選択します。
2. "Zabbix Operator"を選択し、購入をクリックします。
OpenshiftをRed Hat Marketplaceポータルに登録する必要があります。
3. 最も適切なインストールオプションを選択します。
4. ニーズに合わせて製品構成を指定します。
5. Red Hat Marketplace内のソフトウェアに移動し、イメージで指定されているようにZabbix Operatorソフトウェアをインストールします。
6. Operatorをインストールします。更新承認戦略を自動に設定して、常に最新バージョンのZabbixコンポーネントがインストールされるようにします。
7. Zabbix Operatorが指定したクラスターにインストールされました。
8. Operators → Installed Operatorsに移動します。
9. "Zabbix Operator"構成ページを開きます。
AWSにOpenShiftをインストールした場合は、ワーカーノードのセキュリティグループに必要なポートが開いていることを確認してください。
1. OperatorsサブメニューからOperatorHubを選択し、Zabbixを検索します。
2. Zabbix Operatorを選択し、インストールをクリックします。
3. インストールオプションを選択します。
4. Operators → Installed Operatorsに移動します。
5. "Zabbix Operator"構成ページを開きます。
一部のオペランド(インストールオプション)では、事前に追加のリソースを作成する必要があります。次のセクションではこれらの前提条件について説明します。オペランドの展開中は、すべての可能な設定オプションが利用できます。たとえば、Zabbix プロキシ (MySQL)は次のようになります。
YAMLセクションには、デフォルト値を持つすべての使用可能なオプションが提供されています。
このオペランドにはいくつかの前提条件があります:
1. "Zabbixサーバー"オペランドを実行する前に、既存のMySQLデータベースエントリポイント(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:
# 実際はシークレットを使用
- 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サーバー"オペランド設定の例:
すべての設定オプションはフォームビューを使用して使用できますが、YAMLビューも使用できます。例:
最後に、オペランドは複数のポッドを作成します。これらは、ワークロード → ポッドセクションで調べることができます:
Zabbix Webインターフェースのルートは、ネットワーク → ルートの下にあります。 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. MySQLの資格情報をシークレットで使用 - mysql_root_password、mysql_zabbix_username、および mysql_zabbix_passwordデータを含むシークレットである必要があります。例:
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 WebインターフェースへのルートはNetworking → Routesにあります。URLはZabbix Webインターフェースへのアクセスを提供します。以下の例ではhttp://zabbix-full-zabbix.apps-crc.testing/
です。
"Zabbixプロキシ(SQLite3)"オペランド構成の例:
最後に、オペランドは複数のポッドを作成します。これらは、Workloads → Podsセクションで確認できます:
次の手順では、Openshiftコンソールを使用して新しいシークレットを作成する方法について説明します。
1. Workloads → Secretsセクションを開き、プロジェクトをZabbix Operatorプロジェクト(デフォルトでは"zabbix")に切り替えます。
2. From YAMLオプションを使用して新しいシークレットを作成します。
Zabbix WebインターフェースポッドでHTTPSを直接有効にすることができます。この場合、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 connection to database"オプション値と"MySQL database certificates (client)"シークレット値を選択します。