Zabbixとは

「Zabbix」とは、Zabbix社が開発しているサーバー/ネットワーク監視用のオープンソースソフトウェアです。

ネットワークサービス、サーバー、アプリケーション、その他のネットワークハードウェアのステータスなど、さまざまなIT機器やサービスを集中監視できます。


Zabbixは柔軟な通知メカニズムを備え、すべてのイベントに対して電子メールベースのアラートを設定できます。

これによって、サーバーの問題に迅速に対応できます。


公式サイト
Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

1. Zabbixのシステム構成


Zabbixが監視対象に対して、自動で情報を収集し監視します。

ステータス情報をデータベースに保存してくれます。

運用部門は設定したり、確認したりできます。

障害検知時にはアラートメールを運用部門に通知します。

2. 監視可能な主な項目

Zabbixは、PingやSNMPの監視から、Webレスポンスや各種ログ監視など幅広い監視に対応しています。

Zabbixエージェントが導入されたサーバで監視可能な主要な項目が以下になります。

2-1. 監視項目

CPU:ロードアベレージ、CPU使用率

メモリ:メモリ使用率/メモリ使用量/容量、スワップ使用率

ネットワーク:NW送受信バイト数

ディスク:ファイルシステム使用率/使用量/容量

サービス:ディスクI/O

ログ:テキストログ監視(文字列チェック)、Windowsイベントログ監視(文字列、重大度などのチェック)

ファイル:ファイルの存在有無確認/ファイルサイズの監視

その他:Windowsパフォーマンスカウンタ、コマンド実行結果(標準出力)の監視、Web監視(任意のURLのステータスコード、応答時間のチェック)、VMware監視(ハイパーバイザ、仮想マシンのリソース監視)


※Zabbix監視画面

システム監視ソフト新版「Zabbix 4.2」、プロキシでのデータ集約で大規模監視の負荷を軽減 | IT Leaders (impress.co.jp)


https://www.ashisuto.co.jp/product/category/system-management/zabbix/#zabbix_monitor

※Zabbixエージェントとは

ZabbixサーバとZabbixエージェントの中間に位置し、Zabbixサーバの命令に従いZabbixエージェントを監視し、また、複数のZabbixエージェントから収集したデータをまとめてZabbixサーバに転送する機能を持ちます。

 Zabbixエージェントが受信側となり、Zabbixサーバからの要求にZabbixエージェントが応える方式です。

Zabbixエージェントが送信側となり、ZabbixエージェントからZabbixサーバに対して通知を行う方式です。

2-2. 他にもZabbixで使用される用語

ホスト

監視対象のことです。

具体的には、仮想マシン、ESXiホスト、ルータ、スイッチ、サーバーのことを意味します。

Zabbixで監視設定を作成する場合は、ホストを定義していきます。

作成する際は、IPアドレスやDNS名、ホスト名を設定していきましょう。

アイテム

ホストに対する監視項目のことです。

具体的には、CPU使用率、httpdプロセス、PING監視をアイテムということが多いです。

トリガー

アイテムが取得したデータに対する障害の発生条件の設定のことです。

CPU使用率90%を超えたり、PINGが3回連続で応答がなくなったりしたときなど、基準を設けて、正常か障害の判断をしていきます。

イベント

トリガーが閾値を超えた/下回った場合に内部生成される障害/復旧のインシデント履歴のことです。

アクション

トリガーが発生した時に、どのようにアウトプットするか定義することです。

例えば、イベント生成時に実行される、障害通知(メール)やコマンド実行、サーバーの再起動などの設定のことです。

アクションは、メール通知、チャット通知で実行されることが多いです。

3. Zabbixを使用する主なメリット

①オープンソースであるため自由に構築・利用ができる

②OSSであるため、ライセンスコストが不要。無料で運用が可能。

③万単位のノード監視に耐えうるスケーラビリティを有する

④各種OSに対応したZabbix Agentを導入することでより高機能な監視が実現できる

⑤オールインワンで監視ができるので運用の負担が軽減される

⑥拡張性に富み、有償サポートの利用も可能

⑦ホストにテンプレートを適用するとすぐに使える
(標準テンプレート一例:AWS、Cisco、Micorosoft、VMware、F5等)

⑧ダッシュボードを定期レートとしてメールを送付することができる

4. Zabbixのデメリット

①機能が豊富な分、設定の難易度が高くなる

②使い慣れた監視ツールに比べGUIが分かりにくい

5. Zabbixの設定


5-1. Zabbixのインストール前に確認しておくこと

■実行環境を確認する

Zabbixをインストールしても、CPUやメモリ、OSなどの実行環境によってはZabbixを利用できないこともあるので、Zabbixをインストールする前に実行環境を確認して整えておくことが大切です。

Zabbixの公式サイトにあるマニュアルなどで、Zabbixに必要なリソースなどの要件を確かめられます。

ダウンロード 6.4 for Alma Linux 9 Server, Frontend, Agent, MySQL, Apache (zabbix.com)

■OSは最新の状態か確認する

Zabbixをインストールする前に、インストールするPCのOSが最新状態かどうかを確認しておく必要があります。

Zabbixは、LinuxやWindows、macOSなどのOSに対応していますが、使用しているOSが最新状態でないと、不具合が生じてZabbixが利用できなくなる可能性があります。

Zabbixをインストールして利用するためには、それぞれのOSのバージョンをチェックすることが大切です。


例:
OS:CentOS 7
データベース:MySQL 8.0.23
Webサーバー:Apache/2.4.6
PHP:7.2.24
Zabbix:5.0

5-2. 事前準備

Zabbixアカウント作成

Linux上に「Zabbix」ユーザと「Zabbix」グループを追加します。

Zabbixのプロセスが動くために必要です。

MySQLの構築(ここではMySQLを例として使用)

データベースにMySQLを使用します。MySQLをインストールします。

インストールはインターネットにつながっている状態で、yumで実行することで進めます。(オフラインインストールではないです)

■MySQLのレポジトリ登録

CentOS 7にはデフォルトでMySQLのレポジトリは登録されていないので登録します。

・MySQLのインストール:
yumで依存関係を解決しながらインストールします。

・MySQLのスタートと有効化:
systemctlコマンドでスタートと有効化を行います。

・MySQLのrootのパスワード変更:
コマンド:
UPDATE mysql.user SET Password=PASSWORD ('新しいパスワード') WHERE      User='root'; FLUSH PRIVILEGES; を実行
mysqladmin password newpassword -u root -p を実行
mysql -u root でMySQLにログインし、update mysql.user set password=password (' root 用の任意パスワード ') where user = 'root'; flush privileges; を実行
mysql> update mysql.user set password=password ('ooo') where user = 'root'; を実行

5-3. Zabbixの設定手順

Zabbixは、最も基本的な構成では、監視対象となる機器と、監視対象からの情報の収集とユーザへのWebインターフェースの提供を行うサーバーの2つから構成されます。

必要なプログラムをインストールします

①ZABBIXサーバー本体である「zabbix-Server」のインストール

②サーバー本体の監視を行う「Zabbix-Agent」のインストール

③Webブラウザから使用できるダッシュボード「Zabbix-frontend-php」のインストール
パッケージをインストール

コマンド:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

④リポジトリを追加。

コマンド:
# wget https://repo.zabbix.com/zabbix/4.0/raspbian/pool/main/z/zabbix-release/zabbix-release_4.0-3+stretch_all.deb
# dpkg -i zabbix-release_4.0-3+stretch_all.deb
# apt update

④管理画面にログインし、ユーザ、ホスト(監視対象)の登録



⑤テンプレート、アイテムの登録

⑥トリガー(条件)、アクション(通知)、グラフ、スクリーンの設定

⑦DB作成(データベース作成・ユーザー作成・権限設定)

コマンド:
create database zabbix character set utf8;
create user zabbix@localhost identified by 'password';
grant all privileges on zabbix.* to zabbix@localhost;

⑧スキーマ作成・初期データの投入
作成したデータベースをZabbixから利用するには、はじめに使用するテーブルを作成し、初期データを投入する必要があります。

テーブルの作成や初期データの投入は、Zabbixのインストール時に一緒にダウンロードされているsqlファイルを使用して行います。

コマンド:
$ zcat /usr/share/zabbix-server-mysql/schema.sql.gz |  mysql -uzabbix -p zabbix
$ zcat /usr/share/zabbix-server-mysql/images.sql.gz |  mysql -uzabbix -p zabbix
Enter password:
$ zcat /usr/share/zabbix-server-mysql/data.sql.gz |  mysql -uzabbix -p zabbix
Enter password:

6. まとめ

Zabbixを使用するメリットはたくさんあることが分かりました。

高機能な監視ツールを無償で提供していただける点で、いろんな企業さまが使用して実績もあることから、これからもどんどん利用者が増えそうですね。

今後、さらにZabbixの知識や、それに不随する知識も身につけていけたらと思います。