このページでは、MySQLサーバーの基本的な監視を開始するために必要な手順を説明します。
MySQLサーバーを監視するには、Zabbixエージェント、Zabbixエージェント2、またはOpen Database Connectivity(ODBC)標準など、いくつかのアプローチがあります。 このガイドの主な焦点は、Zabbixエージェント2を使用したMySQLサーバーの監視にあります。これは、さまざまなセットアップでシームレスに構成できるため、推奨されるアプローチです。 ただし、このページでは他のアプローチについても説明しているので、ご自身の要件に最適なものを自由に選択してください。
このガイドの対象者
このガイドはZabbixの新規ユーザー向けに作成されており、MySQLサーバーの基本的な監視を有効にするために必要な最小限の手順が含まれています。 高度なカスタマイズやより詳細な設定が必要な場合は、Zabbixマニュアルの設定セクションを参照してください。
前提条件
このガイドを進める前に、ダウンロードとインストールの手順に従って、Zabbixサーバー、Zabbixフロントエンド、Zabbixエージェント2をインストールする必要があります。
セットアップによっては、このガイドの一部の手順が若干異なる場合があります。このガイドは以下のセットアップを前提としています。
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;ユーザーが作成できたら、次のステップに進みます。
1. Zabbixフロントエンドにログインします。
2. ZabbixのWebインターフェースでホストを作成します:


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サーバーの監視を続けてください。
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サーバーを監視するには、OSの手順に従ってZabbixサーバー、Zabbixフロントエンド、Zabbixエージェントをダウンロードしてインストールする必要があります。
必要なZabbixコンポーネントを正常にインストールしたら、MySQLユーザーの作成セクションで説明されているようにMySQLユーザーを作成する必要があります。
MySQLユーザーを作成したら、ZabbixエージェントがMySQLサーバーへの接続を確立し、監視できるようにZabbixエージェントを設定する必要があります。 これには、カスタムエージェントチェックを実行するための複数のユーザーパラメータの設定や、前述の「zbx_monitor」ユーザーとしてMySQLサーバーに接続するために必要な認証情報をZabbixエージェントに提供することが含まれます。
Zabbixエージェントの設定
1. Zabbixエージェントの追加設定ディレクトリに移動します。
Zabbixエージェントの追加設定ディレクトリは、Zabbixエージェントの設定ファイル(zabbix_agentd.conf)と同じディレクトリにある必要があります。 OSやZabbixのインストール方法によっては、このディレクトリの場所が本ガイドで指定したものと異なる場合があります。 デフォルトの場所については、Zabbixエージェントの設定ファイル内のIncludeパラメータを確認してください。
MySQLサーバーの監視に必要なユーザーパラメータをすべてZabbixエージェントの設定ファイルで定義する代わりに、 これらのパラメータを追加設定ディレクトリ内の別ファイルで定義します。
2. Zabbixエージェントの追加設定ディレクトリにtemplate_db_mysql.confファイルを作成します。
3. template_db_mysql.confファイル(Zabbixリポジトリ内)から内容をコピーし、作成したtemplate_db_mysql.confファイルに貼り付けて保存します。
4. Zabbixエージェントを再起動して設定を更新します。
Zabbixエージェントのユーザーパラメータを設定したら、ZabbixエージェントがMySQLサーバーにアクセスできるようにするための認証情報の設定に進みます。
5. Zabbixエージェントのホームディレクトリに移動します(システムに存在しない場合は作成する必要があります。デフォルト:/var/lib/zabbix)。
6. Zabbixエージェントのホームディレクトリに.my.cnfファイルを作成します。
7. 以下の内容を.my.cnfファイルにコピーします(<password>は"zbx_monitor"ユーザーのパスワードに置き換えてください)。
Zabbixフロントエンドの設定と設定のテスト
Zabbixフロントエンドを設定するには、Zabbixフロントエンドの設定セクションの手順に従い、以下の調整を行ってください。
Zabbixフロントエンドの設定が完了したら、収集されたメトリクスの表示や問題アラートの設定ができます。
設定をテストするには、設定のテストセクションの手順に従い、以下の調整を行ってください。

ODBCでMySQLサーバーを監視するには、ZabbixサーバーとZabbixフロントエンドをダウンロードしてインストールする必要があります。
必要なZabbixコンポーネントを正常にインストールしたら、MySQLユーザーの作成セクションで説明されているようにMySQLユーザーを作成する必要があります。
MySQLユーザーを作成したら、ODBCをセットアップする必要があります。 これには、最も一般的に使用されているオープンソースのODBC API実装の1つであるunixODBCとunixODBCドライバーのインストール、およびODBCドライバー設定ファイルの編集が含まれます。
ODBCの設定
1. unixODBCをインストールします。unixODBCの推奨インストール方法は、Linuxオペレーティングシステムのデフォルトのパッケージリポジトリを使用することです。
2. MariaDB unixODBCデータベースドライバをインストールします。MySQLデータベースを使用している場合でも、互換性の問題からMariaDB unixODBCドライバを使用します。
3. ODBC設定ファイル odbcinst.ini および odbc.ini の場所を確認します。
このコマンドの実行結果は、次のようになります。
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=15. 以下の内容を 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=zabbixZabbixフロントエンドの設定と設定のテスト
Zabbixフロントエンドを設定するには、Zabbixフロントエンドの設定セクションの手順に従い、以下の調整を行ってください。
Zabbixフロントエンドの設定が完了したら、収集されたメトリクスの表示、問題アラートの設定、設定のテストができます。