新年あけましておめでとうございます。
年末年始の休暇で、執筆やプログラミングなど色々とやろうと思っていたのですが一家で病に伏していたためでコレしかできませんでした。ほぼ自分用の技メモです。
一般的なサーバの死活監視あれこれ
pingレベルのサーバ死活監視やWebサービスやURL死活監視については、無償/有償のサービスが世の中には沢山あります。例えば監視サービスだと「Site Alert(サイトアラート)」とか「Site Care FREE Ⅱ」とかありますし、最近だとやっぱりHatenaさんの「Mackerel」とかですかね。自前で監視サーバを建てるんなら「Hinemos」なんかもあります。
RTMP接続の死活監視サービスはないの?
現在ストリーミング配信サービスの開発に関わっているのですが、今回やりたかったのがストリーミングサーバの死活監視なので、監視対象のプロトコルはrtmpやrtmpeやrtmptなどです。これらはもともとAdobe社が開発したTCPベースの通信プロトコルで、現在では仕様が「Real-Time Messaging Protocol (RTMP) specification | Adobe Developer Connection」として公開されています。一般的な死活監視サービスでは、この特殊な接続の死活監視をすることができません。
と思ってRTMPの死活監視サービスを探したら、「おっ!」ありました!!
こんなビンゴなの(↓)を発見しました。
が、情報が2年前から更新されておらず新規ユーザ登録もできなくなっていました…orz
う~ん、残念。。やはり自力でやるか…
自前でRTMP接続の死活監視するには?
仕方ないので「rtmpdump コマンド一覧と使い方 : ニコニコ動画研究所」を参考に自力で死活監視する方法を考えてみました。
まず下記のツールを入手します。
今回はWindows版(EXE形式)をダウンロードしました。
次にダウンロードした実行ファイル一式を任意の場所に配置します。
パスを通す必要もなく、コピーのみでOKなのでとても簡単でした。
Jenkinsで監視するプロトコル毎に下記コマンドを定期実行させるJobを作成します。ありがたいことにRTMPDumpはコマンドラインで実行でき、かつ、実行結果をEXIT STATUS(成功:0、失敗:1 or 2)として返してくれるので、実行(死活監視)に失敗した場合のみJenkinsでビルド失敗メールを簡単に飛ばせます。
rtmpdump.exe -r rtmp://localhost/vod/mp4:sample1_500kbps.f4v -o rtmp.f4v
- RTMPE
rtmpdump.exe -r rtmpe://localhost/vod/mp4:sample1_500kbps.f4v -o rtmpe.f4v
- RTMPT(※必ず失敗してしまうので監視対象外としました。Win版だからかな?)
rtmpdump.exe -r rtmpt://localhost/vod/mp4:sample1_500kbps.f4v -o rtmpt.f4v
念のためRTMPdumpの監視接続時に接続数が増えることも管理コンソールで確認しました。とりあえず、これでOKですね。
そんな訳で、マニアックな記事で始まった2015年となりましたが、本年もどうぞよろしくお願いします。