7.6. systemd ユニットと pmlogger
pmlogger サービスを、それ自体を監視する単一のホストとして、または複数のリモートホストからメトリクスを収集する単一のホストを含む pmlogger ファームとしてデプロイすると、関連する systemd サービスとタイマーユニットがいくつか自動的にデプロイされます。これらのサービスとタイマーは、pmlogger インスタンスが実行していることを確認するための定期的なチェックを提供し、不足しているインスタンスを再起動し、ファイル圧縮などのアーカイブ管理を実行します。
pmlogger によって通常展開されるチェックおよびハウスキーピングサービスは次のとおりです。
pmlogger_daily.service-
デフォルトでは、毎日、深夜直後に実行され、1 つ以上の PCP アーカイブセットを集約、圧縮、およびローテートします。また、制限 (デフォルトでは 2 週間) よりも古いアーカイブも削除されます。
pmlogger.serviceユニットに必要なpmlogger_daily.timerユニットによってトリガーされます。 pmlogger_check-
pmloggerインスタンスが実行中であるかどうかを 30 分ごとにチェックします。不足しているインスタンスを再起動し、必要な圧縮タスクを実行します。pmlogger.serviceユニットに必要なpmlogger_check.timerユニットによってトリガーされます。 pmlogger_farm_check-
設定されたすべての
pmloggerインスタンスのステータスを確認します。不足しているインスタンスを再起動します。すべての非プライマリーインスタンスをpmlogger_farmサービスに移行します。pmlogger_farm_check.timerによってトリガーされます。これは、pmlogger_farm.serviceユニットによって必要とされ、pmlogger_farm.service ユニット自体はpmlogger.serviceユニットによって必要とされます。
これらのサービスは一連の肯定的な依存関係を通じて管理されます。つまり、プライマリー pmlogger インスタンスをアクティブ化すると、すべて有効になります。pmlogger_daily.service はデフォルトで無効になっていますが、pmlogger.service との依存関係によって pmlogger_daily.timer がアクティブになると、pmlogger_daily.service の実行がトリガーされることに注意してください。
pmlogger_daily は、マージ前にアーカイブを自動的に書き換えるために pmlogrewrite とも統合されています。これにより、実稼働環境や PMDA が変化する中でもメタデータの一貫性を確保できます。たとえば、ログ記録間隔中に監視対象ホストの 1 台で pmcd が更新されると、ホスト上の一部のメトリクスのセマンティクスが更新され、新しいアーカイブがそのホストから以前に記録されたアーカイブと互換性がなくなる可能性があります。詳細は、pmlogrewrite(1) の man ページを参照してください。
pmlogger によってトリガーされる systemd サービスの管理
pmlogger インスタンスによって収集されたデータ用の自動化されたカスタムアーカイブ管理システムを作成できます。これは制御ファイルを使用して行われます。これらの制御ファイルは次のとおりです。
プライマリー
pmloggerインスタンスの場合:-
etc/pcp/pmlogger/control -
/etc/pcp/pmlogger/control.d/local
-
リモートホストの場合:
/etc/pcp/pmlogger/control.d/remoteremote を希望のファイル名に置き換えます。
- 注記
-
プライマリー
pmloggerインスタンスは、接続先のpmcdと同じホストで実行している必要があります。1 つのセントラルホストがリモートホストで実行しているpmcdインスタンスに接続された複数のpmloggerインスタンスでデータを収集している場合は、プライマリーインスタンスは必要ありません。また、設定でプライマリーインスタンスが必要ない場合もあります。
ファイルには、ログに記録するホストごとに 1 行が含まれている必要があります。自動的に作成されるプライマリーロガーインスタンスのデフォルトの形式は次のようになります。
フィールドの詳細は以下のとおりです。
Host- ログに記録するホスト名
P?-
“Primary?” の略です。このフィールドは、ホストがプライマリーロガーインスタンスである (
y) か、そうでない (n) かを示します。設定内のすべてのファイルにわたってプライマリーロガーは 1 つだけ存在でき、接続先のpmcdと同じホスト上で実行している必要があります。 S?-
“Socks?” の略です。このフィールドは、このロガーインスタンスがファイアウォール経由で
pmcdに接続するためにSOCKSプロトコルを使用する必要がある (y) か、必要がない (n) かを示します。 directory- この行に関連付けられたすべてのアーカイブがこのディレクトリーに作成されます。
argspmloggerに渡される引数。argsフィールドのデフォルト値は次のとおりです。-r- アーカイブのサイズと増加率を報告します。
T24h10m-
各日のログ記録を終了するタイミングを指定します。これは通常、
pmlogger_daily.serviceが実行する時間です。デフォルト値の24h10mは、ログ記録が開始してから遅くとも 24 時間 10 分後に終了することを示します。 -c config.default- 使用する設定ファイルを指定します。これは基本的に、記録するメトリクスを定義します。
-v 100Mb-
1 つのデータボリュームがいっぱいになり、別のボリュームが作成されるサイズを指定します。新しいアーカイブに切り替わった後、以前に記録されたものは
pmlogger_dailyまたはpmlogger_checkのいずれかによって圧縮されます。