2020年5月12日、Zabbix 5.0 正式版がリリースされました。LTS(Long Term Support)としては、1年半ぶりのバージョンアップです。ここでは、当社エンジニアがお勧めするZabbix 5.0 LTSで追加ならびに改善された機能について、ピックアップしてご紹介します。Zabbix公式サイトによる新機能の説明につきましては、こちらをご覧ください。

PostgreSQL + TimescaleDBの活用と改善効果

PostgreSQLにおける時系列データ向け拡張「TimescaleDB」を利用できるようになりました。本機能はバージョン4.2において実装され、バージョン4.4から公式にサポートされたもので、一般的なパーティショニング技術と同じものです。具体的にはTimescaleDBの機能を適用したテーブルが親テーブルとなり、自動パーティショニング機能によって親テーブルに対する子テーブルを日時ごとに作成することで、テーブルを構成するファイルへのアクセスを分散するものです。

一般的なテーブルにて履歴データなどの時系列データを扱う場合、長期間の運用によって蓄積したデータがテーブルサイズの肥大を引き起こしてしまい、性能劣化の原因につながっていましたが、子テーブルが日時ごとに作成されることによってテーブルサイズが分散され、履歴データの登録処理や過去データの削除処理において、大幅な性能向上を果たしています。

バージョン5.0からは上記に加えて保存データの圧縮機能が利用できるようになり、古くなった子テーブルの圧縮をすることによってファイルサイズの軽減が行われ、ストレージ領域を効率よく利用できるようになりました。この圧縮機能の有効化ならびに圧縮期間の設定については、Webインターフェース上におけるデータの保存期間から設定できます。

次世代Zabbix Agentの登場

Zabbix Agentとは各OS内部のメトリクスを収集するデーモンプロセスであり、ディスク使用率、ネットワーク使用率の監視やメモリ使用率、CPU使用率の監視を可能にしています。また、ログ監視やWindowsイベントログの監視もできます。

そのZabbix Agentにつきまして、従来のZabbix Agentの課題を解決するためZabbix Agent 2がGo言語で開発されました。Zabbix 4.4ではテスト版としてのリリースでしたが、Zabbix 5.0では正式サポートされています。

従来のZabbix Agentではアクティブチェックについて監視間隔のカスタマイズに対応していなかったり、アクティブチェックプロセスがサーバーに対して1つしか起動しなかったりという課題がありました。Zabbix Agent 2ではそれらの課題を解決し、アクティブチェックでも監視間隔のカスタマイズを可能にし、また同時実行性の改善も行われました。

監視機能の拡張という点については、ネイティブZabbix Agentメトリックと同じくらい高速な拡張をするにはC言語での実装が必要となり敷居が高いという課題がありました。しかし、Zabbix Agent 2ではGo言語でプラグインを作成できるため従来と比べより簡単に監視機能の拡張ができるようになりました。また、プラグイン単位でのタイムアウト設定も可能です。

Zabbix Agent 2は従来のZabbix Agentの機能をサポートしています。現行の設定ファイルをそのまま使うこともできるため、単純な移行であれば従来のZabbix Agentからの移行も難しくありません。

Webhookによる外部システムとの連携強化

Zabbix 4.4からメディアタイプにWebhookが設定できるようになりました。Webhookとは簡単に説明するとイベントが発生した際、指定したURLにPOSTリクエストを送信する仕組みです。

以前までのバージョンでは外部スクリプトを自作し、外部のサービスと連携する必要があり煩雑でした。しかし、Webhookを使うことにより外部のサービスに通知するためのJavaScriptコードの入力や編集がZabbixのWebインターフェースから行えるようになり、より簡単に外部サービスと連携ができるようになりました。

Zabbix 5.0ではこのWebhook機能を使用することにより、RedmineやJIRA、ServiceNow、ZendeskなどのITSMサービス、Microsoft TeamsやSlackなどのチャットツールと連携する機能が標準で搭載されています。

ITSMサービスとの連携

ITSMサービスとの具体的な連携内容は、アクションの設定にひも付きます。アクションでは、実行内容、更新時における実行内容、ならびに復旧時の実行内容と、3つの設定ができます。

それらと連動することによって、Zabbixで障害を検知するたびに自動でチケットを登録・更新(コメントの反映)できるようになりました。

チャットツールとの連携

チャットツールとの連携もITSMサービスとの連携と同じく、アクションの設定にひも付きます。

実行内容、更新時の実行内容、ならびに復旧時の実行内容を設定することによって、Zabbixで障害を検知するたびに事象に応じたメッセージをチャットツールのチャネルに向けて投稿できるようになっています。

監視設定の管理改善と柔軟化

Zabbix 5.0は多数のユーザビリティと監視の自動化が改善されました。

例えば、Zabbixで検知した障害メールについて、同イベントによって送信された通知メールはスレッドでグループ化されるようになりました。また、障害通知の本文設定をメッセージテンプレートとしてメディア設定に保存することも可能になりました。

さらに、障害通知とサービス連携でも話に上がったWebhookのJavaScript処理について、テストをするためのコマンドラインツールが実装されたため、実際に障害を発生させずともJavaScript処理のテストができます。

他にもトリガー条件式設定でテキストデータ比較ができるようになったり、Float64型の監視データ保存に対応したりとさまざまな機能改善が行われています。

以前までのバージョンと比べ監視設定と監視機能がより容易に、またより柔軟に設定できるようになり使いやすくなっています。

追加・変更のあったテンプレート

Zabbix 5.0がリリースされるまでの間、テンプレート・アイテムの追加、変更ならびに削除が繰り返し行われ、内容の整理が行われました。Zabbix 4.4にて、Template App Zabbix Agent、Template OS LinuxならびにTemplate OS Windowsのテンプレートが削除され、従来より細分化された形でテンプレートが追加されています。

この変更に伴い、テンプレートにおけるアイテム名の名称変更と移動、ならびにアイテムの削除が行われています。また、テンプレートの変更に追従する場合は、最新バージョンのZabbix Agent(Zabbix Agent 2ではない)が必要ですので、バージョンアップの際は注意してください。

アクティブ方式用のテンプレートが追加

従来のZabbixではパッシブ方式用のテンプレートのみ準備されていましたが、Zabbix4.4からアクティブ方式用のテンプレートが標準搭載され、テンプレートを自作する必要がなくなりました。

  • パッシブ方式とは、ZabbixサーバーからZabbix Agentにデータを問い合わせて監視結果を取得する方法です。
  • アクティブ方式とは、Zabbix AgentからZabbixサーバーへ定期的に監視結果を送信する方法です。

アプリケーション監視の強化

Zabbix 4.4では、Apache、Nginx、RabbitMQ、MySQL、PostgreSQL、RedisならびにHAProxyのテンプレートが、Zabbix 5.0からは、Docker、Elasticsearch、MemcachedならびにClickHouseのテンプレートが標準搭載されたことによって、従来のZabbixと比べてアプリケーションの監視を手間を掛けずに開始できるようになりました。

なお、Redis、DockerならびにMemcachedのテンプレートはZabbix Agent 2のプラグインを用いているため、Zabbix Agent 2を使用してください。

その他の改善点

上記以外にも、障害確認メッセージの文字数が4,096文字に拡張(従来は255文字)、アイテムにおけるキー設定文字列の上限が2,048文字に拡張(従来は255文字)、ならびにWebインターフェースの最適化による可視性の向上など、さまざまな改善が行われています。

前評判にてZabbix 4.0時点から大きな変更はない。と言われていたZabbix 5.0ですが、これまでよりもより使いやすく、より便利に進化しています。ぜひZabbix 5.0をお試しください。

注意点

バージョン5.0になり、ますます便利に使いやすく高性能で魅力的になったZabbixですが、

  • Internet Explorer 11のサポート終了
  • IBM DB2のサポートを終了
  • 暗号化通信において、OpenSSLとGnuTLSのみサポート
  • PHPのバージョン要件を7.2以降に変更(RHEL/CentOS7では標準リポジトリからPHP7.2を取得できません)
  • Zabbix APIにおけるホストインターフェースAPIの変更(SNMPv3対応における影響があります)
  • テンプレートの変更に伴い、旧バージョンに存在した監視アイテムが別のテンプレートに移動となった

など、バージョン5.0を採用する場合やバージョンアップを検討する場合において、注意すべき点があります。特にバージョンアップにつきましては、十分な調査と検証の上で実施してください。


株式会社アークシステムはZabbix Japan LLCの認定パートナー企業です。
Zabbixに関する製品・サービスの販売に加え、Zabbix関連サービスの提供をしています。
(2018年度からZabbix認定パートナー幹事企業の1社として活動しています。)

運用管理技術のプロフェッショナルであるアークシステムが
Zabbix環境におけるさまざまな課題を解決いたします

当社の価値はお客様のビジネスを支える高度なIT技術や運用基盤の提供にあります。
お客様の課題や問題意識を受け止め、IT戦略/企画の立案、実行性のある計画作成から運用整備とデリバリーまで、さまざまな形態のサービス提供をしています。これまで培った運用管理技術とZabbix技術の豊富なノウハウと実績をもとに、実運用に耐えうる高品質なZabbix環境の構築や課題解決をいたします。