[AIX] errpt のエントリーを syslog に出力する

#### はじめに



AIX のエラーは errpt コマンドでエラー・ログ内のエントリーからエラー・レポートを作成して確認ができます。
AIX の errpt のエントリーを syslog に出力する方法を確認しました。

参考：
　[errpt コマンド](https://www.ibm.com/docs/ja/aix/7.2?topic=e-errpt-command)
　[エラー・ログ作業](https://www.ibm.com/docs/ja/aix/7.2?topic=overview-error-logging-tasks)

なお、errpt は errdaemon が、syslog は syslogd と、異なるデーモンで制御されています。

----

#### 環境

AIX 7.2 (LPAR ホスト名 : testlpar1) 

----
#### 設定

##### 1. errnotify の設定

オブジェクト・データ・マネージャー (ODM) コマンドを使用して/etc/objrepos/errnotify ファイルに syslog への通知を設定します

・[エラー通知](https://www.ibm.com/docs/ja/aix/7.2?topic=overview-error-notification)

参考の ODM設定ファイル(/tmp/errpt/sample.add) です。

```/tmp/errpt/sample.add
errnotify:
        en_name = "syslog_test"
        en_persistenceflg = 1
        en_method = "logger -p Msg from Error log:  `errpt -l $1 | grep -v 'IDENTIFIER TIMESTAMP'`"
```

[odmadd コマンド](https://www.ibm.com/docs/ja/aix/7.2?topic=o-odmadd-command)で 追加のerrnotify を設定します。

```
# odmadd /tmp/errpt/sample.add
# echo $?
0
```

[odmget コマンド](https://www.ibm.com/docs/ja/aix/7.2?topic=o-odmget-command)で確認します。
以下のエントリーが追加されました。

```
# odmget -q"en_name='syslog_test'" errnotify

errnotify:
        en_pid = 0
        en_name = "syslog_test"
        en_persistenceflg = 1
        en_label = ""
        en_crcid = 0
        en_class = ""
        en_type = ""
        en_alertflg = ""
        en_resource = ""
        en_rtype = ""
        en_rclass = ""
        en_symptom = ""
        en_err64 = ""
        en_dup = ""
        en_method = "logger -p Msg from Error log:  `errpt -l $1 | grep -v 'IDENTIFIER TIMESTAMP'`"
```

---

##### 2. syslog の設定

debug レベルで /tmp/syslog/errpt_test.log に記載されるように /etc/syslog.conf を設定します。

・[syslogd デーモン](https://www.ibm.com/docs/ja/aix/7.2?topic=s-syslogd-daemon)

> 優先順位レベル
>selector フィールドには、以下のメッセージ優先順位レベルを使用します。指定された優先順位レベルのメッセージ、およびその指定レベル以上の全レベルのメッセージが、指示されたとおりに送られます。


```/etc/syslog.conf
*.debug /tmp/syslog/errpt_test.log
```

syslogd リフレッシュ

```
# refresh -s syslogd
```


##### 3. errpt エントリーの syslog の出力を確認

AIX を リブートし、errpt にメッセージが出力されることを確認

```
# shutdown -Fr
```

(ここでは リブートでerrpt エントリーが出力されるので、検証のためリブートを実施しています。)


errpt に以下のエントリーが出力されています。

```
# errpt | head
IDENTIFIER TIMESTAMP  T C RESOURCE_NAME  DESCRIPTION
DE84C4DB   0802094122 I O ConfigRM       IBM.ConfigRM daemon has started.
A6DF45AA   0802094122 I O RMCdaemon      The daemon is started.
```

/tmp/syslog/errpt_test.log で errptの出力が記録されたことを確認しました。
対象メッセージのみ抜粋しています。


```/tmp/syslog/errpt_test.log
errpt_test.log:Aug  2 09:41:16 testlpar1 daemon:info src[7602438]: The IBM.ConfigRM subsystem was requested to STARTED by user root
errpt_test.log:Aug  2 09:41:16 testlpar1 daemon:notice ConfigRM[8061208]: (Recorded using libct_ffdc.a cv 2):::Error ID: :::Reference ID:  :::Template ID: de84c4db:::Details File:  :::Location: RSCT,IBM.ConfigRMd.C,1.76,422                 :::CONFIGRM_STARTED_ST IBM.ConfigRM daemon has started.
```

----

#### おわりに

errpt のエントリーが ODM の errnotify を設定して syslog に出力することを確認しました。
errnotify や syslog 設定を変更することで、エラーレベルや出力内容に応じた環境を設定することも可能です。


参考：
　　・[errpt コマンド](https://www.ibm.com/docs/ja/aix/7.2?topic=e-errpt-command)
　　・[エラー・ログ作業](https://www.ibm.com/docs/ja/aix/7.2?topic=overview-error-logging-tasks)
　　・[syslogd](https://www.ibm.com/docs/ja/aix/7.2?topic=s-syslogd-daemon)
　　・[errdemon](https://www.ibm.com/docs/ja/aix/7.2?topic=e-errdemon-daemon)
　　・[エラー通知](https://www.ibm.com/docs/ja/aix/7.2?topic=overview-error-notification)


以上です。