「Zabbix」とは、Zabbix社が開発しているサーバー/ネットワーク監視用のオープンソースソフトウェアです。
ネットワークサービス、サーバー、アプリケーション、その他のネットワークハードウェアのステータスなど、さまざまなIT機器やサービスを集中監視できます。
Zabbixは柔軟な通知メカニズムを備え、すべてのイベントに対して電子メールベースのアラートを設定できます。
これによって、サーバーの問題に迅速に対応できます。
公式サイト
Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution
Zabbixとは
1. Zabbixのシステム構成
Zabbixが監視対象に対して、自動で情報を収集し監視します。
ステータス情報をデータベースに保存してくれます。
運用部門は設定したり、確認したりできます。
障害検知時にはアラートメールを運用部門に通知します。
2. 監視可能な主な項目
Zabbixは、PingやSNMPの監視から、Webレスポンスや各種ログ監視など幅広い監視に対応しています。
Zabbixエージェントが導入されたサーバで監視可能な主要な項目が以下になります。
2-1. 監視項目
メモリ:メモリ使用率/メモリ使用量/容量、スワップ使用率
ネットワーク: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サーバー本体である「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の知識や、それに不随する知識も身につけていけたらと思います。