Zabbixとは
Zabbixは、ITインフラを監視するためのOSSです。
ネットワークデバイス、サーバ、仮想マシン、およびクラウドサービスの状態をリアルタイムで監視するために使用されています。
SNMP、Zabbixエージェント、APIのいずれかを使って
集めた情報をZabbixサーバで管理しユーザに各種サービスを提供している。
・SNMPで監視できること
- デバイスの状態とパフォーマンス
・CPU使用率: デバイスのCPU負荷を監視し、パフォーマンスの低下を防ぐ。
・メモリ使用量: 物理メモリおよび仮想メモリの使用状況を監視。
・ディスク使用率: 各ストレージの使用状況と空き容量を監視。
・ネットワーク帯域使用率: ネットワークインターフェースごとの入出力トラフィックを監視。 - ネットワーク機器の状態
・ルーターやスイッチの状態: インターフェースの稼働状況、エラー率、ドロップされたパケット数などを監視。
・ファイアウォールやロードバランサー: セッション数、アクティブな接続数などの情報を収集。 - システムログとアラート
・Syslogメッセージ: システムログを収集して問題を早期に発見。
・トラップ: 特定のイベントや異常が発生した際に通知されるSNMPトラップを用いてリアルタイムのアラートを受け取る。 - 環境監視
・温度センサー: サーバールームやデータセンターの温度監視。
・湿度センサー: 環境の湿度を監視し、適切な条件を維持。 - 設定情報の取得と変更
。デバイスの設定: SNMPを通じてデバイスの設定情報を読み取り、必要に応じて変更する。
・Zabbixエージェントで監視できること
- システムパフォーマンス
・CPU使用率: 各CPUコアの使用率や全体の使用率。
・メモリ使用量: 物理メモリとスワップ領域の使用状況。
・ディスクI/O: ディスクの読み書き速度やオペレーションの頻度。
・ネットワークトラフィック: ネットワークインターフェースごとの受信/送信データ量。 - システムリソース
・ファイルシステムの利用率: 各マウントポイントのディスク使用率。
・プロセス監視: 実行中のプロセスの状態、起動プロセス、メモリ消費量。 - システムログ
・ログファイル監視: システムやアプリケーションのログファイルを監視し、特定のキーワードが現れた際にアラートを発する。 - セキュリティ
・ユーザーログイン監視: システムへのユーザーログイン試行を監視。
・ファイルの変更監視: 重要なファイルやディレクトリの変更を検知する。 - ネットワークサービス
・Webページ監視: HTTP/HTTPS経由でのウェブサイトの可用性と応答時間。
・データベースサーバー: SQLクエリの実行やデータベースの応答時間。
・メールサービス: SMTP、POP3、IMAPサーバーの可用性と応答性。 - カスタムスクリプト
・ユーザー定義の監視: カスタムスクリプトを使用して特定のタスクを監視し、その出力を監視対象とする。
・APIで監視できること
多くのクラウドプロバイダやハードウェアベンダーは、監視や管理のためのAPIを提供している。
ZabbixはこれらのAPIを利用して、サーバーの状態、仮想マシンのパフォーマンス、アプリケーションのメトリックスなどをリモートで監視することが可能。
Zabbixサーバの最重要設定項目
ホスト
説明: 監視対象のデバイスやサービス。これにはサーバ、ネットワーク機器、アプリケーションなどが含まれます。
用途: ホストは監視の基本単位であり、一つのホストに対して複数のアイテムやトリガーを設定することができます。
アイテム
説明: ホストから収集したい具体的な情報。これにはCPUの使用率、メモリ使用量、ディスクスペース、ネットワークトラフィック、データベースのクエリ数などがあります。
用途: アイテムは監視の対象となる個々のデータポイントです。Zabbixは定期的にこれらのアイテムからデータを収集し、データベースに保存します。
トリガー
説明: アイテムで収集したデータに基づいて設定される条件。例えば、CPU使用率が90%を超える、ディスクの空き容量が10%未満になるなどがあります。
用途: トリガーはアイテムのデータが定められた条件にマッチしたときに「問題」として検出されるためのルールです。これによりシステム管理者は問題発生を把握できます。
アクション
説明: トリガーの条件が満たされた時に実行される具体的な処理。これにはアラートの送信(メール、SMS)、スクリプトの実行などが含まれます。
用途: アクションは問題発生時に自動的に対応を行うための手段です。例えば、特定のトリガーが発動した際に技術者に通知を送るなどの設定が可能です。
※補足 重大度(serverity)について
6段階で評価される。
また名称は独自でカスタマイズすることが出来るので、システム移行の場合はそのまま移行出来たりする。
ただ、この指標はZabbixサーバで一意なのでシステム統合の場合は各トリガーに対して重大度を再度検討し直す必要がある。
以下重大度のカスタマイズの方法
実際に使ってみる
構成
サーバ1:
OS:ubunts(AmazonLinuxはソフトウェアインストールする時色々面倒なので)
スペック:※無料枠のt2microだと途中でマシンがクラッシュしたので、mediumくらいないとダメかも
ソフトウェア:Zabbix-server(zabbixserver,mysql,php)
サーバ2:
OS:ubunts
スペック:てきとー
ソフトウェア:Zabbix-agent
サーバ3:
OS:ubunts
スペック:てきとー
ソフトウェア:Zabbix-agent
VPNとかdockerとか色々めんどくさくなって結局以下のシンプルな構成になりましたw
Zabbixサーバの構築
以下参考にさせていただきました!
https://komusubi-blog.com/wsl2-zabbix-build/
何とかできました!!!
一応ざっくり手順
①各種ソフトウェアのインストール
②DB用のユーザ作成
③ポート開ける、ZabbixのユーザがDBにアクセスできるように許可設定
Zabbixクライアントの構築
ざっくり手順
①AWS上にLinuxサーバ構築
②Zabbixクライアントのインストール
③Zabbixクライアントの設定(Zabbixサーバとの連携)
④セキュリティグループの修正(10050ポート開いてないとZabbixサーバと連携とれない)
以下参考にさせていただきました!
https://qiita.com/Koji-Takahashi/items/937888e5b53a4d7fc82b
Zabbixサーバの設定
クライアント側の設定できたので次にAWSリソース監視できるように各種設定と、
どのようにブラウザに出力するかの設定
ざっくり手順
①アイテム、トリガー、アクションの設定
以下参考にさせていただきました!
https://qiita.com/t-son-wk/items/00006bb84ee687cccb1a
感想
今回はテンプレート使ってアイテム作成したけど、次は自分で作成してみたい。
あと、マップとかSLAとかまだまだ触ってない機能あるので一か月間くらい遊んでみようと思います。