ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Zabbix教わってきた!

2013-08-26 19:03:22 | ネットワーク
Zabbix入門コース行って、Zabbixで監視するために、必要な設定をちょっと教わってきた!

その内容をメモメモ



■今回は、対象じゃないけど、Zabbixのインストールについて

・zabbixサーバーをインストールする
  →サーバーには、DBとWebインターフェースがインストール
・webインターフェースで操作する
  →ブラウザベース

・Webインターフェースの操作
  インストールすると、デフォルトで
    アカウント  Admin
    パスワード  zabbix
  というユーザーが出来ているので、それではいる

・インターフェース言語は
   上のほうにある「プロファイル」で日本語に設定できる




■設定に「ゼッタイ必要な」言葉

Zabbixでは、以下の言葉が設定には、必要だ!
  ・ホスト   監視対象のこと
  ・アイテム  監視項目
  ・トリガー  閾値
  ・イベント  正常⇔異常のインシデント履歴(内部的に発生)
  ・アクション なにをするか:実行条件と実行内容

 ホスト(監視対象)にはいくつかのアイテム(監視項目)があり、
 各アイテムには、トリガー(閾値)を設定できて、
 トリガーが成立すると、イベントが生成され、アクションを実行する




■ホスト(監視対象)の設定

 設定→ホスト名 で「ホストの作成」をクリック

  ホスト名:英字
  表示名:日本語可
  グループ:ホストグループ指定
  インターフェースをえらぶ
  監視対象のIPアドレスまたはDNSを入れる。
    ポート番号も(zabbixデフォルト10050だったかな?)
  ステータス有効で、監視することになる

  保存する




■アイテム(監視項目)の設定

 設定→ホストで、ホスト名一覧が出る

  アイテムを設定したいホストの「アイテム」と書いてあるところクリック

 出てきた画面で「アイテムの作成」ボタンをクリック

 タイプを設定すると、データ収集方法を切り替えられる
 キーで、どういうデータを取ってくるか設定できる
 データ型は、DBに蓄えるために必要
 データ取得間隔や、生データ(ヒストリ)、グラフ用データ(トレンド)の保存期間も
 設定できる

 保存して、データ収集始まる

●ちなみに、ネットワーク監視は、
  キーがnet.if.in[eth0]のような形で、




■監視

 ホストとアイテムを設定すると、アイテム項目の監視ができる。
 監視データ→最新データをみると、監視が出来る。
 グラフ表示も出来る




■トリガー

設定→ホスト でホストの一覧がでる
  トリガーを設定したいホストの「トリガー」をクリック
  出てきた画面の「トリガー」ボタンをクリック
  名前は適当に、深刻度も適当に
  説明、URLは、必須ではない
  条件は

  {ホスト名:アイテムのキー.関数(引数)} = 値

となる。=のところは、= > < #(!=のこと)などがはいる。
この式は、テキストで入力してもよいし、
追加ボタンをクリックすれば、GUIで設定できる。
また、条件式ビルダーをクリックすると、
  AND,OR関係を図示してくれ、
  さらにそこにでてくる「テスト」をクリックすると
   値を入れて、適当に確認できる。

変更すると、一度も評価してないエラーになる

●メッセージングで音を鳴らしたり出来る




■イベント

・設定するものではなく、内部的に出来る

・監視データ→イベントで見える




■アクション

メディアタイプを利用するものと、リモートコマンド形式のものとがある。

メディアタイプを利用する場合は、
   ・アクション(あることがおきたら、メディアになんかする)
   ・メディア(プロファイルに対するメディアタイプ)
   ・メディアタイプ(E-mailとか)
の3種類の設定が必要

・メディアタイプ
  管理→メディアタイプ
    サンプル設定としては3つあるけど・・・

・メディア
  プロファイル→メディアタブ
    追加ボタンをクリックすると、タイプのところでメディアタイプを選択できる

・アクション
  設定→アクション
    デフォルトで入ってくるものがある
    マクロ{}で囲まれている変数。送るときに値が入る




■テンプレートの利用

・ホストにテンプレートをリンクすると、一括適用できる

・設定→テンプレートに、テンプレートがある。これを結び付ける

・設定→ホストで、ホストの一覧を出し、
 ホスト名をクリックすると、出てくる画面のタブに、「テンプレート」がある
  追加をクリックすると、テンプレート一覧がでるので、チェックし、選択ボタン

  保存ボタン




■XMLによるインポート、エクスポート
  テンプレートにチェックをつけて、選択をエクスポートできる




■グラフ

 ホスト→グラフ→グラフ作成で
 別のホストの状況も出せる(テンプレートにはできない)




■その他

・アイテムで、取得に失敗した場合
  今はエラーにならないが、2.2からは、なんかなる
   →ログをみるとわかる

・Zabbixのデータを使って、データマイニングするには
  Zabbix APIを使う

・Zabbixを他の監視ツール(JP1など)で監視したい
  zabbixから、エラーが起きたとき、SNMPトラップを送るようにする

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

設計にテスト要員が関わるべき根拠-テスト観点からエラー処理が設計できるから

2013-08-26 11:10:56 | トピックス
設計にテストの人が関わるといいという話は最近良く聞く。
W字開発の文脈とか、「他の視点を入れる」とかいう意味で。
でも、それ以上具体的な話を聞かないので、今日は、

「なぜ、設計段階で、テスト要員が関わるべきなのか?」

という説明を書きたいと思います。




■正常系

機能設計ではまず、
  ・こういうものが欲しい
  ・それを得るには、こういう入力がいる
  ・だから、このタイミングでこういう入力を入れれば、
   こう出力して、目的を達する
という形をだします。

ここで、
 入力が事前条件、
 出力が事後条件、
 入出力の間でかわらないけど、この処理中に関係があるデータのきまりが
   不変条件となります。

そして、
  正しい入力をしたら(=事前条件が成立するときに)
  目的とする出力が得られる(=事後条件が成立する)
のが、正常系となります。
 なお、一般に、XYが必要だが、事象Aが成立するときはXのみでよい
 など、事後条件は、2種類にも、3種類にも分かれることが有ります。




■異常系

異常系は、
  ・事前条件が成立しない(処理すべきでない)
  ・事前条件は成立し、処理を開始したが、事後条件が成立しないか、問題がある
   場合で、具体的には
      処理を開始したが、終了しない(無限ループ)
      処理を開始し、異常終了した
      処理を開始し、終了したが
          不変条件に違反する
          事後条件が成立しない

というケースになります。
このうち、
  ・事前条件が成立しないのは、入力値が正しくないということで、
   これは、エラーチェックして、エラーメッセージを表示します
     →これは、これは、テスト観点を立ててテストする事項です

  ・処理を開始したが、終了しない(無限ループ)のは、
   無限ループを目的としたプログラムでないかぎり、
   バグです。
     →これは、エラーメッセージを出せません。無限ループしてますから

  ・処理を開始し、異常終了したケースは、アベンドしたケースで2つに分かれます
     バグです:0除算などがコレに当たります
     例外的処理です:通信エラー、DBエラー(DBが繋がらないなど)
       →これは、テスト観点を立てて、結合テストでテストするケースです

  ・処理を開始し、終了したが、不変条件に違反する
     参照例外が発生するケースと、DBの更新矛盾が起こったりする場合です
     DBの更新矛盾
         参照しているデータを更新しようとしたところ(例100円に10円預金追加)
         他の場所で更新されてしまい(10円貯金を引き出し、90円になったのに)
         更新内容を書き出してしまったため100+10=110にした)
         他の場所の更新が消えた(本当は90円+10円=100円なのに)
     これは、更新カウンタの値は変わっていないという不変条件に対して、
     更新カウンタが書き換えられているので、不変条件違反となり、エラーにすべきものです。
       →これは、テスト観点を立てて、結合テストでテストするケースです

  ・事後条件が成立しない
     バグです。



■正常系と異常系をまとめると
結局、こういう形になります

・正常系
・異常系
   事前条件違反:エラーチェックするもの→エラーメッセージ出す
   バグ:もしおこったら「システムエラー」
   例外事象:通信エラー、DBエラー、更新矛盾など→エラーメッセージ出す

そして、事前条件違反と、例外事象に関しては、テスト観点に基づき、
テストすべきものです。




■事前条件違反:エラーチェック

 これは、入力領域に対して、事前条件としている入力値の範囲が狭いため、
(テキスト領域で何でも入るが、本当は、5桁以下の整数しか入力不可)
入力値の範囲以外のものをチェックして、エラーにするもので、

テスト観点を立てて、かならずチェックします。
このテスト観点は、使いまわしできます。

 ちなみに、チェックするプログラムの場所ですが、入力範囲のように、
サーバー情報を参照しなくて良い場合は、クライアント側でできますが、
値がDBに存在するか(ユーザーログインなど)とか、関係が存在するか
など、DB情報を参照する場合は、サーバーでチェックするか、
サーバーからデータを取ってきます(AJAX)




■例外事象

通信エラー、DBエラー、更新矛盾などが存在しますが、

これらは、テスト観点を立てて、かならずチェックします。
このテスト観点は、使いまわしできます。 
 →DBエラー、通信エラーは、似たようなことがおこります。




ということで、エラーメッセージを出すべき、事前条件違反、例外事象に関しては、
必ずテストするので、テストの裏返しといえますが、そのテストをする際に必要な
テスト観点は、使いまわし出来るものなので、テストを多くやっている、テスター
の人のほうが、エラーメッセージをあげやすいということになります。

この点からも、設計段階で、テスト要員が関わるべきといえます。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする