1.3.2 ログファイル容量の管理
ディスク容量を圧迫する原因の一つとして,ログファイル容量の増加があります。
JP1/IM,JP1/Baseの場合,ログファイルの容量を事前に見積もっておけば,ログファイル容量の増加を考慮する必要はありません。これはJP1/IM,JP1/Baseが出力するログファイルは,複数のログファイルを切り替えて使用するなどの方式を採用しているためです。
OSや同ホストのほかの製品については,それぞれの仕様を確認してログファイルの容量が増加しないよう注意してください。
- 〈この項の構成〉
(1) インテリジェント統合管理データベースが出力するログの確認
PostgreSQLの設定に応じて,次に示すインテリジェント統合管理データベースのログを出力します。PostgreSQLの設定については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「インテリジェント統合管理データベースの設定ファイル(postgresql.conf)」(2. 定義ファイル)を参照してください。
-
格納先
- Windowsの場合
-
インテリジェント統合管理データベースのデータファイルの格納先※\log
- UNIXの場合
-
インテリジェント統合管理データベースのデータファイルの格納先※/log
- 注※
-
マニュアル「JP1/Integrated Management 3 - Manager 導入・設計ガイド」の「2.7.1(1)(d) 関連ファイルの格納先」を参照してください。
-
ファイル名
■JP1/IM - Manager 13-50以降を新規インストールした場合
postgresql-rotate.log.面数の通番※
- 注※
-
面数の通番には,ログファイルの面数とローテーションに応じた通番が入ります。ログファイルの面数は,インテリジェント統合管理データベースの設定ファイルのlog2_rotation_countパラメーターで,0〜100の範囲で設定できます。デフォルトは7です。0を設定した場合はログファイルを出力しません。
ログファイルをローテーションするサイズは,インテリジェント統合管理データベースの設定ファイルのlog2_rotation_max_sizeパラメーターで,1B〜10GBの範囲で設定できます。デフォルトは10MBです。
インテリジェント統合管理データベースの設定ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「インテリジェント統合管理データベースの設定ファイル(postgresql.conf)」(2. 定義ファイル)を参照してください。
■JP1/IM - Manager 13-50より前のバージョンからバージョンアップした場合
postgresql-曜日名※.log
- 注※
-
曜日名には,GMTタイムゾーンの曜日を表す英字3文字(Mon,Tue,Wed,Thu,Fri,Sat,またはSunのどれか)が入ります。
曜日名ごとのログファイルのローテーションは,インテリジェント統合管理データベースの設定ファイルのlog_timezoneパラメーターで設定したタイムゾーンのローカル時間0時に行われます。また,曜日名ごとのログファイルのサイズに上限はありません。
- 重要
-
ログファイルとして「postgresql-rotate.log.面数の通番」を使用したい場合は,インテリジェント統合管理データベースの設定ファイルでパラメーターの設定を変更する必要があります。logging_collectorパラメーターがonの場合にログファイルを出力し,log2パラメーターがonのときはログファイルとして「postgresql-rotate.log.面数の通番」を使用,log2パラメーターがoffのときはログファイルとして「postgresql-曜日名.log」を使用します。log2パラメーターにonまたはoff以外を指定したときはoffを仮定します。
ログファイルとして「postgresql-rotate.log.面数の通番」を使用している場合,ログファイルの面数はlog2_rotation_countパラメーター,ログファイルをローテーションするサイズはlog2_rotation_max_sizeパラメーターで設定できます。
インテリジェント統合管理データベースの設定ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「インテリジェント統合管理データベースの設定ファイル(postgresql.conf)」(2. 定義ファイル)を参照してください。
-
出力内容
ログの出力行の形式を次に示します。
YYYY-MM-DD HH:MM:SS.FFF GMT [プロセスID] SQLステートメント ログ出力メッセージ
「YYYY-MM-DD HH:MM:SS.FFF GMT [プロセスID] SQLステートメント」の部分に,GMTタイムゾーンのタイムスタンプ,プロセスID,SQLステートメントを,プレフィックスとして出力します。
-
ログファイルのサイズの見積もり
■「postgresql-rotate.log.面数の通番」の場合
インテリジェント統合管理データベースの設定ファイル(postgresql.conf)で設定したログファイルの面数とローテーションするサイズの値を基に見積もってください。
インテリジェント統合管理データベースの設定ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「インテリジェント統合管理データベースの設定ファイル(postgresql.conf)」(2. 定義ファイル)を参照してください。
■「postgresql-曜日名.log」の場合
ログファイルのサイズに上限はありません。
通常の運用でのログの出力サイズの見積もり式を,次に示します。
- 通常の運用でのログの出力サイズ(1週間分)
-
=1日分のログの出力サイズ×7(日)
1日分のログの出力サイズ
=1サンプル当たりのログの出力サイズ※1×1日のスクレイプ回数※2×1回のスクレイプで各Exporterから収集されるサンプル数※3
- 注※1
-
トレンドデータの書き込みで出力されるログの出力サイズを示します。
JP1/IM - Agentの場合は,50バイトを想定しています。
- 注※2
-
JP1/IM - Agentの場合は,Prometheus設定ファイル(jpc_prometheus_server.yml)のscrape_intervalで指定するスクレイプ間隔を元に算出します。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Prometheus設定ファイル(jpc_prometheus_server.yml)」(2. 定義ファイル)のscrape_intervalについて説明している個所を参照してください。
スクレイプ間隔の指定が1m(1分)の場合は,1440回(60分×24時間)となります。
- 注※3
-
監視エージェントがターゲットとする各Exporterのメトリック定義ファイルで指定しているメトリック数の総和を示します。
JP1/IM - Agentがサポートする各Exporterのメトリック定義ファイルについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の各Exporterのメトリック定義ファイルについて説明している個所を参照してください。
なお,Linuxの場合,次に示すようなスクリプト(一定期間のログを圧縮または削除する)※を作成し,定期的(1回/日)に実行することで,ログファイルのディスク容量を削減できます。
注※ 「/etc/cron.daily」ディレクトリに配置します。
ログを1日単位で圧縮および30日単位で削除するシェルスクリプトの例
#!/usr/bin/bash LOGDIR=/var/opt/jp1imm/database/imgndb/log LOGSAVE=/var/opt/jp1imm/log/imgndb COMPRESS_DAY=1 REMOVE_DAY=30 COMPRESS_CMD=gzip COMPRESS_MTIME=`expr $COMPRESS_DAY - 1` #Search for ".log" files whose modification date is "$COMPRESS_MTIME" or later COMPRESS_FILE=`find $LOGDIR -name '*.log' -daystart -type f -mtime +$COMPRESS_MTIME` #Add the date to the end of the file to be compressed and compress it. if [ "$COMPRESS_FILE" != "" ] then for i in $COMPRESS_FILE do if [ -f ${i} ] then mv ${i} ${i}.`date '+%Y%m%d'` $COMPRESS_CMD ${i}.`date '+%Y%m%d'` fi done fi #Search for ".gz" files MV_FILE=`find $LOGDIR -name '*.gz'` #Move compressed logfiles to "$LOGSAVE" if [ "$MV_FILE" != "" ] then for i in $MV_FILE do if [ -f ${i} ] then mv ${i} $LOGSAVE fi done fi REMOVEMTIME=`expr $REMOVE_DAY - 1` #Search for ".gz" files whose modification date is "$REMOVEMTIME " or later REMOVE_FILE=`find $LOGSAVE -name 'postgresql-*.gz' -daystart -type f -mtime +$REMOVEMTIME` #Delete the file to be deleted if [ "$REMOVE_FILE" != "" ] then for i in $REMOVE_FILE do if [ -f ${i} ] then rm -f ${i} fi done fi上記のスクリプトを実行して運用する場合,監視対象数を500件としたときの,ログファイルのディスク容量の見積もりは,約20GB※となります。
- 注※
-
次に示す各ログファイルのサイズの合計です。
・当日のログファイルのサイズ:約4GB
・前日(圧縮前)のログファイルのサイズ:約4GB
・圧縮後のログファイルのサイズ(400MB)×30日分:約12GB
インテリジェント統合管理データベースのログは,極めてサイズが大きいため,資料採取ツール※の採取対象外となります。「12.3.1(1)(b) JP1の情報」および「12.3.1(2)(b) JP1の情報」に記載しているケースに該当する場合は,手動で個別に採取する必要があります。
- 注※
-
詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「jim_log.bat(Windows限定)」(1. コマンド)および「jim_log.sh(UNIX限定)」(1. コマンド)を参照してください。