Zabbixの概要(Appendix)

サーバーやネットワークの状態を監視するための運用監視ツール「Zabbix」について、その特徴の紹介からインストールと初期設定の仕方まで紹介します。(LinuCレベル2 参考ドキュメント)

最終更新日:2024年02月28日

Zabbixとは、システム運用時に、サーバーやネットワークの状態を監視するための運用監視ツールです。システムの状態を監視し、必要に応じてアラートをあげるために、

  • ネットワーク経由でサーバーやデバイスなどの死活監視やリソース消費状況を監視する
  • 指定したしきい値を超えたりエラーが検出されたりしたらメールなどで通知をする
  • 指定の条件を満たしたら、コマンドを実行する

などを行う機能を有しています。

Zabbixでできること

Zabbixは以下のような機能を有しています。

1.1さまざまなデバイスやアプリケーションの監視

監視対象には以下のようなものが挙げられます。

  • Zabbixエージェントをインストールしたサーバーや仮想マシン
  • SNMPで監視可能なネットワークデバイス
  • エンドユーザーのWebブラウザー
  • Webアプリケーション
  • データベース

1.2 障害検知

1で挙げたような監視対象から収集した稼働状況やパフォーマンスについての情報から、障害ステータスを自動的に検知します。Zabbixは障害検知に関連して以下のような機能を提供します。

  • 柔軟な定義設定
  • 障害の切り分けと障害復旧状況
  • 障害の緊急度・深刻度(Severity)レベル
  • 原因の解析・推定
  • 異常検知(障害発生はしていないが、リソースがひっ迫しているなど)
  • 傾向予測

1.3 可視化

Zabbixに内蔵されたWebインターフェースを用いると、以下のような情報にアクセスできます。

  • ウィジェット(機能ごと)ベースのダッシュボード(一覧表示画面)
  • グラフ
  • ネットワーク構成図
  • スライドショー
  • ドリルダウンレポート(詳細分析機能)

1.4 アラート通知と復旧

Zabbixを用いると、システム管理者にさまざまな経路で障害の発生を通知したり、復旧用スクリプトの実行などが可能になります。

  • メールによる通知
  • あらかじめ設定した復旧用のスクリプトの実行
  • 問題の深刻度によるレポート機能(エスカレーション)のカスタマイズ
  • メッセージのカスタマイズ

1.5 セキュリティと認証

Zabbixでは、エージェントやノード間の通信においてデータ保護を実現するためのセキュリティ機能を提供します。

  • Zabbixコンポーネント(サーバー・エージェント・WebUI)間での強力な暗号化
  • 複数の認証方法への対応
    • Open LDAP, Active Directory(Microsoftの認証プロダクト)
  • ユーザー権限の設定

1.6 簡単な導入

Zabbixは導入・運用のハードルを下げるために以下のような機能が提供されます。

  • 主要ディストリビューション向けの公式インストールパッケージ
  • すぐに使えるテンプレート機能
  • テンプレートのカスタマイズ機能
  • ユーザコミュニティで公開されている多数のテンプレ―ト
  • 有償のテンプレート作成サービス

1.7 オートディスカバリー

Zabbixを用いるとコンポーネントの追加・削除・変更を自動で行えます。

  • ネットワークディスカバリー
    定期的にネットワークをチェックし、デバイスタイプ、IPアドレス、ステータス、アップタイム・ダウンタイムなどを発見し、問題を発見した際には事前に定義したアクションを実行します。
  • ローレベルディスカバリー
    あらかじめ定義したターゲットデバイスに対して、監視対象となるファイルシステム項目、トリガー(アクションを実行するきっかけやしきい値)、グラフを自動で生成します。
  • アクティブエージェントの自動登録
    Zabbixエージェントがインストールされている機器が接続されると自動的に監視をスタートします。

1.8 分散監視

Zabbixは分散したデバイスやアプリケーションの集中管理を実現します。例えば、以下のような分散監視が可能になります。

  • 数千の監視ターゲットからのデータ収集・可視化
  • ファイアウォールやDMZ(ネットワーク上の非武装領域、ファイアウォールと同じゾーンまたは外にある領域)越しの監視
  • ネットワーク障害時にも(可能な限り)データを収集
  • 監視ターゲット上で、リモート環境からカスタムスクリプトを実行

1.9 Zabbix API

ZabbixはAPI(アプリケーション・プログラミング・インターフェース)を提供し、他のアプリケーションから、Zabbixの機能にアクセスしたり連携したりすることができます。例えば、以下のような連携が可能になります。

  • API経由でのZabbix管理の自動化
  • 200以上のメソッド(関数)を用いたZabbixの機能へのアクセス
  • Zabbixと連携するアプリケーション開発用のAPIの提供
  • 外部アプリケーションとの連携
    • 設定管理、チケットシステム(障害トラッカーへの自動登録・チケット発行)
  • 設定やログの取り出し、管理

Zabbixを構成するコンポーネント

Zabbixは三つのコンポーネントから構成されています。

  • Zabbixサーバー
    監視ターゲットからデータを取得してデータベースに保存したり、特定の条件を満たした場合に通知を送信したりする
  • Zabbix Web UI
    収集したデータやリソース消費状況などを表示したり、監視内容の設定をWebベースで実行したりする
  • Zabbixエージェント
    監視ターゲットとなるマシンにインストールして常時起動し、サーバーから監視を実行できるようにするクライアント

Zabbixのインストール(2020年4月現在)

Zabbixの最新安定版のバージョンは4.4, 長期サポート対応版は4.0となっています。

Zabbixの公式サイトでは、バージョンやディストリビューション、データベースソフトウェアの種類などを選択すると、その組み合わせに対応したインストール手順が表示されるようになっています。

それでは、CentOS 8.0とMySQL、Apacheの組み合わせでインストールを実行してみましょう。

(1)Zabbixのリポジトリの追加とテンポラリファイルのクリーンアップ(削除)

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
# yum clean all

(2)Zabbixサーバー、Webインターフェース、Apache設定ファイル、Zabbixエージェントのインストール

# yum install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

(3)MySQLデータベース上にZabbixの収集したデータを保存するデータベースインスタンスを追加してzabbixユーザーにアクセス権を追加する。

# mysql -uroot -p
<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<zabbixユーザのパスワード>';
mysql> quit;

Zabbixサーバー上で、データベースのスキーマ(テーブル構成)や初期データのインポートを行います。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

(4)Zabbixの設定ファイル(/etc/php-fpm.d/zabbix.conf)にデータベース設定(zabbixユーザのDBパスワード)を追記する。

DBPassword=<zabbixユーザーのパスワード>

(5)タイムゾーンの設定をPHPの設定ファイル(/etc/php-fpm.d/zabbix.conf)に追加する。

; php_value[date.timezone] = Europe/Riga
⇒
php_value[date.timezone] = Asia/Tokyo

(6)ZabbixサーバーとApache, PHP(FastCGIモードのPHPプロセス)を起動する。またOS再起動時に自動起動するためのenable設定を行う。

# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm

(7)Webインターフェースにアクセスしてフロントエンドの設定を行う。

http://Zabbixサーバーをインストールしたサーバーのホスト名・IP/zabbix

にアクセスします。

◎フロントエンドの設定URLを開いたところ

インストール条件の確認(問題があればPHP設定などを変更)

データベースの接続設定を入力して「Next step」をクリックします。

Zabbixサーバーの設定を行います。Nameはオプションですが、入れておくと管理画面に表示され、他のサーバーと識別しやすくなります。

すると設定のサマリー(要約)ページが表示されます。

設定ファイルをダウンロードして、zabbixのドキュメントルートのconfディレクトリに保存します。

インストールを完了します。

インストールが完了したら、ログイン画面が出るので、初期ID・パスワード(Admin・zabbix)でログインしましょう。

Zabbixの初期設定(ユーザの追加・設定)

無事にログインできたら、Administration ⇒ Users というメニューを開いて、ユーザー一覧を表示しましょう。

右上の「Create User」をクリックして、ユーザーの追加を行います。

「Add」をクリックしてユーザーが追加されたら、続いては上部の「Media」タブをクリックして通知設定を行います。

  • Send toは送信先のメールアドレス
  • When activeは、通知を送信する時間帯の指定
  • Use if severityは、情報や障害の深刻度により送受信の可否を設定できます。例えば、Disasterは障害発生情報、Warningは警告や注意、それ以外はパフォーマンスなどの情報です。
  • Enabledでは通知の有効化・無効化を切り替えられます。

続いては「Permissions」タブをクリックして、監視対象のデバイスやサーバーの選択をします。

Selectをクリックすると選択肢の一覧が表示されます。

例えば、下の図では「Linux Servers」へのアクセスを選択しています。それ以外には、自動検知されたホスト、ハイパーバイザー、テンプレート、仮想マシン、Zabbixサーバーなどが選択可能となっています。

チェックを入れたら「Select」をクリックして、設定を保存しユーザー情報のページに戻ります。

以上の設定で、WebインターフェースからLinuxサーバーの情報にアクセスできるようになります。

◎インターフェースの日本語化

ページ右上のユーザプロフィールを表示するアイコンをクリックすると、言語設定を切り替えることができます。

デフォルトでは英語メニューになっています。もし、日本語メニューで使用したい場合には、「Japanese(ja_JP)」を選択すると日本語メニューに切り替えることができます。

監視対象の追加と表示例

あとは、監視ターゲットの情報を追加して、監視する対象(例えば、CPU使用率やメモリ使用量)などを指定します。

まずは監視対象のホストを追加します。

Zabbixエージェントのホストを追加する画面

監視対象のホストを追加したら、次は監視するリソースを設定します。

例えば、下の図ではCPU使用率のデータを設定しています。

localhostのCPU使用率を監視アイテムに追加する画面

ダッシュボードに戻ると、以下のようなCPU使用率の推移を可視化したグラフを得ることができます。

ZabbixでCPU使用率の推移を可視化したグラフの例

◎SELinuxを有効化した状態でZabbixを動作させるための設定

SELinuxが有効になっている状態では、Zabbixが外部と通信することができません。そこで、Zabbix用のSELinuxのポリシーパッケージをインストールして、OSを再起動しましょう

# semodule -i my-zabbixserver.pp

執筆者紹介

・太田 俊哉

・井上 博樹



このドキュメントは、LinuCレベル2の学習用の教材から抜粋して作成されたものです。教材全体は以下のPDFファイルをご覧ください。
LinuCレベル2学習教材

ページトップへ