OSの通知をNextcloudに送る機能を使って、実際にOSの通知を送信してみます。

今回は、Ubuntuに搭載のソフトウェアRAID機能を提供する「mdadm」で発生するイベントをNextcloudに通知します。

実装

イベント発生時に呼び出すスクリプトを準備します。

sudo vi /root/sh/mdadm.sh
#!/bin/bash
#
# mdadm RAID health check
#
# Events are being passed to xmessage via $1 (events) and $2 (device)
#
# Setting variables to readable values
event=$1
device=$2

/root/sh/nextcloud_notification.sh "mdadm event: $1 on $2"
sudo chmod +x /root/sh/mdadm.sh

mdadmから先ほど作ったスクリプトを呼び出すconfigを書きます。

sudo vi /etc/mdadm/mdadm.conf

"ARRAY"から始まる行の次に下記を追加

PROGRAM /root/sh/mdadm.sh

動作確認

"TestMessage"イベントを発生させます。

sudo mdadm --monitor --scan --test

Nextcloudに次のような通知が届けば成功。

mdadm event: TestMessage on /dev/md/0

テストコマンドで下記が表示される場合、すでにmdadm --monitorが実行済みです。(通常はこちら)

mdadm: Only one autorebuild process allowed in scan mode, aborting

後で再起動して良ければ、すでに動作しているmdadmプロセスを落として、再度テストコマンドを実行すると届きます。

sudo ps -x | grep mdadm

表示されたmdadmをkillコマンドで終了して再度テストコマンドを実行してください。

届くのを確認したら、OSを再起動してください。

再起動後、下記を確認し、mdadm --monitorプロセスが存在していることを確認してください。

参考資料

mdadmを用いたソフトウェアRAIDの管理 - Qiita #RAIDアレイのモニター

Using mdadm to send e-mail alerts for RAID failures | Support | SUSE