今回の記事では、GrafanaやRedisをPerformance Co-Pilot(PCP)と組み合わせて、環境内のすべてのマシンのパフォーマンスデータを保存しグラフ化する方法をご紹介します。話を簡単にするため、ここではマシンは2台だけセットアップしますが、マシンを増やしても考え方は同じです。
この記事を読み始める前に、このシリーズのパート1を読んでおいてください!
2台のマシンをセットアップし、server-1とserver-2と呼びます。server-1という名前のマシンはRedisを実行し、すべてのホストのPCPメトリクスを収集します。これは、このマシン上にRedisデータベースのためのスペースを確保する必要があることを意味します。デフォルトのPCPの設定では、ホスト1台あたり約100MBのディスク領域および約200MBのメモリが必要になります。Redisデータベースにデータを保存する仕組みは、pmseriesと呼ばれています。サーバ1の /etc/pcp/pmproxy/pmproxy.conf
ファイル内で [pmproxy] セクションに以下が設定されていることを確認します。
# support Redis protocol proxying redis.enabled = true
さらに [pmseries] セクションで以下の設定が行われていることを確認してください。
# allow REST API queries of fast, scalable time series enabled = true
Server-1で以下のコマンドを実行し、redis のインストール、起動、永続的な有効化を行います。
yum install redis -y systemctl start redis systemctl enable redis
systemctl restart pmcd pmlogger pmproxy
これでserver-1は、pmloggerが設定された全てのホストの過去のパフォーマンスデータを記録できるようになりました。現時点ではpmloggerは、server-1のデータを収集するようにしか設定されていないので、もう一つのホストであるserver-2のデータも収集するよう設定してみましょう。
server-2 では pmcd サービスのリモート接続を有効にするためデフォルトの PMCD_LOCAL=1 を0に変更しましょう。この値は /etc/sysconfig/pmcd
内にあります。
# Behaviour regarding listening on external-facing interfaces; # unset PMCD_LOCAL to allow connections from remote hosts. # A value of 0 permits remote connections, 1 permits local only. PMCD_LOCAL=0
ここでサービスを接続可能にする必要があります。
firewall-cmd --add-service=pmcd --permanent firewall-cmd --reload
そして最後に、pcpのサービスを再起動します。
setsebool -P pcp_bind_all_unreserved_ports on
さてこの時点でserver-2は、pmloggerエージェントが接続しログを要求できるよう設定されています。
systemctl restart pmcd pmlogger
server-1 に戻り、 /etc/pcp/pmlogger/control.d/remote
を編集して次の行を追加することで、pmloggerエージェントにserver-2用の設定を行います。
server-2 n n PCP_LOG_DIR/pmlogger/server-2 -r -T24h10m -c config.remote
完了次第、pmloggerを再起動します。
systemctl restart pmlogger
その後、以下のコマンドを実行でき、
cd /var/log/pcp/pmlogger/server-2
ls *.0
「.0」で終わるファイルが確認できるはずです。
20200923.16.41.0
これでpcpのメトリックデータをserver-2からserver-1のマシンに収集できていることがわかります。
最初の投稿でセットアップしたGrafanaインスタンス(http://server-1:3000)に戻り、redis上のメトリクスデータをグラフ化する方法を見ていきます。
再度歯車アイコン(Configuration)、そして「Data Sources」をクリックします。ここで「Add Data Source」をクリックします。PCP Redisをマウスオーバーし表示されるSelectボタンをクリックします。HTTPセクションのフォームに「http://localhost:44322」のURLを入力し、フォームの下部にある「Save & Test」をクリックします。「Data source is working」というメッセージが返ってくるはずです。
これで設定が完了したので結果を見てみましょう。DashboardアイコンをクリックしManageをクリックします。ここでPCP Redis Host Overviewのオプションが表示されるのでそちらをクリックします。
デフォルトではPCP Redis Host Overviewダッシュボードには6時間分のデータが表示されますが、必要に応じてより短い時間に変更することもできます。これらのチャートには以下のようなあらゆる種類のメトリクスが表示されます。
-
ロードアベレージ
-
メモリ使用率
-
CPUごとのビジー率(user/sys)
-
1秒あたりコンテキストスイッチ数
-
実行可能プロセス数
-
メモリ(used/cached/free)
-
ネットワークスループット 受信/送信
-
ネットワークパケットドロップ 受信/送信
-
ネットワークパケット受信/送信
-
TCP タイムアウト/listenエラー/再送
-
ディスク レイテンシー/IOPS/スループット/ビジー率
このように難しい設定なしですぐにホストの様々なデータを見ることができます。また、ダッシュボードの左上の隅にHostというドロップダウンメニューがあります。ここには現在データを表示しているホストが表示され、別のホストを選択してデータを表示することもできます。複数のホストのデータをredisデータベースに取り込んでおり、設定したすべてのホストのメトリクスを見ることができます。この記事で紹介した方法を使用することで、ホスト単位の監視と、様々なところからの過去のパフォーマンスデータへのアクセスが可能となります!
シリーズ最後となる次回の記事では、ここまでの方法にBpftraceを組み込む方法をご紹介します!
執筆者紹介
Karl Abbott is a Senior Product Manager for Red Hat Enterprise Linux focused on the kernel and performance. Abbott has been at Red Hat for more than 15 years, previously working with customers in the financial services industry as a Technical Account Manager.
チャンネル別に見る
自動化
テクノロジー、チームおよび環境に関する IT 自動化の最新情報
AI (人工知能)
お客様が AI ワークロードをどこでも自由に実行することを可能にするプラットフォームについてのアップデート
オープン・ハイブリッドクラウド
ハイブリッドクラウドで柔軟に未来を築く方法をご確認ください。
セキュリティ
環境やテクノロジー全体に及ぶリスクを軽減する方法に関する最新情報
エッジコンピューティング
エッジでの運用を単純化するプラットフォームのアップデート
インフラストラクチャ
世界有数のエンタープライズ向け Linux プラットフォームの最新情報
アプリケーション
アプリケーションの最も困難な課題に対する Red Hat ソリューションの詳細
オリジナル番組
エンタープライズ向けテクノロジーのメーカーやリーダーによるストーリー