2010年3月31日水曜日

Zabbix 1.6.9のリリース

Zabbix 1.6.9がリリースされてます。

今回の修正はセキュリティフィックスがメインで、リリースノートには以下の2つが記載されています。

  • [ZBX-2062] 複数アイテムのリカバリメッセージの送信処理を修正
  • [ZBX-1030] Zabbixサーバが認証されていないユーザからのスクリプト実行を許可してしまうセキュリティ脆弱性を修正。Nicobに感謝

ただ、Subversionのコミット履歴を追っていくと、リリースノートには1.6.8がリリースされた2009/12/07から2010/01/18までの以下の5件の修正が記載されてませんでした。せっかくなので翻訳しておきます。

  • [ZBX-1063] zabbix_agentdのログレベルに指定可能な最大値のチェック処理を修正
  • [ZBX-1544] ダッシュボードにすべてのノードからのディス化なりが表示される問題を修正
  • [ZBX-1539] フルスクリーンモードにした際にグラフの表示時間がリセットされる問題を修正
  • [ZBX-1470] 名前に「:」が含まれるトリガーをインポートした際の問題を修正
  • [ZBX-1530] スクリーン画面でダイナミックアイテムを使用したシンプルグラフをクリックした際に間違ったホストが選択される問題を修正

2010年3月17日水曜日

Zabbix 1.8の新機能

このところZabbix 1.8の新機能の紹介や説明を行うことが多くなってきたのでまとめておきます。Zabbix 1.8.1で追加された機能も含めておきます。

UTF-8対応

マルチバイトに正式対応されました。表面的には1.6と変わらない部分も1.8でソースがまるごと書き換えられている箇所もあります。一番大きいのはログ/イベントログのマルチバイト対応でしょうか。以下のようにアイテムのキーにオプションが追加されています。

  • log[ファイル名,検索文字列,エンコード]
  • eventlog[イベントログ名,検索文字列,エンコード]

パフォーマンスの改善

データベースキャッシュモジュールが追加され、ZabbixサーバやZabbixプロキシサーバがデータをデータベースに書き込む処理のパフォーマンスが改善されています。

1.6ではpollerなどの各プロセスが個別にデータベースにコネクトしていたのが、1.8ではデータベース書き込み用のプロセスが作成されました。キャッシュモジュールの設定はzabbix_server.confやzabbix_proxy.confの以下の項目で調整できます。(以下はデフォルト値)

  • CacheSize=8M
  • CacheUpdateFrequency=60

メンテナンス期間の機能

メンテナンス中の監視の停止をスケジューリングする「メンテナンス」機能が追加されています。期間はワンタイムだけでなく時間、曜日、日にちなどを指定して繰り返し設定を行うことができます。

また、メンテナンス中は以下の2つから動作を選択することができます。

  • 監視データは受信、アクションの実行を行わない
  • 監視データを受信しない

正規表現機能

複雑なログ監視文字列をユーザ定義の正規表現として作成できる「正規表現」機能が追加されています。たとえば、「Error」と「Warn」の両方が含まれていて「AAA」が含まれていない場合、といった条件式を作成することができます。作成した正規表現をテストする機能もあるので、設定ミスの防止や文字列判定のテストにも効果があります。

自動登録機能

Zabbixエージェントがインストールされたサーバを自動的に監視対象に追加するための機能です。Zabbixエージェントはアクティブチェックが有効になっている必要がありますが、1.6以前にもあったディスカバリとは異なり、Zabbixエージェントから通信が発生したときに登録される仕組みなので、Zabbixサーバ側から定期的にPingなどで探索する必要がありません。

登録時にはホスト名などを条件にテンプレート適用が行えるので、大規模システムではホスト登録の手間が削減できます。

ユーザ定義マクロ機能

Zabbix全体、ホスト、テンプレート単位でユーザ定義のマクロを設定することができます。マクロはアイテムのキーやトリガーの条件式で利用できるので、以下のように利用することで、同じテンプレートを利用しつつホストごとにアイテムのオプションやトリガーの閾値を変えることができるようになりました。

  • テンプレートでトリガーの条件式を「{hostname:item[param].func}>{$USER_MACRO}」のように設定する
  • ホスト単位のマクロで「{$USER_MACRO}=10」のように設定する

エージェントレス監視

SSHとTelnetを利用したエージェントレス監視のアイテムが追加されています。SSHやTelnet接続でログインして、アイテム設定画面で設定したコマンドを実行してその結果を監視することができます。

API機能

JSON-RPCを利用したAPI機能が追加されました。API経由で監視設定を行ったり、監視データを取得することができます。まだAPIが用意されているだけなので、実際に操作するユーザインターフェースは別途開発する必要があります。

Zabbix本体とは別プロジェクトでRubyを使ったAPI用コマンドラインツール「Zabcon」が開発されています。たとえば以下のような形式でコマンドラインから設定情報を取得することができます。

+> get user
User result set
+--------+-------+
| userid | alias |
+--------+-------+
| 1      | Admin |
| 2      | guest |
+--------+-------+
2 rows total
  • Zabcon: http://trac.red-tux.net/wiki/zbx_api/interactive

APIはTechnical Preview、Zabconはまだ開発が始まったばかりという状況なので、仕様変更やバグが多く実際に実運用環境で利用できるまでにはまだ時間がかかりそうです。

マップの改善

マップ設定がドラッグアンドドロップで行えるようになっています。また、マップ画面ではアイコンの背景に障害の深刻度で色を表示できるようになったので、障害の発生がより分かりやすくなりました。

スクリーン設定画面の改善

スクリーン設定がドラッグアンドドロップでセルを移動したり、行と列にセルを追加削除できるようになりました。

グラフ表示の変更

表示形式が全面的に変更され、見た目や操作も大きく変わっています。フォントにアンチエイリアスを使うようになっており、ソースからインストールした場合はフォントを自身で入れて設定を行う必要があります。ZABBIX-JP版のRPMにはフォントを含めた状態で配布しています。

メニューやホスト画面の変更

メニューが変更され、1.6では独立していたアイテム、トリガー、グラフのメニューがホストに移動されました。その代わりにホストグループがサブメニューに昇格しています。

それにあわせてホスト設定画面も変更され、アイテム、トリガー、グラフの各設定画面へのショートカットができていたり、複数テンプレートをリンクしても画面が横に長くならないようになっています。

アイテムのフィルタ機能

アイテムのフィルタ機能が大幅に強化され、様々な条件で絞り込みを行うことができるようになっています。

トリガー画面の表示変更

トリガー画面(現在の障害一覧画面)でイベントを表示した際に、トリガーごとの折畳み機能や障害対応コメント一括処理機能が追加されています。

バーグラフ機能

複数の監視データを利用して比較や分布を見ることができるバーグラフ機能が追加されています。いまのところ設定を保存することはできないため、都度作成する必要があります。

トリガー条件式作成補助機能

複雑なトリガーの条件式を設定する際に、条件式を分かりやすく表示できるようになりました。入力補助機能も追加されています。また、ログ監視の場合はアイテム一覧画面にログ監視用のトリガー入力画面へのショートカットが表示されるようになっています。

Web監視がBasic認証に対応

Web監視がBasic認証に対応しました。

監視機能の強化

以下のZabbixエージェント用アイテムのキーが追加されています

  • net.tcp.dns.query: DNSクエリを発行した結果の文字列監視

また、これまであったicmpping(ping監視)のキーも種類が増え、利用できるオプションが追加されています。

  • icmpping[<,packets><,interval><,size><,timeout>]
  • icmppingsec[<,packets><,interval><,size><,timeout><,mode>]
  • icmppingloss[<,packets><,interval><,size><,timeout>]

Zabbix 1.8.1の機能追加

Zabbix 1.8.1では以下の2つの機能が追加されています。

  • 取得したアイテムのデータを元に計算を行って監視をする機能(計算アイテム)
  • ダッシュボードに「ホストステータス」画面の追加

その他の改善

その他、細かいところでは以下の機能追加や改善が行われています

  • イベント画面が期間指定で表示可能に(1.6までは日にち単位の表示)
  • マップの線上にアイテムを表示
  • 利用できるマクロの増加
  • ホスト、ホストグループ、テンプレートの検索機能
  • エージェントの表示がアイコン表示に
  • Webインターフェースのデバッグ機能の追加
  • SNMPのIPv6対応
  • Windowsイベントログの表示にイベントIDのカラムを追加

Software Design 2010年3月号「Linuxサーバ危機管理対策」を執筆しました

2010年2月18日発売のSoftware Design 2010年3月号第1特集「Linuxサーバ危機管理対策」の1章「正常と異常の見える化」を執筆しました。

Zabbixを使ったシステムの可視化という視点で執筆しています。目次は以下のようになってます。

1章: 正常と異常の「見える化」

  • はじめに~システムの運用とシステムの可視化
  • システム監視の種類とポイント
  • 統合監視ソフトウェアZABBIXとは
  • ZABBIXのセットアップとテンプレートによる可視化
  • システムの稼働状況を可視化する
  • サービスの稼働状況を可視化する
  • 障害通知とマップの設定
  • まとめ
2章は中満英男さんが執筆されているのですが、Zabbixを使ったログ監視についても触れて頂いています。

2章: ログファイルから見る異常事態
  • はじめに
  • ログが出力されるしくみ
  • syslogdの基本的な設定
  • ログの読み方 ~Postfix編~
  • ログから異常を検知するには
  • ZABBIXでログ監視
  • tail使っている?
  • syslogdの置き換え
  • まとめ