[システム監視][fedora]ノートPCから警告音を出すスクリプトを書いた


日夜システム運用に携わる皆様、こんにちは。アラートに起こされ眠れない夜が続いていませんか?しかし、アラートに気づかず障害が深刻化するのはもっといただけません。アラートメール受信でスマホから音は出るのですが、正直あまりそれで起きないでしょう?だったらノートPCから音を出してしまえ、ということで ALERT_SOUND  をリリースしました。再生デモはこんな感じです。

※ 音量注意 (かなり大きい音がします (;´Д`) ゴメンナサイ)

■ 想定している環境

OS、ディストリビューション:

fedora23

ハードウェア:

パソコンにスピーカーがついていて、音が出ること

その他:

Dropboxをマウントしておくと何かと便利かと。

音を出す仕組みとしてmpg321を、mp3ファイルの編集にffmpegを、音量調整にalsa-utilsを使用していますが、これらのパッケージがインストールされていなければ、ALERT_SOUND初回実行時にインストールされます。

■ 音が出る条件

フラグ格納ディレクトリ (デフォルトでは /home/ユーザー名/Dropbox/APPS/ALERT_SOUND/FLAGS/ )にトリガーファイル「TRIGGERFILE.txt」が存在し、かつ、同じディレクトリに「stop.txt」がなければmp3ファイルを再生します。

今回、mp3ファイルはフリー効果音素材 くらげ工匠さんのサイトにいい感じに禍々しい警告音があったので、それを使わせていただくことにしました。しかも、うちのノートPCはスピーカーがショボいので、わざわざmp3ファイルをffmpegで編集してボリュームを上げています。爆音です。しかも、スピーカーをミュートしてもわざわざボリュームを上げてから実行するという鬼畜っぷりです。

というわけで実行してみましょう。

ALERT_SOUND trigger
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3.
Version 0.2.13-2 (2011/03/27). Written and copyrights by Joe Drew,
now maintained by Nanakos Chrysostomos and others.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!

Directory: /home/hamada/Dropbox/APPS/ALERT_SOUND/SOUNDS/
Playing MPEG stream from warning04.mp3 ...
MPEG 1.0 layer III, 64 kbit/s, 44100 Hz stereo

[0:01] Decoding of warning04.mp3 finished.
(中略)

2016/04/05	09:38:30	ALERT_SOUND	Trigger is pulled.

けたたましい警告音とともに上記メッセージが表示され、
/home/ユーザー名/Dropbox/APPS/ALERT_SOUND/LOGS/今日の日付_ALERT_SOUND.log にログが記録されていればOKです。

なお、引数なしで実行するとヘルプが表示されますので、使える引数かこれで確認してください。

[ (っ´∀`)っ@ぽぽぽ ~]$ ALERT_SOUND
USAGE: ALERT_SOUND <test|trigger|clear|mute|forcemute>

引数 mute をつけて実行すると、/home/ユーザー名/Dropbox/APPS/ALERT_SOUND/FLAGS/stop.txt を生成します。このファイルを削除しない限り、 trigger 引数をつけて実行しても音は鳴りません。ただし、test 引数をつけて実行した場合は、 stop.txt があっても音を鳴らすようにしています。

引数 clear をつけて実行すると、 stop.txt を削除します。

引数 forcemute をつけて実行すると、スピーカーのボリュームをミュートさせます。まあ、その後 trigger 引数をつけて実行すれば爆音なんですけどね。

これで家にいれば風呂に入っていても監視警告音に気づくという鬼畜素敵システムができました。あとは適当に、メール着信や監視プログラムをトリガーにしてトリガーファイルを生成するようにして、 ALERT_SOUND を毎分cronで動かすようにしておけばよいでしょう。

[amazonjs asin="B01AO0ZQLI" locale="JP" title="ソフトウェアデザイン 2016年 04 月号 雑誌"]