SlideShare a Scribd company logo
1 of 12
Download to read offline
プロセス監視webサービス
自己紹介
成田 建(なりた たける)
エンジニア活動
https://github.com/narita-takeru
個人情報
https://www.facebook.com/naritakke.a
生年月日:1986/07/17
プログラマ歴:19歳くらいから
Ruby大好きです(でもガチ勢じゃないです)
最初の数年:SIerで、テスター兼プログラマ(組込、業務系)
その後:webエンジニアに転身
その後:フリーランスに転身
今ここ
NurseCallとは
プロセスが
・動いているかを確認できる
・動いていたかを確認できる
・動いてなさそうならアラートを飛ばす
サービスです。
2016年末、作りました
作った背景
バッチ処理を実装 & リリースする。
cronから起動される。
動いてるか知りたい。
厳重にセキュリティが守られたサーバ上で動いている。
簡単には入れない(しかも私、業務委託の身)。
インフラメンバーに確認してもらう?
相手の手間を取らせる & 相手の都合もあるので、
カジュアルに確認できない。
本当に動いているか不安。。。
こんな悩み、解消したい!
解決策1. DBを見る?
何かを必ずINSERTするようなバッチであればok。
何かのデータを条件絞って更新するようなバッチだったら、
何かがINSERT or UPDATEされるまで、
自分がポーリングし続けないといけない。
メール送信系のバッチだったら、自分の本番アカウントが
条件に引っかかるとは限らない。
社内に、条件に合うアカウントがあったらラッキー。
全ユーザーを見ていく系だった場合、
自分が処理されるまで待たないといけない。
待ちたくない。拘束されたくない。今すぐ動いてるか見たい
解決策2. どこかに起動・終了を通知する?
そりゃ、実装すれば何でも出来る。
それにしても、
・どこに通知する?(slack?
・全プロセスの起動・終了を通知する?(大杉…
・誰が実装すんの?
・工数もらえるの?
・面倒は誰が見るの?
・プロジェクトAで何とか実装。でも
プロジェクトBではまた仕組みを作らないといけない。
(フリーランスは常駐してる会社自体が変わる可能性があります)
色々決めないといけない。面倒くさい
解決策3. よし、サーバ見に行こうか
みたいな、お決まりの寸劇・茶番を毎回したくない
そもそも、ルール上、サーバに入れなかったりする
・あれ、バッチサーバのIPなんだっけ
・えーっと、IP書いたドキュメントどこだっけ…
・あれ、ssh入れない(あ、ゲートウェイ変わったのか)
・接続!(間違えた、こっちstage環境だったorz
・ $> pgrep hogehoge (あれ、プロセスおらん。。。
・ $> rm -rf / (あっぶね、、、
・ $> vim /var/log/cron (権限ないお (^o^)/
・ $> vim /(バッチのログ).log (えっと、何時起動やったっけ。。。
・あ、正常に終わっとるやんけ (͡∼͡)ニンマリ
NurseCallとは
そこで、プロセスの生存確認を、いつでもどこでも
できるように、webサービスにしました。
よくある監視系のサービスでは、ホスト単位で
・CPU
・メモリ
・HTTPの疎通
の監視項目がありますが、
NurseCallは、プロセス単位で
・どのような状態か
の一点のみ、監視します。
(機能追加するかもですが)
ホストが違っていても、横断的に一覧画面で確認できます。
今までのcrontabを
* * * * * /srv/cron/batch.sh
から
EXPORT NURSECALL_CALL_TOKEN=hogehoge
* * * * * nursecall /srv/cron/batch.sh
とするだけ。
nursecallというエージェントコマンドでwrapするだけ。
$> nursecall example.sh
Start
Executing
example.sh
(This is child process
of nursecall.)
Done or Error
https://nursecall.io
(This is process monitoring
web service.)
1 minutes
interval.
1. Notice process start.
2. Notice heartbeat.
3. Notice process done
or error.
Start Executing Done
ErrorEmergency
Emergency
(Get on work)
Close
Unknown
If break off
heartbeat,
State is change to
Emergency.
Sorry,
If nursecall.io is internal server error.
or Maintenance.
State is change to Unknown.
Notice for your mention on
slack forever.
Until get on action.
interval is 1 minutes.
Click GetOn button
Click Close button
Nursecall

More Related Content

Similar to Nursecall

DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
Akihiro Kuwano
 
やさしいGit hub
やさしいGit hubやさしいGit hub
やさしいGit hub
Shintaro Abe
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
yuzorock
 

Similar to Nursecall (20)

1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門1分で分かる SoftLayer 監視入門
1分で分かる SoftLayer 監視入門
 
ご注文は監視自動化ですか?
ご注文は監視自動化ですか?ご注文は監視自動化ですか?
ご注文は監視自動化ですか?
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話
 
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
2015年GMOペパボ新卒エンジニア研修 Webオペレーション研修イントロダクション
 
Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)Serverless Framework 使ってる話(node.js)
Serverless Framework 使ってる話(node.js)
 
インタフェースのこころ
インタフェースのこころインタフェースのこころ
インタフェースのこころ
 
インフラ自動化とHashicorp tools
インフラ自動化とHashicorp toolsインフラ自動化とHashicorp tools
インフラ自動化とHashicorp tools
 
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
 
リファクタリングで実装が○○分短縮した話
リファクタリングで実装が○○分短縮した話リファクタリングで実装が○○分短縮した話
リファクタリングで実装が○○分短縮した話
 
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
 
Fukuokaphp vol12 talk_20140225
Fukuokaphp vol12 talk_20140225Fukuokaphp vol12 talk_20140225
Fukuokaphp vol12 talk_20140225
 
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
Javaアプリサーバとりあえずの監視 第二回 渋谷Java #shibuya_java
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治
 
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
Rancher meetuptokyo #4 Vagrant でつくる Rancher HA構成
 
やさしいGit hub
やさしいGit hubやさしいGit hub
やさしいGit hub
 
hbstudy#6LTyuzorock
hbstudy#6LTyuzorockhbstudy#6LTyuzorock
hbstudy#6LTyuzorock
 
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめコロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
コロナ時代を生き抜く(?) Slackアプリ開発・運用知見まとめ
 
ruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリruby、sinatraで作るfacebookアプリ
ruby、sinatraで作るfacebookアプリ
 
Vagrant勉強会アップロード用
Vagrant勉強会アップロード用Vagrant勉強会アップロード用
Vagrant勉強会アップロード用
 
RustでWebAssembly
RustでWebAssemblyRustでWebAssembly
RustでWebAssembly
 

Nursecall