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

Elasticsearch:セルフマネージド Filebeat を使用した MySQL ログの収集

最終更新日:Feb 27, 2026

このガイドでは、Filebeat を使用して MySQL のエラーログとスロークエリログを Alibaba Cloud Elasticsearch に一元化する方法について説明します。このチュートリアルを完了すると、事前に構築された Kibana ダッシュボードを通じてデータベースのパフォーマンスとエラーを可視化できるようになります。

ワークフローの概要

  1. 環境の準備:Elasticsearch と ECS をセットアップします。

  2. MySQL の設定:ソースデータベースでログを有効にします。

  3. Filebeat のデプロイ:MySQL モジュールをインストールおよび設定してログを転送します。

  4. 可視化:Kibana を使用してデータを分析します。

前提条件

  • Alibaba Cloud Elasticsearch クラスター:この例では V6.7.0 (Standard Edition) を使用します。Alibaba Cloud Elasticsearch クラスターの作成をご参照ください。

  • Alibaba Cloud Elastic Compute Service (ECS) インスタンス:CentOS が稼働していること。カスタム起動をご参照ください。

  • ネットワーク:ECS インスタンスと Elasticsearch クラスターが通信できることを確認します (理想的には同じ VPC 内)。

ステップ 1:MySQL のインストールと設定

ご利用の ECS インスタンスに接続し、以下の手順に従って、Filebeat が読み取れるログを MySQL が生成するようにします。

説明

このガイドでは、一般ユーザーを例として使用します。

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

  2. MySQL をインストールします。

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    sudo yum install mysql-server
  3. ログを有効にします。

    説明

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

    1. /etc/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 に設定されています。必要に応じてこのパラメーターを指定できます。

  4. ログファイルを初期化します。

    MySQL 5.6 以降では、これらのファイルが自動的に作成されない場合があります。ファイルを作成し、読み取り権限を設定します。

    sudo mkdir /var/log/mysql
    sudo touch /var/log/mysql/mysqld.log
    sudo touch /var/log/mysql/slow-mysql-query.log
    sudo chmod 644 /var/log/mysql/*.log
  5. MySQL を起動します。

    sudo systemctl start mysqld
    sudo systemctl status mysqld

ステップ 2:Filebeat のインストールと設定

Filebeat は専用の MySQL モジュールを使用して、ログを Elasticsearch に送信する前に構造化された JSON に解析します。

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

  2. 左側のナビゲーションメニューで、[Logs] をクリックします。

  3. [View setup instructions] をクリックします。

  4. [Add Data to Kibana] ページで、[MySQL logs] をクリックします。

  5. [Self Managed] ページで、[RPM] をクリックします。

    説明

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

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

  7. MySQL モジュールを設定します。

    1. MySQL モジュールを有効にし、ログパスを指定します。

      sudo filebeat modules enable mysql
      sudo vim /etc/filebeat/modules.d/mysql.yml
    2. 設定を更新します。

      - 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 モジュールの設定を更新します。

      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 コンソールのパブリックエンドポイントの表示」をご参照ください。URL は <Kibana コンソールのパブリックエンドポイント>:5601 の形式で指定します。

    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

      Alibaba Cloud Elasticsearch クラスターのエンドポイント。フォーマットは <インスタンスのプライベートまたはパブリックエンドポイント>:9200 です。Elasticsearch クラスターのプライベートまたはパブリックエンドポイントは、インスタンスの基本情報ページから取得できます。詳細については、「インスタンスの基本情報の表示」をご参照ください。

      説明

      パブリックエンドポイントを使用する場合は、ご利用の ECS の IP が Elasticsearch の IP ホワイトリストに追加されていることを確認してください。詳細については、「インスタンスのパブリックまたはプライベート IP アドレスホワイトリストの設定」をご参照ください。

      username

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

      password

      インスタンスのパスワードは通常、作成時に設定します。パスワードを忘れた場合は、リセットできます。パスワードのリセット方法については、「インスタンスのアクセスパスワードのリセット」をご参照ください。

  9. 初期化と起動

    setup コマンドを実行して、事前に構築されたダッシュボードと Ingest パイプラインを Elasticsearch にロードし、サービスを開始します。

    sudo filebeat setup
    sudo service filebeat start

ステップ 3:Kibana でログを可視化する

Filebeat が実行されると、自動的にログを Elasticsearch に転送します。

  1. MySQL を再起動してエラーログを生成するか、いくつかの SQL クエリを実行します。

    sudo systemctl restart mysqld
  2. Elasticsearch クラスターの Kibana コンソールにログインします。

  3. 左側のサイドバーで、[Dashboard] をクリックします。

  4. [Filebeat MySQL] Overview を検索して選択します。

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

    View logs