すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:自己管理型 Filebeat を使用した MySQL ログの収集

最終更新日:Jan 11, 2025

スローログやエラーログなどの MySQL ログを表示および分析する場合、Filebeat を使用して MySQL ログを収集できます。Filebeat はログを Alibaba Cloud Elasticsearch に送信します。これらのログは、Kibana コンソールで視覚的にクエリ、分析、および表示できます。

手順

  1. 準備を行う

    Alibaba Cloud Elasticsearch クラスタと Elastic Compute Service (ECS) インスタンスを作成します。Elasticsearch クラスタは、Filebeat によって収集された MySQL ログを受信するために使用されます。また、これらのログを視覚的にクエリ、分析、および表示するための Kibana コンソールも提供します。ECS インスタンスは、MySQL と Filebeat をインストールするために使用されます。

  2. 手順 1: MySQL をインストールして構成する

    MySQL をインストールし、MySQL 構成ファイルでエラーログファイルとスロークエリログファイルを構成します。その後、Filebeat は必要なログを収集できます。

  3. 手順 2: Filebeat をインストールして構成する

    Filebeat をインストールします。Filebeat は、MySQL ログを収集し、ログを Elasticsearch クラスタに送信するために使用されます。Filebeat で MySQL モジュールを有効にし、Filebeat 構成ファイルで Elasticsearch クラスタとクラスタの Kibana コンソールにアクセスするために使用する URL を指定する必要があります。

  4. 手順 3: Kibana ダッシュボードを使用して MySQL ログを表示する

    クエリテストを実行し、表示および分析するエラーログとスロークエリログを Kibana コンソールのダッシュボードに表示します。

準備を行う

手順 1: MySQL をインストールして構成する

  1. ECS インスタンスに接続します。

    詳細については、「パスワードを使用して Linux インスタンスに接続する」をご参照ください。

    説明

    この例では、一般的なユーザーを使用しています。

  2. MySQLソースをダウンロードしてインストールします。

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
  3. MySQL をインストールします。

    sudo yum install mysql-server
  4. my.cnf ファイルでエラーログファイルと低速クエリログファイルを構成します。

    説明

    デフォルトでは、MySQL のログファイルの設定は無効になっています。ログファイルの設定を手動で有効にする必要があります。 MySQL コマンドを実行して、一時的なスローログを有効にすることもできます。

    1. my.cnf ファイルを開きます。

      sudo vim /etc/my.cnf
    2. ログファイルを構成します。

      [mysqld]
      log_queries_not_using_indexes = 1
      slow_query_log=on
      slow_query_log_file=/var/log/mysql/slow-mysql-query.log
      long_query_time=0
      
      [mysqld_safe]
      log-error=/var/log/mysql/mysqld.log

      パラメーター

      説明

      log_queries_not_using_indexes

      インデックスが指定されていないクエリをスロークエリログとして記録するかどうかを指定します。値 1 は、システムがインデックスが指定されていないクエリをスロークエリログとして記録することを示します。値 0 は、システムがインデックスが指定されていないクエリをスロークエリログとして記録しないことを示します。

      slow_query_log

      スロークエリログを有効にするかどうかを指定します。値 on は、スロークエリログが有効になっていることを示します。値 off は、スロークエリログが無効になっていることを示します。

      slow_query_log_file

      スロークエリログの保存パスを指定します。

      long_query_time

      スロークエリログを定義するために使用されるタイムしきい値を指定します。単位:秒。クエリ時間がしきい値を超えると、MySQL データベースは slow_query_log_file で指定されたファイルにクエリを書き込みます。

      重要

      テストの便宜上、このパラメーターの値は 0 に設定されています。ビジネス要件に基づいてこのパラメーターを指定できます。

    3. (オプション) ログファイルを作成します。

      重要

      MySQL 5.6 はログファイルを自動的に作成しません。ログファイルを手動で作成する必要があります。

      sudo mkdir /var/log/mysql
      sudo touch /var/log/mysql/mysqld.log
      sudo touch /var/log/mysql/slow-mysql-query.log
    4. ログファイルに対するすべてのユーザーの読み取りおよび書き込み権限を付与します。

      sudo chmod 777 /var/log/mysql/slow-mysql-query.log /var/log/mysql/mysqld.log
  5. MySQL を起動し、そのステータスを確認します。

    sudo systemctl start mysqld
    sudo systemctl status mysqld

ステップ 2: Filebeat のインストールと構成

  1. Elasticsearch クラスターの Kibana コンソールにログオンします。

    詳細については、「Kibana コンソールへのログオン」をご参照ください。

  2. データの視覚化と探索セクションで、[ログ] をクリックします。

  3. 表示されるページで、[セットアップ手順の表示] をクリックします。

  4. [kibana へのデータの追加] ページで、[mysql ログ] をクリックします。

  5. [はじめに] セクションで、[RPM] タブをクリックします。

    説明

    このトピックでは、Linux オペレーティングシステムが使用されています。そのため、[RPM] が選択されています。お使いのオペレーティングシステムに基づいて、適切なインストール方法を選択できます。

  6. プロンプトに従って、ECS インスタンスに Filebeat をインストールします。

  7. MySQL モジュールの構成を変更し、収集するエラーログとスローログのファイルを指定します。

    1. MySQL モジュールを有効にします。

      sudo filebeat modules enable mysql
    2. mysql.yml ファイルを開きます。

      sudo vim /etc/filebeat/modules.d/mysql.yml
    3. MySQL モジュールの構成を変更します。

      Modify the configuration of the MySQL module

      - module: mysql
        # エラーログ
        error:
          enabled: true
          var.paths: ["/var/log/mysql/mysqld.log"]
          # ログファイルのカスタムパスを設定します。空のままにすると、
          # Filebeat は OS に応じてパスを選択します。
          #var.paths:
      
        # スローログ
        slowlog:
          enabled: true
          var.paths: ["/var/log/mysql/slow-mysql-query.log"]
          # ログファイルのカスタムパスを設定します。空のままにすると、
          # Filebeat は OS に応じてパスを選択します。
          #var.paths:

      パラメーター

      説明

      enabled

      このパラメーターを true に設定します。

      var.paths

      このパラメーターをログファイルのパスに設定します。パスは、MySQL 構成ファイルで指定されているパスと同じである必要があります。詳細については、「ステップ 1: MySQL のインストールと構成」をご参照ください。

  8. filebeat.yml ファイルを構成します。

    1. filebeat.yml ファイルを開きます。

      sudo vim /etc/filebeat/filebeat.yml
    2. Filebeat モジュールの構成を変更します。

      Configuration of Filebeat modules

      filebeat.config.modules:
        # 構成の読み込みのための Glob パターン
        path: /etc/filebeat/modules.d/mysql.yml
      
        # 構成の再読み込みを有効にするには、true に設定します
        reload.enabled: true
      
        # path の下のファイルの変更を確認する期間
        reload.period: 1s
    3. Kibana の構成を変更します。

      Modify the configuration of Kibana

      setup.kibana:
      host: "https://es-cn-0pp1jxvcl000*****.kibana.elasticsearch.aliyuncs.com:5601"

      host: Kibana コンソールへのアクセスに使用する URL。URL は Kibana 構成ページで取得できます。詳細については、「Kibana コンソールの公開エンドポイントの表示」をご参照ください。<Kibana コンソールの公開エンドポイント>:5601 の形式で URL を指定します。

    4. Elasticsearch クラスターの構成を変更します。

      Modify the configuration of the Elasticsearch cluster

      output.elasticsearch:
        # 接続先のホストの配列
        hosts: ["es-cn-0pp1jxvcl000*****.elasticsearch.aliyuncs.com:9200"]
        # オプションのプロトコルと基本認証資格情報
        #protocol: "https"
        username: "elastic"
        password: "<your_password>"

      パラメーター

      説明

      hosts

      Elasticsearch クラスターへのアクセスに使用する URL。<Elasticsearch クラスターの内部または公開エンドポイント>:9200 の形式で URL を指定します。内部または公開エンドポイントは、クラスターの [基本情報] ページで取得できます。詳細については、「クラスターの基本情報の表示」をご参照ください。

      説明

      ECS インスタンスと Elasticsearch クラスターが同じ仮想プライベートクラウド (VPC) 内にある場合は、内部エンドポイントを使用します。それ以外の場合は、公開エンドポイントを使用します。公開エンドポイントを使用して Elasticsearch クラスターにアクセスする場合は、インターネット経由で Elasticsearch クラスターにアクセスするためのホワイトリストを構成する必要があります。詳細については、「Elasticsearch クラスターのパブリックまたはプライベート IP アドレスホワイトリストの構成」をご参照ください。

      username

      Elasticsearch クラスターへのアクセスに使用するユーザー名。デフォルト値: elastic。

      password

      elastic ユーザー名に対応するパスワード。パスワードは、Elasticsearch クラスターの作成時に指定します。パスワードを忘れた場合は、リセットできます。パスワードのリセット手順と注意事項については、「Elasticsearch クラスターのアクセスパスワードのリセット」をご参照ください。

  9. 次のコマンドを実行して、Filebeat を起動します。

    sudo filebeat setup
    sudo service filebeat start

ステップ 3: Kibana ダッシュボードを使用して MySQL ログを表示する

  1. テストのために ECS インスタンスで MySQL を再起動し、ログをクエリします。

    MySQL を再起動するには、次のコマンドを実行します。

    sudo systemctl restart mysqld
  2. クエリされたログを表示します。

    次の図は、クエリされたログを示しています。

    図 1. 低速ログSlow logs

    図 2. エラーログError logs

  3. Elasticsearch クラスターの Kibana コンソールにログオンします。

    詳細については、「Kibana コンソールにログオンする」をご参照ください。

  4. 左側のナビゲーションペインで、[ダッシュボード] をクリックします。

  5. [ダッシュボード] ページで、[filebeat Mysql] 概要 をクリックします。

  6. 右上隅で時間範囲を選択し、その時間範囲のログを表示します。

    View logs