Show page source of hb-logconv #49099

= ログメッセージ制御機能(hb_logconv) =
本ツールは[http://linux-ha.org/ja/Heartbeat_ja Heartbeat]が出力するログのうち、運用上必要と考えられるログのみ抽出し、運用者に分かりやすい内容へ変換して出力するものです。[[BR]]

Heartbeatの標準ログha-logは大量のログ出力があり、また、内容が分かりにくいものでした。本ツールを使うことにより、故障情報等がログから分かりやすく取得できるようになります。

本ツールはHeartbeatと連携動作するツールです。Heartbeatの標準ログから随時ログを読み込み、設定ファイルの内容にしたがって、必要となるログを抽出します。その後、運用者に分かりやすい形式・内容に変換し独自のログファイル(デフォルト:/var/log/hb_logconv.out)に抽出・変換後のログを出力します。

[/projects/linux-ha/releases/44424 このリリースのファイルを表示]

== 1. 動作環境 ==
 * hb-logconv-1.00-1 は、heartbeat-2.1.4-1 と連携して動作します。他環境で正しく動作しません。
 * [http://linux-ha.org/ja/monitoring_ja クラスタ自己監視プログラム] が導入されていることを前提としています。

== 2. ログファイル ==
本ツールを導入することにより、ログファイル全体として以下のようになります。ログファイルのディレクトリは全て /var/log です。
 * ha-log : heartbeatが出力するログ
 * ha-debug : heartbeatが出力するログであり、デバッグレベルのものを含む
 * heartbeat_process_monitor.log : クラスタ自己監視プログラムが出力する、ha_logdプロセスの監視ログ
 * hb_logconv.out : 本ツールの導入により出力されるようになるログ(導入目的となるログ)
 * hb_logconv_process_monitor.log : 本ツールの動作状況の監視ログ

== 3. インストール ==
インストール方法は以下の手順です。
(1) rpmファイル(hb-logconv-1.00-1.hb214.noarch.rpm)をダウンロードしてください。[[BR]]
(2) rpmコマンドでインストールを行ってください。
{{{
# rpm -ivh hb-logconv-1.00-1.hb214.noarch.rpm
準備中...                ########################################### [100%]
   1:hb-logconv             ########################################### [100%]

}}}



== 4. 使用方法 ==
このツールを動作させるためには、Heartbeatが停止している状態で以下の4種の設定ファイルを編集する必要があります。[[BR]]

(1) /etc/init.d/heartbeat の編集 [[BR]]
(2) /etc/logrotate.d/heartbeat の編集 [[BR]]
(3) /etc/ha.d/ha.cf の編集 [[BR]]
(4) /etc/ha.d/hb_logconv.cf の編集[[BR]]

設定後、Heartbeatを起動することによってHeartbeatと本ツールが連携して動作します。

=== 4.1 /etc/init.d/heartbeatの編集 ===
Heartbeatが出力するログを全て扱うために、本ツールはha_logdプロセスの起動前に起動し、ha_logdプロセスの終了後に終了する必要があります。
順序通り、起動・停止するために以下の設定を行います。
右端の数字は行番号を示しています。
{{{
# vi /etc/init.d/heartbeat

(略)
48 HA_DIR=/etc/ha.d; export HA_DIR
49 CONFIG=$HA_DIR/ha.cf
50 . $HA_DIR/shellfuncs
   . /usr/share/heartbeat/hb-logconv/logconv_funcs  
51
52 LOCKDIR=/var/lock/subsys
(略)
417 case "$1" in
418   start)
        StartLogconv
StartLogd
(略)
441   stop)
442     RunStartStop "pre-stop"
443     StopHA
(略)
452     StopLogd
        StopLogconv
453     ;;
}}}


=== 4.2 /etc/logrotate.d/heartbeatの編集 ===
出力されるログのローテーション設定を行います。hb_logconv.outとhb_logconv_process_monitor.logに対する設定を追加してください。

{{{
# vi /etc/logrotate.d/heartbeat

(略)
/var/log/hb_logconv.out  {
        missingok
}

/var/log/hb_logconv_process_monitor.log  {
        missingok
}		
}}}

=== 4.3 /etc/ha.d/ha.cfの編集 ===
本ツールはHeartbeatと共に起動され、常駐プロセスとなります。
何らかの原因でプロセスが落ちた場合に再起動するように以下の設定を行います。
{{{
# vi /etc/ha.d/ha.cf
(略)
respawn root /etc/ha.d/monitoring/hb_logconv_monitor.sh
}}}

=== 4.4 /etc/ha.d/hb_logconv.cfの編集 ===
本ツールの動作のための設定を行います。
下の表で設定内容の説明をしています。
{{{
# vi /etc/ha.d/hb_logconv.cf  

#
# hb_logconv.cf : Config file of hb_logconv for Heartbeat 2.1.4
#
[Settings]
#ha_log_path = /var/log/ha-log    #(1)
#hacf_path = /etc/ha.d/ha.cf      #(2) 
#hostcache_path = /var/lib/heartbeat/hostcache  #(3)
#output_path = /var/log/hb_logconv.out  #(4)
#syslogformat = False  #(5)
attribute_pingd = default_ping_set, lt, 100 #(6)
attribute_diskd = diskcheck_status, eq, ERROR #(7)
attribute_diskd_inner = diskcheck_status_internal, eq, ERROR # (8)
#logconv_logfacility = daemon #(9)
act_rsc = prmExPostgreSQLDB, prmApPostgreSQLDB #(10)
}}}
||番号||設定項目 || 設定内容||
||(1)||ha_log_path||Heartbeatの出力ログファイルを指定します。デフォルトは/var/log/ha-log です。||
||(2)||hacf_path ||Heartbeatの設定ファイル(/etc/ha.d/ha.cf)を指定します。デフォルトは/var/ha.d/ha.cf です。||
||(3)||hostcache_path||ホストキャッシュのファイル名を指定します。デフォルトは/var/lib/heartbeat/hostcache です。||
||(4)||output_path||本ツールで出力されるログのの出力先を指定します。デフォルトは/var/log/hb_logconv.out です。||
||(5)||syslogformat||本ツールの出力形式を指定します。デフォルトはFalseで、ha-logと同じ日付の形式で出力されます。||
||(6)~(8)||attribute_pingdなど||pingd, diskdなどを使っている場合に記述します。/etc/ha.d/ha.cfで指定した属性名と(-aの値)と名前を同じにしてください||
||(9)||logconv_logfacility||本機能のログファシリティを指定します。デフォルトはdaemon です。||
||(10)||act_rsc||ここで指定したリソースが動作しているノードがActiveとなります。指定方法は下のact_rscの指定方法を参照してください。||

==== 4.4.1 act_rsc の指定方法 ====
act_rscにはサービスを提供するために必要となるリソースのリソースIDを指定します。
故障発生時、ここで指定されたリソースが停止することによりフェイルオーバ開始とみなします。また、フェイルオーバ処理開始後、ここで指定されたリソース全てが動作しているかどうかでフェイルオーバの成否を判断します。以下に設定例を示します。
{{{
============
Last updated: Thu Nov 13 13:40:40 2008
Current DC: node02 (00000000-0000-0000-0000-000000000002)
2 Nodes configured.
1 Resources configured.
============

Node: node02 (00000000-0000-0000-0000-000000000002): online
Node: node01 (00000000-0000-0000-0000-000000000001): online

Resource Group: grpPostgreSQLDB
    prmExPostgreSQLDB   (ocf::heartbeat:sfex):  Started node01 
    prmFsPostgreSQLDB  (ocf::heartbeat:Filesystem):    Started node01 
    prmIpPostgreSQLDB   (ocf::heartbeat:IPaddr):       Started node01 
    prmApPostgreSQLDB   (ocf::heartbeat:pgsql): Started node01 
}}}
このリソース定義の場合には以下のように設定します。
{{{
act_rsc = prmExPostgreSQLDB, prmFsPostgreSQLDB, prmIpPostgreSQLDB, prmApPostgreSQLDB
}}}
'''注意''':指定できるリソースIDはprimitiveリソースのIDです。グループリソースのIDは指定できません。

'''ヒント''':Heartbeatのリソースグループの性質により、指定するリソースIDを省略できます。グループリソースのうち、最初と最後に定義されたリソースのIDのみ指定しても、上の設定例と同じ効果が得られます。
{{{
act_rsc = prmExPostgreSQLDB, prmApPostgreSQLDB
}}}


== 5. ログメッセージ一覧 ==

[wiki:hb_logconv_message hb_logconv 出力ログメッセージ一覧]
									
== 6. 制約事項 ==
本ツールを利用するにあたり、以下の制約事項があります。
 * ha-log内のログ欠落による対応は出来ません。
  * Heartbeatでは一時的に大量のログが出力されるような場合、全てのログがha-logに出力されない場合があります。ha-logに出力されていないログに対しては抽出・変換は出来ません。
 * unnamagedとなった場合のログ
  * フェイルオーバー完了時にUnmanagedのリソースがある場合、フェイルオーバ失敗とみなします。手動でUnmanagedとした場合でも、故障によってUnmanagedとなった場合でも区別しません。Unmanagedとなっている場合には、手動で通常状態に戻してください。
 * Heartbeat起動時に故障が発生した場合のログ
  * Heartbeat起動時、サービスを提供するリソースの起動前に待機系ノードのネットワーク故障など特定の故障が発生した場合、リソース移動が発生していないにも関わらず、フェイルオーバ開始および終了(成功)のメッセージを出力します。本現象の発生時、サービスを提供するリソースは、初期起動すべきノードにて起動処理が継続され、正常に起動されます。Heartbeat起動時には正しく起動できていることを確認することをお勧めします。

== 関連情報 ==
 * [hb_logconv_message hb_logconv 出力ログメッセージ一覧]
 * [http://linux-ha.org/ja/monitoring_ja クラスタ自己監視プログラム (monitoring )]
 * [http://linux-ha.org/ja/pingd_ja pingd]
 * [http://linux-ha.org/ja/diskd_ja ディスク監視デーモン (diskd)]
 * [http://linux-ha.org/ja/StonithWrapper_ja STONITH 機能拡張プラグイン (stonith-wrapper)]
 * [http://linux-ha.org/ja/sfex_ja Shared Disk File EXclusiveness Control Program (SFEX)]