Automatorを組み合わせて、自席に居るときだけサーバーが起動し、離席するとサーバーが停止する仕組みを作ってみます。接点センサーまずはZabbixの接点センサーを設定します。接点センサーのケーブルをA端子と+端子あるいは、B端子と+端子に接続します。(センサーの極性によっては+端子ではなく-端子に接続する場合もあります。)今回利用しているセンサーの場合はA端子と+端子に接続しています。購入ページ接点センサーの開閉回数は積算値です。Automatorでサーバーの起動ジョブと停止ジョブを作成します。ジョブ自体はZabbixのアクションで実行するため、HTTPトリガーで作成します。接点センサーの値は0,1の2値なので、ブール型の整数として登録します。0,1の表示ではわかりづらいので、値のマッピングを利用する事をおすすめします。単純に1,0の最新値を判定すると、接点センサーがすこしズレただけでも敏感に反応してしまうので、300秒間の最小値を判定して5分間継続してセンサーが離れていた場合に検知する用に設定します。停止アクション初めに、障害=5分間以上の離席を検知したらServerを停止するアクションを作成します。Automatorのジョブを実行するだけでメッセージ通知は考慮しないので名前だけつけてアクションの実行条件に進みます。実行条件に先ほど作成したトリガーを追加します。Automatorで作成した停止ジョブのサンプルコマンドをそのままコマンド欄に入力します。起動アクション続いて接点センサーが近づいたら、サーバーを起動するアクションを作成します。停止アクションの時と同じように、名前だけつけて実行条件の設定に進みます。実行条件を障害から正常に変更しトリガーを追加します。することで障害が回復したときに動作するアクションを作成することができます。Automatorの起動ジョブのサンプルコマンドを登録します。2つのアクションが登録できました。接点センサーを近づけたり離したりすることで、トリガーが変化し、Zabbixのアクションが実行されました。Automatorでもインスタンスの起動停止のジョブが動作していることも確認出来ました。Automatorを組み合わせる事で簡単にセンサーによってサーバーを起動/停止できるようになりました。現在は単純な起動停止ですが、スポットインスタンス用にリリースされたハイバーネーションエージェントを組み合わせる事で、作業状態を維持した停止もできるようになるかもしれません。現在はWindowsインスタンスのハイバーネーションをSpotリクエスト以外で動作させる手段がないため、AWSの機能アップデートに期待です。接点センサーの設置場所や形を工夫して扉の開閉検知以外にも、人の在席検知に利用すると面白いソリューションができそうです。201716日目の記事です。2009-引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。