ShinobiLayer: Bare Metal ServerでRAID障害通知設定を確認する(Adaptec編）

#はじめに
以前、以下のような記事を書いたので、その続きみたいなつもりで、RAIDの監視設定について記載します。今回は、AdaptecのRAIDカードが利用されているケースでご紹介します。
http://qiita.com/testnin2/items/e30e75e3399b6ac79101

#Customer Portalでの設定
Account -> Manage -> Subscriptions からRaid Alert Monitoringを選択し、Alertを通知するユーザーに対して**Subscribed**のチェックボックスを選択します。

![RAID_ALERT.jpg](https://qiita-image-store.s3.amazonaws.com/0/62127/5d103ee6-aeec-a1da-a989-cb0a62281867.jpeg)


現在、**RAID Alertの通知先は一人しか選択できない**ようです。複数人を選択すると、以下の警告が出ます。

```text:警告文
Raid alert notifications only allow one active subscriber at a time. The current subscribed user could be other than the users listed here.
```




#サーバー環境の確認

以下のように、/usr/Adaptec_Event_Monitor配下にarcconf以外に監視ツールなどが提供されていることが分かります。

```
# ls -l /usr/Adaptec_Event_Monitor
total 6076
-rwxr--r-- 1 root root 2557915 Jun 27  2014 arcconf
-rwxr--r-- 1 root root     207 Jun 27  2014 cfg.env
-rwxr--r-- 1 root root   16927 Jun 27  2014 configureEmailSettings.sh
-rw-r--r-- 1 root root       2 Apr  9 01:00 Email_Notification_Status.cfg
-rwxr--r-- 1 root root   11334 Jun 27  2014 encrypt
-rwxr--r-- 1 root root   61307 Jun 27  2014 EventMonitor
lrwxrwxrwx 1 root root      31 Apr  9 01:00 EventMonitorService -> /etc/init.d/EventMonitorService
-rwxr--r-- 1 root root  805004 Jun 27  2014 libNRMFSA.so
-rwxr--r-- 1 root root 2573435 Jun 27  2014 libSTORARC.so
-rw-r--r-- 1 root root      23 Apr  9 01:00 Mail_Recipients.cfg
-rwxr--r-- 1 root root     700 Jun 27  2014 NRMConfig.conf
-rw-rw-rw- 1 root root   10694 Apr  9 16:49 NRMFSAConfig.xml
-rwxr--r-- 1 root root   68678 Jun 27  2014 RaidNLS.properties
-rwxr--r-- 1 root root   80213 Jun 27  2014 sendEmail
-rw-r--r-- 1 root root     131 Apr  9 01:00 SMTP_Server_Details.cfg
```

サービス登録されているっぽいので、確認してみます。

```
# chkconfig --list | grep -i event
EventMonitorService     0:off   1:off   2:on    3:on    4:off   5:on    6:off

# service EventMonitorService status
Adaptec Event Monitor (pid 26447) is running...

# ps -ef | grep -e PID -e 26447 | grep -v grep
UID        PID  PPID  C STIME TTY          TIME CMD
root     26447     1  0 Apr09 ?        00:15:27 EventMonitor


```

#設定ファイルの確認

以下のファイルが利用されているようです。User_Details.cfgは該当ディレクトリ配下には存在しませんでした。以下、順に見ていきましょう。

```text:/usr/Adaptec_Event_Monitor/cfg.env
export CONFIG_FILE_SMTP=SMTP_Server_Details.cfg
export CONFIG_FILE_USER=User_Details.cfg
export CONFIG_FILE_RECIPIENTS=Mail_Recipients.cfg
export EMAIL_NOTIFICATION_STATUS_FILE=Email_Notification_Status.cfg
```

##SMTP_Server_Details.cfg
SMTPサーバーの構成情報が含まれます。ここで、気をつけなければいけないのは、**初期設定のSMTPサーバー（raidalerts-smtp.networklayer.com）は、public NW上に存在する**ということです（なぜそうなっているの？と言われても、このあたりのSoftLayerのセンスは私にもよく分かりません。private経由の方がありがたいのですが、多分Ticketで聞いても満足な回答はもらえないでしょう。。。）。つまり

* public NICがdownしていたら通知はされない。
* private onlyのサーバーではデフォルトで通知はされない。 

というのがデフォルトの構成のようです。

```text:/usr/Adaptec_Event_Monitor/SMTP_Server_Details.cfg
SMTP_SERVER=raidalerts-smtp.networklayer.com
SMTP_PORT=25
FROM_MAIL_ID=<AccountID>_<MACADDRESS>@softlayer.com
USE_SECURE_MAIL_SERVER=no
```
```
# ping -c 3 raidalerts-smtp.networklayer.com
PING raidalerts-smtp.networklayer.com (66.228.118.25) 56(84) bytes of data.
64 bytes from mx.softlayer.com (66.228.118.25): icmp_seq=1 ttl=56 time=214 ms
64 bytes from mx.softlayer.com (66.228.118.25): icmp_seq=2 ttl=56 time=214 ms
64 bytes from mx.softlayer.com (66.228.118.25): icmp_seq=3 ttl=56 time=213 ms

--- raidalerts-smtp.networklayer.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2216ms
rtt min/avg/max/mdev = 213.694/214.030/214.299/0.251 ms

# nmap -sT -PN raidalerts-smtp.networklayer.com -p25

Starting Nmap 5.51 ( http://nmap.org ) at 2015-04-09 16:55 CDT
Nmap scan report for raidalerts-smtp.networklayer.com (66.228.118.25)
Host is up (0.19s latency).
rDNS record for 66.228.118.25: mx.softlayer.com
PORT   STATE SERVICE
25/tcp open  smtp

Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds

```

多くの人がこの構成には不満であり、Private NW経由での通知をしたいという希望があるかと思います。Private経由で通知するためには、

1. `raidalerts-smtp.networklayer.com`の代わりに`smtp102.service.softlayer.com`に置き換える。
2. FROM_MAIL_IDのMACアドレスがPublic側になっているハズなので、これをPrivate側NICのMACアドレスに置き換える。例えば、Private側のbond0のMACアドレスが`00:25:90:1E:EA:71`であれば、`xxxxx_0025901eea71@softlayer.com`と設定する。
3. 監視サービスを再起動する。(`# service EventMonitorService restart`)

注）こんなことなら、いっそのことSendGridや自分で構築したSMTPサーバーを利用するよ！っていう人もいるかもしれません。確かに、SoftLayer提供のSMTPサーバーに転送しないと、SoftLayerの内部の人がアラートを検知できません。とはいっても、結局ユーザー側でも何が起こっているかを確認したりしたいケースも多いので、自前のSMTPサーバーに転送して確実に通知を受けて、その結果を元にSoftLayer側に問い合わせる運用スタイルでも良いと思います。

```
# ping -c 3 smtp102.service.softlayer.com
PING smtp102.service.softlayer.com (10.0.80.82) 56(84) bytes of data.
64 bytes from 10.0.80.82: icmp_seq=1 ttl=56 time=201 ms
64 bytes from 10.0.80.82: icmp_seq=2 ttl=56 time=201 ms
64 bytes from 10.0.80.82: icmp_seq=3 ttl=56 time=201 ms

--- smtp102.service.softlayer.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2203ms
rtt min/avg/max/mdev = 201.107/201.125/201.153/0.366 ms

# nmap -sT -PN smtp102.service.softlayer.com -p25

Starting Nmap 5.51 ( http://nmap.org ) at 2015-04-28 02:30 CDT
Nmap scan report for smtp102.service.softlayer.com (10.0.80.82)
Host is up (0.19s latency).
PORT   STATE SERVICE
25/tcp open  smtp

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds

```


##Mail_Recipients.cfg

宛先メールの情報が含まれるようです。`hwraid@softlayer.com`というユーザーに通知されます。

```text:/usr/Adaptec_Event_Monitor/Mail_Recipients.cfg
hwraid@softlayer.com,W
```

本来は、ここには複数設定可能のようです。例えば、

```
hwraid@softlayer.com,W
xxxx@xxx.xxx.com,I
yyyy@yyy.yyy.com,E
```

など。I/W/Eの意味は、

```
I: Error, Warning & Informational
W: Error & Warning
E: Error
```

のようです。実験してみたところ、SoftLayerのSMTPサーバーにはhwraid@softlayer.comしか登録されていないので、これ以外のメールは`550 relay not permitted`が出て届かないようです。なので、デフォルトの`hwraid@softlayer.com`以外を登録しても、SoftLayerのSMTPサーバーは受信しません。もし、自前のSMTPサーバーに転送する場合は、ここに複数記述可能です。

##Email_Notification_Status.cfg

```text:/usr/Adaptec_Event_Monitor/Email_Notification_Status.cfg
1
```

この意味は以下のようです。当然デフォルトの1のままにしておきます。

```
1: 通知する。
0: 通知しない。
```

#テストメールを送付する
/usr/Adaptec_Event_Monitor/configureEmailSettings.shを実行すれば、ここで紹介した設定ファイルを変更したり、テストメールを送付することができるようです（設定変更は直接ファイルを編集した方が楽だと思いますが）。テストメールを実際に送付したらSoftLayer内部の人達も何事かと騒ぎ出して、Ticketが飛んでくるので、「テストしてただけだよ」と回答してあげましょう。
また、ちゃんとメールが飛んでいるかどうかのチェックがしたい場合は、下記手順中で`./configureEmailSettings.sh`ではなく、`bash -x ./configureEmailSettings.sh`にして、デバッグ情報を確認した方がより分かりやすいでしょう。
（注）通知連絡が一晩待たされたこともあるので、気長に待ちます。。。

```
# cd /usr/Adaptec_Event_Monitor/
# ./configureEmailSettings.sh


SMTP Server Configuration Utility
---------------------------------

Choose any of the following options:
-----------------------------------------------------------------------------
1) Enable Email Notification                  2) Disable Email Notification
3) Get SMTP Server Details                    4) Set SMTP Server Details
5) Get Recipient Information                  6) Set Recipient Information
7) Update Recipient Information               8) Delete Recipient Information
9) Send Test Email                           10) Exit
-----------------------------------------------------------------------------


Enter your choice: 9

Send Test Email:
----------------
Enter recipient e-mail address: hwraid@softlayer.com

```

#おまけ
/var/log/messagesにRAID Controllerの情報が出力されているので、ここを監視することでもエラー検知は可能かもしれません。