4 min read

Zabbixのためにパトライトを買った

うちでは物理鯖やVM鯖の監視にZabbixを使っている。
各鯖の障害発生時などにはSlackに通知が行くようにしているが、あとで対処しようなどと考えていると忘れることが多々あった。
また、連続でいくつもの障害通知が来ると果たして今総合的にはどのレベルの障害が続いているのかを把握することが難しかった。

そこで前々から気になっていた障害通知の視覚的確認手段としてパトライトの購入を決意した。
HTTP経由でライトを光らせられるもので有名なものはパトライト社の NHP-3FB1 というものだった。
検索してみると今は後継機種である FB2 が出ているようだが、機能的に差はないように感じた。(型番の命名が統一されただけ?)

早速ヤフオクで検索してみると未使用品が1点だけ出品されており、8,000円だった。
一応オークション終了間近に入札し、無事に落札。

型番の意味
NH{1}-{2}FB{3}{4}-{5}

正規表現で表すと
/NH[SPL]-[1-5]FB[1-2]N?-((R\/Y\/G)|(RY\/RG)|RYGB?C?)/
1 2 3 4 5
サイズ
S=Φ25
P=Φ40
L=Φ60
段数
1~5段
表示灯種類
1=NHS
2=NHP, NHL
ACアダプタ
なし=アダプタあり
N=アダプタなし
LED色
1段: 赤/黄/緑
2段: 赤黄/赤緑
3段: 赤黄緑
4段: 赤黄緑青
5段: 赤黄緑青白

着弾

ツイートはすでに設置して実際に動作確認が取れたところ。

kwsk

取説やファームウェアはパトライト社に会員登録をしないと取得できないようになっている。
が、取説に関してはググるとふつうにPDFが出てくる。
FB2用に見えるがFB1でも同じ。というかのちに会員登録して探したがFB1のものはなかった。

リセット

「VolumeスイッチをOFF、CLEARとTESTを押しながら電源コード接続」という手順でリセットできる。

LAN接続

この機種はどれもDHCPが正常に動作しないらしい。
そのため初期IPである 192.168.10.1 にアクセスして固定IPに設定し直してやる必要がある。
別にルーターの設定などを変える必要はなく、物理的な同じLAN内に接続したPCのIPを 192.168.10.2 とかにしてあげてIP直打ちすればいける。

初期設定

初期パスワード patlite でログインして、まずはファームウェアのバージョンを確認する。
現時点では 1.46 が最新なので、そうでない場合はパトライト社に会員登録して最新のファームをDLしてアップグレードさせる。
私は 1.45 だったので会員登録せざるを得なくなった。

システム設定からIP固定をする。

次にNTP設定をする。
まず「手動時刻設定」ボタンで見ているブラウザの時刻を強制的に同期させ、あとはNTPで誤差を修正してもらうように設定した。

基本的な設定はこれで完了。
最初からHTTP経由でのライト操作は有効化されていた…はず。

Zabbixとの連携

Zabbixで障害を検知した時、その障害の深刻度に合わせて光る色を変える設計にする。
具体的には以下のような色の具合だ。

  • 緑: 未分類, 情報
  • 黄: 警告, 軽度の障害
  • 赤: 重度の障害, 致命的な障害

Slackへの通知と同じようにメディアタイプのWebhookを使ってパトライトのHTTPを叩く。
テキトーに作ったWebhookスクリプトは以下。

zabbix-media-types/Patlite.yaml at master · sugtao4423/zabbix-media-types
Contribute to sugtao4423/zabbix-media-types development by creating an account on GitHub.
HTTPコマンドリファレンス
  • Method: GET
  • BaseURL: http://<IP address>/api/control
  • Parameters: alert=[01239]{5}[012349] or clear=1
  • Response: Success. or Error.{ErrorCode}

alert
表示灯とブザーを制御します。
R (赤) Y (黄) G (緑) B (青) C (白) Z (ブザー) の順にパターンを指定します。
[RYGBC]: 消灯 0, 点灯 1, 点滅1 2, 点滅2 3, 変化なし 9
[Z]: 消音 0, ブザーパターン 1~4, 変化なし 9

clear
表示灯の消灯とブザーの停止をおこない、通常動作状態にします。

ErrorCode Detail
001 対応していないメソッドです。
002 不正なパラメータ名です。
003 パラメータが指定されていません。
004 パラメータ値が指定されていません。
005 不正なパラメータ値です。

なお障害復旧通知時には全体的にどの障害が発生しているのかわからないため、別途ZabbixのAPIを叩いて障害の一覧を確認する設計になっている。

これを以下の流れで登録し障害通知時のライト自動化をさせる。

  1. 「メディアタイプ」にインポート
  2. ユーザーの「メディア」に設定
  3. 「通知」→「アクション」→「トリガーアクション」を新規作成して「実行内容」「復旧時の実行内容」に設定

おわり

かなり簡単に障害を可視化することができるようになり、とても良い買い物をしたと思う。
元々8万円ほどするらしいが、それが未使用品で8千円で転がっていたのは運がよかった。

設置してから1ヶ月経ったがやはり障害をすぐ認識できるようになり、対処までの速度が上がったように感じる。
やはり明確に視界に訴えることが大事!
みんなも障害確認を怠らないようにしよう!

参考