You are viewing documentation for the development version, it may be incomplete.
Join our translation project and help translate Zabbix documentation into your native language.

4 Zabbixエージェント2でMySQLを監視する

はじめに

このページでは、MySQLサーバーの基本的な監視を開始するために必要な手順を説明します。

MySQLサーバーを監視するには、Zabbixエージェント、Zabbixエージェント2、またはOpen Database Connectivity(ODBC)標準など、いくつかのアプローチがあります。 このガイドの主な焦点は、Zabbixエージェント2を使用したMySQLサーバーの監視にあります。これは、さまざまなセットアップでシームレスに構成できるため、推奨されるアプローチです。 ただし、このページでは他のアプローチについても説明しているので、ご自身の要件に最適なものを自由に選択してください。

このガイドの対象者

このガイドはZabbixの新規ユーザー向けに作成されており、MySQLサーバーの基本的な監視を有効にするために必要な最小限の手順が含まれています。 高度なカスタマイズやより詳細な設定が必要な場合は、Zabbixマニュアルの設定セクションを参照してください。

前提条件

このガイドを進める前に、ダウンロードとインストールの手順に従って、Zabbixサーバー、Zabbixフロントエンド、Zabbixエージェント2をインストールする必要があります。

セットアップによっては、このガイドの一部の手順が若干異なる場合があります。このガイドは以下のセットアップを前提としています。

  • Zabbixバージョン: Zabbix 7.2 PRE-RELEASE(パッケージからインストール)
  • OSディストリビューション: Ubuntu
  • OSバージョン: 22.04 (Jammy)
  • Zabbixコンポーネント: サーバー、フロントエンド、エージェント2
  • データベース: MySQL
  • Webサーバー: Apache

MySQLユーザーの作成

MySQLサーバーを監視するには、ZabbixがMySQLサーバーおよびそのプロセスにアクセスできる必要があります。 MySQLのインストール時にZabbixのインストール時に作成された「zabbix」ユーザーは、必要なレベルのアクセス権をすでに持っていますが、 このユーザーは単純な監視には不要な権限(データベースのDROP、テーブルからのDELETEなど)も持っています。 したがって、MySQLサーバーの監視のみを目的としたMySQLユーザーを作成する必要があります。

1. MySQLクライアントに接続し、「zbx_monitor」ユーザーを作成します(「zbx_monitor」ユーザーの<password>は任意のパスワードに置き換えてください)。 また、GRANTで必要な権限を付与します。

mysql -u root -p
       # パスワードを入力:
       
       mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
       mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
       mysql> quit;

ユーザーが作成できたら、次のステップに進みます。

Zabbixフロントエンドの設定

1. Zabbixフロントエンドにログインします。

2. ZabbixのWebインターフェースでホストを作成します:

  • ホスト名フィールドにホスト名(例:"MySQL server")を入力します。
  • テンプレートフィールドに、ホストにリンクするテンプレート「MySQL by Zabbix agent 2」を入力または選択します。
  • ホストグループフィールドに、ホストグループ(例:"Databases")を入力または選択します。
  • インターフェースフィールドで、タイプ「エージェント」のインターフェースを追加し、MySQLサーバーのIPアドレスを指定します。 このガイドでは、ZabbixサーバーおよびZabbix agent 2と同じマシンにインストールされたMySQLサーバーを監視するために「127.0.0.1」(localhost)を使用します。

  • マクロタブで継承されたマクロとホストマクロに切り替え、以下のマクロを探してマクロ値の横にある変更をクリックし、値を更新します:
    • {$MYSQL.DSN} - MySQLサーバーのデータソース(MySQL Zabbix agent 2プラグイン設定ファイルの名前付きセッションの接続文字列)を設定します。 このガイドでは、ZabbixサーバーおよびZabbix agent 2と同じマシンにインストールされたMySQLサーバーを監視するために、デフォルトのデータソース「tcp://localhost:3306」を使用します。
    • {$MYSQL.PASSWORD} - 以前に作成したMySQLユーザー「zbx_monitor」のパスワードを設定します。
    • {$MYSQL.USER} - 以前に作成したMySQLユーザー「zbx_monitor」のユーザー名を設定します。

3. 追加をクリックしてホストを追加します。このホストがMySQLサーバーを表します。

収集されたメトリクスの表示

おめでとうございます!この時点で、ZabbixはすでにMySQLサーバーの監視を開始しています。

収集されたメトリクスを表示するには、監視 → ホストメニューセクションに移動し、ホストの横にあるダッシュボードをクリックします。

この操作により、MySQLサーバーから収集された最も重要なメトリクスを表示するホストダッシュボード(テンプレートレベルで設定)に移動します。

または、監視 → ホストメニューセクションから、最新データをクリックして、すべての最新の収集メトリクスをリストで表示することもできます。 なお、アイテムMySQL: Calculated value of innodb_log_file_sizeは、値が直近1時間のデータから計算されるため、データがないことが想定されます。

問題アラートの設定

Zabbixは、さまざまな方法でインフラストラクチャの問題について通知できます。 このガイドでは、メールアラートを送信するための基本的な設定手順を説明します。

1. ユーザー設定 → プロファイルに移動し、メディアタブに切り替えてメールアドレスを追加します。

2. 問題通知の受信のガイドに従ってください。

次回、Zabbixが問題を検出したときに、メールでアラートを受信できるはずです。

設定をテストする

設定をテストするには、Zabbixフロントエンドでホスト設定を更新して実際の問題をシミュレートできます。

1. ZabbixでMySQLサーバーホストの設定を開きます。

2. マクロタブに切り替え、継承およびホストマクロを選択します。

3. 例えば、前に設定した {$MYSQL.USER}マクロ値の横にある変更をクリックし、別のMySQLユーザー名を設定します。

4. 更新をクリックしてホスト設定を更新します。

5. しばらくすると、Zabbixは"MySQL: Service is down"という問題を検出します。これは、MySQLサーバーに接続できなくなるためです。 問題は監視 → 問題に表示されます。

アラートが設定されている場合は、問題の通知も受け取ります。

6. マクロ値を元の値に戻して問題を解決し、MySQLサーバーの監視を続けてください。

MySQLを監視する他のアプローチ

Zabbix agent 2でMySQLサーバーを監視する代わりに、Zabbix agentやOpen Database Connectivity(ODBC)標準を使用することもできます。 Zabbix agent 2の使用が推奨されていますが、Zabbix agent 2をサポートしていない、またはカスタムアプローチが必要なセットアップもあるかもしれません。

Zabbix agentとODBCの主な違いはデータ収集方法にあります。Zabbix agentはMySQLサーバーに直接インストールされ、組み込み機能を使用してデータを収集しますが、 ODBCはODBCドライバーを使用してMySQLサーバーへの接続を確立し、SQLクエリを使用してデータを取得します。

多くの設定手順はZabbix agent 2でMySQLサーバーを監視する場合と似ていますが、いくつか重要な違いがあります。MySQLサーバーを監視できるようにZabbix agentまたはODBCを設定する必要があります。 以下の手順では、これらの違いについて説明します。

ZabbixエージェントでMySQLを監視する

ZabbixエージェントでMySQLサーバーを監視するには、OSの手順に従ってZabbixサーバー、Zabbixフロントエンド、Zabbixエージェントをダウンロードしてインストールする必要があります。

必要なZabbixコンポーネントを正常にインストールしたら、MySQLユーザーの作成セクションで説明されているようにMySQLユーザーを作成する必要があります。

MySQLユーザーを作成したら、ZabbixエージェントがMySQLサーバーへの接続を確立し、監視できるようにZabbixエージェントを設定する必要があります。 これには、カスタムエージェントチェックを実行するための複数のユーザーパラメータの設定や、前述の「zbx_monitor」ユーザーとしてMySQLサーバーに接続するために必要な認証情報をZabbixエージェントに提供することが含まれます。

Zabbixエージェントの設定

1. Zabbixエージェントの追加設定ディレクトリに移動します。

cd /usr/local/etc/zabbix/zabbix_agentd.d

Zabbixエージェントの追加設定ディレクトリは、Zabbixエージェントの設定ファイル(zabbix_agentd.conf)と同じディレクトリにある必要があります。 OSやZabbixのインストール方法によっては、このディレクトリの場所が本ガイドで指定したものと異なる場合があります。 デフォルトの場所については、Zabbixエージェントの設定ファイル内のIncludeパラメータを確認してください。

MySQLサーバーの監視に必要なユーザーパラメータをすべてZabbixエージェントの設定ファイルで定義する代わりに、 これらのパラメータを追加設定ディレクトリ内の別ファイルで定義します。

2. Zabbixエージェントの追加設定ディレクトリにtemplate_db_mysql.confファイルを作成します。

vi template_db_mysql.conf

3. template_db_mysql.confファイル(Zabbixリポジトリ内)から内容をコピーし、作成したtemplate_db_mysql.confファイルに貼り付けて保存します。

4. Zabbixエージェントを再起動して設定を更新します。

systemctl restart zabbix-agent

Zabbixエージェントのユーザーパラメータを設定したら、ZabbixエージェントがMySQLサーバーにアクセスできるようにするための認証情報の設定に進みます。

5. Zabbixエージェントのホームディレクトリに移動します(システムに存在しない場合は作成する必要があります。デフォルト:/var/lib/zabbix)。

cd /var/lib/zabbix

6. Zabbixエージェントのホームディレクトリに.my.cnfファイルを作成します。

vi .my.cnf

7. 以下の内容を.my.cnfファイルにコピーします(<password>は"zbx_monitor"ユーザーのパスワードに置き換えてください)。

[client]
       user='zbx_monitor'
       password='<password>'

Zabbixフロントエンドの設定と設定のテスト

Zabbixフロントエンドを設定するには、Zabbixフロントエンドの設定セクションの手順に従い、以下の調整を行ってください。

  • テンプレートフィールドで、ホストにリンクされるテンプレート「MySQL by Zabbix agent」を入力または選択します。
  • マクロの設定は不要です。

Zabbixフロントエンドの設定が完了したら、収集されたメトリクスの表示問題アラートの設定ができます。

設定をテストするには、設定のテストセクションの手順に従い、以下の調整を行ってください。

  • MySQLサーバーホストの設定の継承されたホストマクロセクションで、{$MYSQL.PORT}マクロ値の横にある変更をクリックし、別のポート(例:「6033」)を設定します。

ODBCでMySQLを監視する

ODBCでMySQLサーバーを監視するには、ZabbixサーバーとZabbixフロントエンドをダウンロードしてインストールする必要があります。

必要なZabbixコンポーネントを正常にインストールしたら、MySQLユーザーの作成セクションで説明されているようにMySQLユーザーを作成する必要があります。

MySQLユーザーを作成したら、ODBCをセットアップする必要があります。 これには、最も一般的に使用されているオープンソースのODBC API実装の1つであるunixODBCとunixODBCドライバーのインストール、およびODBCドライバー設定ファイルの編集が含まれます。

ODBCの設定

1. unixODBCをインストールします。unixODBCの推奨インストール方法は、Linuxオペレーティングシステムのデフォルトのパッケージリポジトリを使用することです。

apt install unixodbc

2. MariaDB unixODBCデータベースドライバをインストールします。MySQLデータベースを使用している場合でも、互換性の問題からMariaDB unixODBCドライバを使用します。

apt install odbc-mariadb

3. ODBC設定ファイル odbcinst.ini および odbc.ini の場所を確認します。

odbcinst -j

このコマンドの実行結果は、次のようになります。

unixODBC 2.3.9
       DRIVERS............: /etc/odbcinst.ini
       SYSTEM DATA SOURCES: /etc/odbc.ini
       FILE DATA SOURCES..: /etc/ODBCDataSources
       ...

4. MySQLデータベースの監視用にODBCドライバを設定するには、odbcinst.ini ファイルに記載されているドライバ名が必要です。 以下の odbcinst.ini ファイルの例では、ドライバ名は「MariaDB Unicode」です。

[MariaDB Unicode]
       Driver=libmaodbc.so
       Description=MariaDB Connector/ODBC(Unicode)
       Threading=0
       UsageCount=1

5. 以下の内容を odbc.ini ファイルにコピーします(<password> を「zbx_monitor」ユーザーのパスワードに置き換えてください)。 このガイドでは、ODBCドライバと同じマシンにインストールされたMySQLサーバーを監視するために、MySQLサーバーアドレスとして「127.0.0.1」(localhost)を使用します。 データソース名(DSN)「test」に注意してください。これはZabbixフロントエンドの設定時に必要になります。

[test]
       Driver=MariaDB Unicode
       Server=127.0.0.1
       User=zbx_monitor
       Password=<password>
       Port=3306
       Database=zabbix

Zabbixフロントエンドの設定と設定のテスト

Zabbixフロントエンドを設定するには、Zabbixフロントエンドの設定セクションの手順に従い、以下の調整を行ってください。

  • テンプレートフィールドには、ホストにリンクされるテンプレート「MySQL by ODBC」を入力または選択します。
  • インターフェースの設定は不要です。
  • MySQLサーバーホストの設定の継承されたホストマクロセクションの{$MYSQL.DSN}マクロ値は、odbc.iniファイルのDSN名に設定する必要があります。

Zabbixフロントエンドの設定が完了したら、収集されたメトリクスの表示問題アラートの設定設定のテストができます。

こちらもご参照ください

  • アイテムの作成 - 追加のメトリクスの監視を開始する方法。
  • 問題のエスカレーション - 複数ステップのアラートシナリオを作成する方法 (例: 最初にシステム管理者にメッセージを送信し、45分以内に問題が解決しない場合はデータセンターマネージャーにメッセージを送信する)。
  • ODBC監視 - 他のLinuxディストリビューションでODBCをセットアップする方法、およびODBCで追加のデータベース関連メトリクスの監視を開始する方法。
  • テンプレートMySQL by Zabbix agent - MySQL by Zabbix agent テンプレートに関する追加情報。
  • テンプレートMySQL by Zabbix agent 2 - MySQL by Zabbix agent 2 テンプレートに関する追加情報。
  • テンプレートMySQL by ODBC - MySQL by ODBC テンプレートに関する追加情報。