※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

ざびたんとは?

ざびたんはサーバ監視の妖精さんを「伺か」の力を借りて「見える化」したものです。

ざびたんのソフトウェアスタック

ざびたんに来てもらうためには、以下のソフトウェアが必要です。
  • Zabbix Server、Zabbix Agent
    • すでに Zabbix を使用したサーバ監視システムが構築されていることを前提とします。
  • 伺か(SSTPサーバ)
※現状では SSP を使って Windows クライアントで検証を行っていますが、伺かには ninix という Linux 用クライアント(しかもDebianには公式パッケージあり!)があるので、いずれ Debian にも対応する予定です。(←誰かやってくれると助かります^^;)

それぞれの資料は以下にまとめていますので、合わせて御覧ください。

基本的な仕組み

「伺か」は、偽AIによってユーザと対話するデスクトップマスコットです。
「伺か」上のキャラクターは「Ghost」と呼ばれ、Ghost の会話内容や各種命令は「SAKURA Script」という独自のスクリプトによって記述されています。
またこのスクリプトには、「SAKURA Script Transfer Protocol(SSTP)」というデータ転送用のプロトコルが定義されており、これを送りあうことで Ghost との間のコミュニケーションが可能になり、 Ghost に任意のセリフを話してもらったり、音声ファイルを再生してもらったりすることができます。
ざびたんは、Zabbix Server もしくは Zabbix Agent から送られてきた SSTP をクライアント PC 上の伺かで受け取って、画面にセリフを出したり、歌を歌ってもらったりしています。
※ちなみにSSTPが使用しているポート番号9801はIANAが定める予約ポートにも登録されているので、ポートのバッティングを気にせず安心してお使いいただけます。
 ソース: http://www.iana.org/assignments/port-numbers

SSTP の仕様

SSTP の仕様は、伺か Ghost の開発者向けの情報が網羅されている Ukadoc Project を見てもらうのが一番いいと思います。
ただし、Ghost 同士の内部アクセス、ローカルアクセス、リモートアクセスでは、実行できるスクリプトの種類に違いがあるようなので、そこは注意が必要です。こちらは鋭意調査中です。
この違いがあるために、ざびたんは次に説明する2つの SSTP 送信方法を使い分けています。

SSTP 送信の2つの仕組み

SSTPを送信するに当たっては、以下の2つの方法を使っています。
1)直接、Zabbix Server から SSTP 送信
2)SSPが起動しているWindows PC 上の Zabbix Agent 経由でSSTP送信

2種類の方法があるのは、1のようにリモートから SSTP を送った場合は実行できないスクリプトがあるためです。2の方法を使った場合は、ローカルからの SSTP 送信となるので、その制限を回避できます。私が試してみた限りでは、たとえばアラート時にCV付きでアラートを出してもらう(音声ファイルを再生してもらう)は、2の方法でないとうまくいきませんでした。
※音声ファイルを再生するかどうかを一度 Ghost に質問させてから再生するようにした場合は1でも音声ファイルを再生することができました。この仕様については現在調査中です。

現在の実装

現在は上の2でざびたん本体を動かし、Zabbixを経由しないメッセージは1で受信するというように2パターンを併用して実装を進めています。
2を使っているのは、リモートコマンドを使った方がサーバ側の設定変更を最低限に抑えることができ、クライアント側での自由度が高い(何でもコマンドを実行できる)からです。クライアントで実行するスクリプトの中に、ZabbixへのAPIアクセスを組み込んでおけば複数のトリガーや監視データを取得した上でメッセージを表示することもできます。(時間帯や障害復旧にかかった時間でメッセージを変えるという案も出ています)
ただ、2は管理用のPCでリモートコマンドを実行可能なAgentを動かす必要があるので、セキュリティ上の不安があります。しかし、ほとんどの場合、管理用PCは外部ネットワークからアクセスできないところにあると考えられるのでそんなに問題にならないだろうとの判断しています。

また1は、Zabbixを経由せず、Zabbixサーバ以外からメッセージを受信したい時に使っています。具体的には、Linuxの地デジ録画システムの「epgrec」を入れたサーバから番組情報を定期配信(cronにスクリプトを仕込んで「epgrec」のDBから番組情報をSSTP送信)するのに使っています。ざびたんにepgrecたん(仮)からお手紙が来るイメージですね! この方式はZabbixの監視に引っ掛けにくいアプリケーションからの通知に使えると思っています。


名前:
コメント: