4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New Relicで3rd Partyのソフトウェアのデータも統合監視しよう! - MySQL編

Last updated at Posted at 2024-12-12

on-host Integrationsを使うと、ApacheやMySQLなどのメトリクスを収集して、ミドルウェアレベルでの問題切り分けやパフォーマンスなどの分析ができるようになります。

on-host Integrationsとは

on-host IntegrationsはNew Relic Infrastructure エージェントをインストールすることで利用でき、多くの3rd Party ソフトウェアの独自のデータをNew Relicに送って、監視することができます。

on-host Integrationsで対応しているサービスは以下サイトでご確認いただけます。

Apache Integrationのセットアップは以下記事が参考になります。

Infrastructure エージェントのインストール方法は以下Qiitaブログが参考になります。

on-host Integrationsは、Infrastructure エージェントをインストールした後に、統合したい3rd Party ソフトウエアに対応したパッケージをインストール(例えば、Linux環境のMySQLを統合する場合は、yum install nri-mysqlでインストール)します。

試してみよう

今回はMySQLのステータスをon-host Integrationsで取得する設定を試してみます。

インストール前の事前チェック

New Relicの管理画面にログインし、「+ Integrations & Agents」を選択->「MySQL」を選択します。

セットアップ方法は今回は「On a host」を選択します。Ansibleでセットアップしたり、New RelicのCLIを使ったセットアップ方法なども選択できます。

セットアップするOSを選択します。今回はLinuxを選択します。

InfraStracture エージェントが入っている対象ホストを選択します。InfraStracture エージェントをインストールする場合、「Instrument a new host」をクリックすると、画面でガイドを受けながらエージェントをインストールすることもできます。

セットアップする環境がセットアップ要件を満たしているか確認していきます。

IntegrationがサポートしているMySQLのバージョン(5.6以上)を使用しているか確認します。

コマンドの出力例
# mysql --version
mysql  Ver 8.0.40 for Linux on x86_64 (MySQL Community Server - GPL)

OSがTLS1.2以上をサポートしているか確認します。

コマンドの出力例
# openssl ciphers -v | awk '{print " - " $2}' | sort | uniq
 - SSLv3
 - TLSv1
 - TLSv1.2
 - TLSv1.3

MySQL IntegrationがMySQLのステータスを取得するのに使用するMySQLのusernameとpassowrdを入力すると、MySQLのユーザー作成のSQLクエリが生成されるので、コピーしてMySQLにログインして実行します。

実行例
# Create 'newrelic' user
CREATE USER 'newrelic'@'localhost' IDENTIFIED BY 'password';
# Grant replication client privileges
GRANT REPLICATION CLIENT ON *.* TO 'newrelic'@'localhost';
# Grant select privileges
GRANT SELECT ON *.* TO 'newrelic'@'localhost';

作成したユーザーでMySQLのステータスを取得できることを確認します。

実行例
# mysql --user=newrelic --password=password -e 'show status' | grep Uptime
mysql: [Warning] Using a password on the command line interface can be insecure.
Uptime	677

インストール

Integrationをインストールする環境のOSを選択します。今回はAmazonLinuxを選択します。

ガイドで表示されたインストールコマンドをOS内で実行します。

sudo yum install nri-mysql -y

Integrationの構成ファイルを画面上でコピーもしくはDLしてガイドされているサーバーの所定のディレクトリに配置します。MySQL Integrationの設定例については公式ドキュメントをご確認ください。今回は画面上で生成されたデフォルト値を設定します。

/etc/newrelic-infra/integrations.d/mysql-config.yml
integrations:
  - name: nri-mysql
    env:
      HOSTNAME: localhost
      PORT: 3306

      # ENABLE_TLS: false
      # INSECURE_SKIP_VERIFY: false

      # Specify extra connection parameters as attr1=val1&attr2=val2.
      # EXTRA_CONNECTION_URL_ARGS: ""

      # If not empty `socket` parameter will discard `port` parameter
      # SOCKET: <PATH_TO_LOCAL_SOCKET_FILE_NAME>

      USERNAME: newrelic
      PASSWORD: password

      # Extended metrics
      EXTENDED_METRICS: true
      EXTENDED_INNODB_METRICS: true
      EXTENDED_MYISAM_METRICS: true

      REMOTE_MONITORING: true

    # Time between consecutive executions of the integration. It must be a number followed by a time unit (s, m or h), without spaces.
    # The default is 30s, and the minimum accepted value is 15s. Any value lower than 15s is automatically set to 15s.
    interval: 30s

    # The agent uses those labels to decorate the metrics, events, and inventory that it receives from a given integration instance.
    labels:
      env: production
      role: write-replica

    # Advanced: Allows overriding the category and term of the inventory source.
    inventory_source: config/mysql

構成ファイルを配置後、正しく設定されているかコマンドで確認します。

コマンドの出力例
# sudo /usr/bin/newrelic-infra -dry_run -integration_config_path /etc/newrelic-infra/integrations.d/mysql-config.yml | grep -wo "Integration health check finished with success"
Integration health check finished with success

「Integration health check finished with success」が返ってくればOKです。

オプションでMySQLのログを転送する設定を行います。

/etc/newrelic-infra/logging.d/mysql-log.yml
logs:
- name: "mysql_errors"
  file: /var/log/mysql/error.log
  attributes:
    logtype: mysql-error

これでセットアップ完了です!

データを確認しよう

「Infrastructure」→「Third-party services」→「Apache Dashboard」を選択します。

セットアップしたMySQLのステータスをすぐに分析できるダッシュボードが表示されました。on-host Integrationsでセットアップしたデータはビルドインのダッシュボードですぐにデータが可視化されるので、セットアップ終えてすぐにダッシュボードを使ったカスタムデータの分析ができるようになっています。

本記事ではon-host Integrationsを使ってMySQLのステータスをNew Relicに送って、可視化するまでの流れを紹介しました。アプリケーションの運用ではインフラやアプリケーションの監視だけでなく、DBサーバーのソフトウエアのステータスを監視するのもアプリケーションのパフォーマンスや稼働状況を確認するうえで重要になります。簡単にセットアップできますので、是非お試しください!

その他

New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!

New Relic株式会社のX(旧Twitter)Qiita OrganizationOrganizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?