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の設定例については公式ドキュメントをご確認ください。今回は画面上で生成されたデフォルト値を設定します。
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です。
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 フリープランで始めるオブザーバビリティ!