目次
システム監視ツールZabbixとは?
Zabbixとは安定したサービスを提供する上で欠かせないシステム監視のためのソフトウェアです。サーバーはもちろん、ネットワーク機器やアプリケーションといった様々な対象を監視できる統合監視ソフトウェアです。
ラトビアのZabbix社により開発されオープンソースソフトウェアとして公開されています。
Zabbixの特徴
監視ツールには色々な種類があり、他製品と比較したZabbixの特徴は以下のようなものがあります。オープンソースソフトウェアのためライセンス費用が不要です。
統合監視ソフトウェアのため、Windows/Linuxはもちろんその他の商用Linux、ルーターやスイッチといったネットワーク機器も監視する事ができます。機器だけでなくウェブページや各種サービスの監視も可能です。
分散監視に対応しており大規模な監視にも対応可能です。
Zabbix以外の選択肢
Zabbix以外の監視ツールをいくつか挙げ、主な特徴を説明します。
製品ごとに用途や監視対象が異なり、それぞれに強み・弱みがあるため、導入の前には違いを把握しておく事が重要です。
mackerel
クラウド型のサーバー監視ツールです。インストールするだけで監視体制が整うほどに導入と設定が簡単です。商用サービスですので監視サーバー運用も不要で、これから監視をはじめるという入門者の方にもおすすめできます。
AWS CloudWatch
AWSが提供するフルマネージド型の監視サービスです。AWS上サービスを展開する際は最有力候補になるでしょう。セットアップ不要、基本的な監視内容は最初から設定済みのため監視入門にも最適です。
ただしAWS上の監視ツールとなるためAWS自体に障害が発生したときに機能しない可能性があります。AWS外に設置されているサーバーにZabbixなどをインストールして併用するのが好ましいでしょう。
Zabbixのシステム構成
Zabbixは監視を実施するZabbixサーバーと、監視対象にインストールする事で詳細な情報を取得するためのZabbixエージェントで構成されています。
それぞれの役割を把握してからセットアップを進めましょう。
Zabbixサーバー
Zabbixサーバーは監視の中心となります。自らSNMPやPing監視を実行し、Zabbixエージェントから収集した監視情報を受信してデータベースに保存します。
ブラウザに監視ログの表示や、監視の詳細を設定するためのウェブインターフェースも提供します。監視項目が異常を検知した場合は、メールやチャットを使用した通知も実行します。
Zabbixエージェント
Zabbixエージェントはサーバーの状態を取得する役目をもちます。監視対象サーバーにインストールされ、CPUやメモリーなどの詳細な情報を取得してZabbixサーバーに送信します。
エージェントをインストールしない場合は、SNMPやPingによるシンプルな監視を実施します。
Zabbix入門 インストールと設定
CentOSにZabbixをインストールし、簡単な設定を済ませるまでの入門事例を紹介します。
Zabbixには複数のバージョンがあり、またウェブサーバーやデータベースに何を使うかといった組み合わせでインストール手順が変化します。作業前に公式ページのマニュアルを参照し、適切な方法でインストールするようにしてください。
LinuxにZabbixをインストールする
RPMパッケージからリポジトリをインストールしてからZabbixServerをインストールします。
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
dnf clean all
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent
インストール後はデータベースの設定やPHPの設定が続きます。詳細な設定内容は公式マニュアルを参考にしてください。
Zabbixの監視設定
Zabbixの監視設定として、「テンプレートとは」「アイテムを作成する」「トリガーを作成する」の3つをピックアップして解説します。
Zabbixの監視設定に興味がある方は参考にしてください。
テンプレートとは
Zabbixには様々な監視対象用にテンプレート(監視項目のひな型)が用意されています。テンプレートとは、アプリケーションやアイテム、トリガーといった監視に必要な設定項目をグループ化したものです。
幅広い対象を監視できるのがZabbixの魅力の1つですが、項目が多いため入門の時点ではすべてを把握するのは難しいものです。最初のうちはZabbixが提供するテンプレートを使用しましょう。
テンプレートに用意されたアイテムやトリガーの内容を参考にすれば、より高度な監視へ向けてのヒントとなります。必要に応じて監視項目を追加変更していく方向が良いでしょう。
アイテムを作成する
アイテムとは監視する項目の名称です。入門事例として、Zabbixエージェントが収集する情報の中でもわかりやすいCPU負荷(ロードアベレージ)を監視する事を考えてみましょう。
「CPU Load」という名称でアイテムを作成し、内容としてsystem.cpu.load[,avg1]というキーを登録します。この値は、ロードアベレージの1分間平均値をモニターしてCPU負荷を判断するという意味合いになります。
トリガーを作成する
アイテムを設定する事でCPU負荷を監視できるようになりました。しかしそのままでは値を取得しているだけです。Zabbixが異常を検知できるようにトリガーを作成しましょう。
「CPU Load too high 」という名称でトリガーを作成します。条件式に{system.cpu.load[,avg1].last()}>5という内容を登録しましょう。ロードアベレージ1分平均値が5を超えている場合に異常と判断する、という意味になります。
この値はあくまで入門用の参考値です。実際のシステム監視では、サーバーを稼働させながら適切なしきい値を探っていく事になります。
アクションを作成する
アクションとは、トリガーで定義した異常が発生したときにどう対応するか設定する項目です。
「Send Alert Mail」という名称でアクションを作成しましょう。実行条件としては先程作成したトリガー「CPU Load too high」を選択します。
アクションの実行内容として「メッセージの送信」、メディアには「Email」を選択し、送信したいユーザーを登録します。送信先メールアドレスの情報などは事前にZabbixのユーザーとして登録しておきましょう。
以上の設定で、CPU負荷が高くなった時にメール通知が実施されるようになりました。
システム監視入門
システムが正しく動作している事(正常生)をチェックするのがシステム監視です。言葉にすると簡単に聞こえますが、実はとても複雑な作業です。
システムは通常、サーバー等の機械、プログラミング言語で記述されたソフトウェア、データベースといったたくさんの要素を組み合わせて実現されます。仮に一部の要素が原因でシステム全体が停止してしまうと、ビジネスに大きな影響が出てしまいます。
システムが正しく動作するためには全てが正常に動作している必要があり、システム監視はそれらを細かく監視していく事になります。
システム監視の目的とは?
トラブルを防止し、小さな障害に素早く対応する事でシステム停止に発展するのを防ぐのがシステム監視の目的です。
そのために常日頃からシステム構成要素の稼働状況を観察(モニター)します。モニターしている数値や挙動の変化から故障・不具合の兆候を検知し、修理や交換、改修といった対応を取ります。
仮にシステム停止が発生してしまった場合でも、いち早く原因を特定し対応する事で速やかにシステムを復旧し、ビジネスへの影響を最小限に抑える事が求められます。
サーバー監視の具体例
監視といえばサーバー監視といわれるほどメジャーな内容です。サーバーの機械的なトラブルはもちろん、提供しているサービスに異常が発生していないかを監視します。
Zabbixのテンプレートには様々な用途のサーバーに合わせたテンプレートが用意されています。入門時にはどのような項目を監視しているのかを参考にするようにしましょう。
ハードウェアの監視
サーバーの電源やネットワークといったハードウェアの動作を監視します。更に、OS上から把握できる各種リソース(CPUやメモリーの使用率、ハードディスクの空き容量)を監視し、能力不足の発生を事前に防ぐ事も重要です。
Zabbixエージェントが起動していれば、ハードウェア監視が実現できます。
ミドルウェアの監視
ウェブサーバー(Apache)、データベース(MySQL)といったミドルウェアが正常動作している事を監視します。
デーモンが起動している事はもちろん、ウェブサーバーであればHTTPステータスが正常に返ってくる事、データベースであればクエリに応答がある事などを監視します。
ミドルウェア毎に監視すべき内容が大きく異なるため、入門時はできるだけテンプレートを参照してください。
サービス監視
サービスが正常に提供できている事の監視です。ウェブサイトを例にして考えてみましょう。ウェブサイトの目的は、ユーザーからの要求に応じてウェブページを表示する事です。
サービスが正常に動作している事を確認するためには、外部からウェブサーバーが提供しているコンテンツにアクセスし、ウェブページのデータが取得できる事を確認します。
目的のページが表示できる事はもちろん、ページ表示にかかる時間やページの内容も確認したほうがよいでしょう。
ネットワーク機器の監視
ZabbixはSNMP対応機器も監視できます。ルーターやスイッチといった機械であれば、電源が入っている事はもちろん、正常に通信できるかといったチェックも必要です。
重要な機器の場合は、電源の電圧や冷却ファンの回転数など細かく監視する事もあります。機器の故障はもちろん、電源が喪失してしまったり熱による誤動作が発生したりといった外的要因によるトラブルの発生にも対応できるように監視しましょう。
まとめ
Zabbixの入門編としてインストールと設定、そしてシステム監視の基礎を紹介しました。
実際の運用におけるシステム監視に正解はありません。
システムが正常に動作するためには何を監視すべきなのかを常に意識し、適切な監視を実施しましょう。
インフラエンジニア専門の転職サイト「FEnetインフラ」
FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。
転職をお考えの方は気軽にご登録・ご相談ください。