OpenShiftでのインストール

概要

Zabbixは、数万台のサーバー、仮想マシン、ネットワークデバイスから収集された数百万のメトリックをリアルタイムで監視するのに役立ちます。Zabbix Operatorを使用すると、ユーザーはOpenShift上でZabbixデプロイメントを簡単に展開、管理、保守できます。この統合をインストールすると、1つのコマンドでZabbixサーバー/プロキシおよびその他のコンポーネントを展開できるようになります。

サポートされている機能

Zabbix Operatorには、いくつかのインストールオプションが用意されています:

  • Zabbixサーバー - Zabbixサーバー、Zabbix Webインターフェース、およびMySQLデータベースサポート付きのZabbix Javaゲートウェイを含むシンプルなZabbixインストール。この機能ではMySQLサービスは提供されず、外部のMySQLデータベースが必要です。
  • Zabbixサーバー(full) - Zabbixサーバー、Zabbix Webインターフェース、Zabbix Javaゲートウェイ、およびMySQLサーバーインスタンスを含むZabbixインストール。
  • Zabbix プロキシ(SQLite3) - Zabbixプロキシのパワーを得るための非常にシンプルな方法。この機能では、Zabbixプロキシ用のSQLite3サポートが提供され、プロキシの数を指定できます。
  • Zabbixプロキシ(MySQL) - Zabbixプロキシの別のオプション。このオプションでは、MySQLデータベースがサポートされ、提供されます。組み込みのMySQLデータベースインスタンスまたは外部のインスタンスを使用できます。
  • Zabbixエージェント - Zabbixエージェントは、リモートノードの安定性とパフォーマンスを監視するために、使用可能な各ノードに展開できます。これにより、完全な自動化でメトリックを収集できます。
  • Zabbixアプライアンス - Zabbixアプライアンスは、Zabbix の機能をテストおよび確認するための非常に簡単な方法です。このオプションでは、すべてのコアコンポーネントが1つのソリューションで提供されます。展開には、Zabbixサーバー、Zabbix Javaゲートウェイ、Zabbix Webインターフェース、およびMySQLサーバーが含まれます。これはZabbixの機能をテストするのに非常に便利です。

現在、Zabbix Operatorは Zabbix 6.0 LTSバージョンに基づいており、OpenShift 4.1、4.2、4.3、4.4、4.5、および 4.6をサポートしています。

Zabbix Operatorのインストール

RedHat Marketplaceの使用

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"構成ページを開きます。

OperatorHubの使用

AWSにOpenShiftをインストールした場合は、ワーカーノードのセキュリティグループに必要なポートが開いていることを確認してください。

1. OperatorsサブメニューからOperatorHubを選択し、Zabbixを検索します。

2. Zabbix Operatorを選択し、インストールをクリックします。

3. インストールオプションを選択します。

4. Operators → Installed Operatorsに移動します。

5. "Zabbix Operator"構成ページを開きます。

設定

一部のオペランド(インストールオプション)では、事前に追加のリソースを作成する必要があります。次のセクションではこれらの前提条件について説明します。オペランドの展開中は、すべての可能な設定オプションが利用できます。たとえば、Zabbix プロキシ (MySQL)は次のようになります。

YAMLセクションには、デフォルト値を持つすべての使用可能なオプションが提供されています。

Zabbixサーバー

このオペランドにはいくつかの前提条件があります:

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を使用してエンコードされます。例:

# echo -n "zabbix" | base64
       emFiYml4Cg

"Zabbixサーバー"オペランド設定の例:

すべての設定オプションはフォームビューを使用して使用できますが、YAMLビューも使用できます。例:

最後に、オペランドは複数のポッドを作成します。これらは、ワークロード → ポッドセクションで調べることができます:

Zabbix Webインターフェースのルートは、ネットワーク → ルートの下にあります。 URLは、Zabbix Webインターフェースへのアクセスを提供します。次の例では、http://zabbix-server-zabbix.apps-crc.testing/です:

Zabbix full

このオペランドにはいくつかの前提条件があります:

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を使用してエンコードされています。例:

# echo -n "zabbix" | base64
       emFiYml4Cg

"Zabbix Full"オペランド構成の例:

すべての構成オプションはフォームビューを使用して使用できますが、YAMLビューも使用することもできます。例:

最後に、オペランドは複数のポッドを作成します。これらはWorkloads → Podsセクションで確認できます。

Zabbix WebインターフェースへのルートはNetworking → Routesにあります。URLはZabbix Webインターフェースへのアクセスを提供します。以下の例ではhttp://zabbix-full-zabbix.apps-crc.testing/です。

Zabbixプロキシ(SQLite3)

"Zabbixプロキシ(SQLite3)"オペランド構成の例:

最後に、オペランドは複数のポッドを作成します。これらは、Workloads → Podsセクションで確認できます:

追加情報

新しいシークレットの作成

次の手順では、Openshiftコンソールを使用して新しいシークレットを作成する方法について説明します。

1. Workloads → Secretsセクションを開き、プロジェクトをZabbix Operatorプロジェクト(デフォルトでは"zabbix")に切り替えます。

2. From YAMLオプションを使用して新しいシークレットを作成します。

HTTPS用のSSL証明書

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データベース証明書ベースの暗号化

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)"シークレット値を選択します。

既知の問題

  1. Zabbixエージェントは適切なノード名を判別できません。常に動的なホスト名を持ちます。