inflearn logo
知識共有
inflearn logo

風変わりなやつのZabbix探検記:TerraformとAWSで学ぶZabbix 8実践モニタリング

TerraformでAWS実習環境を構築し、Zabbix 8の新機能と実践的な監視運用方法を、障害検知・Slack通知・復旧の実習とともに学びます。 Zabbix 8のNative JSONでJSON値を保存し、Dependent itemとJSONPathで必要な値を分割します。最新データと障害状況の表示列を整理し、散布図・グラフ軸の反転で指標を比較します。完成したDashboardはYAMLでエクスポートした後、再度インポートします。 既存のZabbix運用に必要なServer・Agent 2・Item・Trigger、障害・復旧、Slack通知、メンテナンス、公式MySQL・RedisテンプレートとWeb scenarioも扱います。CPU・ディスク・Apache・HTTPの問題を実際に発生させて復旧しながら、全体の流れをつなげます。 AWS実習環境はTerraformで構築・整理します。構成ファイルの保存、fmt・init・validate・plan、保存したplanの適用、SSH接続、stateの確認と実習リソースの整理を、実際の手順に沿って進めます。

1名 が受講中です。

難易度 初級

受講期間 無制限

zabbix
zabbix
Terraform
Terraform
AWS
AWS
monitoring
monitoring
Linux
Linux
zabbix
zabbix
Terraform
Terraform
AWS
AWS
monitoring
monitoring
Linux
Linux

受講後に得られること

  • Terraform構成ファイルを準備し、fmt・init・validate・plan・applyを経てAWSサーバーを作成した後、SSH接続・state確認・destroyまで一連の流れで進めることができます。

  • Zabbix 8の新機能であるNative JSON、表のカスタマイズ、散布図、ダッシュボードのエクスポート・インポートを直接利用できます。

  • ZabbixのHistory・Trendテーブルをパーティショニングし、Housekeeperの役割を分離することで、公式Agent 2テンプレートを使用してMySQL・Redisの主要指標と障害・復旧フローを監視できます。

  • Zabbix Agent 2の組み込みプラグインとロード可能なプラグイン(loadable plugin)の違いを区別し、講義で使用する組み込みのMySQL・Redisプラグインと公式テンプレートを使って、アプリケーションを監視できます。

受講後には、次のようなことができるようになります。

受講を終えると、Zabbix 7.4から引き継がれる従来の機能と、Zabbix 8で変更された機能を区別して使えるようになります。Native JSONでJSON値を保存し、不正なJSONが入力された場合の動作を確認します。Triggerに必要な数値・文字列の値は、Dependent itemとJSONPathで切り分けます。JSON配列はLLDと連携し、繰り返しリソースが増減した際にItemとTriggerが自動的に作成される流れまで実習します。

最近のデータと障害状況では、必要な列だけを残し、順序とサイズを調整します。散布図で2つの指標の関係を確認し、グラフの軸を反転したときに値がどのように見えるかも比較します。完成したDashboardはYAMLとしてエクスポートした後、再度インポートして復元版を作成します。

Terraform構成ファイルを保存し、init・validate・planで設定を確認した後、保存したplanを適用してAWSサーバーを2台作成します。出力値を使って各サーバーにSSH接続し、stateを確認します。すべての実習が終わったら、同じstateから保存した削除planを適用し、Terraform stateとAWS実習リソースが空になっていることを確認します。

実習環境は必要な分だけ小さく構成し、障害を自分で再現した後、すべての実習が終わったら、講義でTerraformを使って作成したAWSの実習リソースを整理します。

講義内容の紹介

Zabbix 8の新機能を実際のデータに適用します

Native JSONでJSONレスポンスを保存し、必要な値をDependent itemに分割します。最新データと障害状況の表示列を必要な順序に配置し、散布図とグラフの軸反転で指標を比較します。DashboardはYAMLでエクスポートした後、再度インポートして同じ構成を復元します。

  • Native JSONでJSON値を独立したデータ型として保存する

  • 最新データと障害状況の表示列を非表示にし、順序とサイズを変更する

  • 散布図で2つの指標の関係・クラスター・異常値を調べる

  • グラフの軸反転と改善されたツールチップの動作を比較する

  • DashboardをYAMLでエクスポートし、再度インポートする

  • スライドショーで複数のダッシュボードページを自動で切り替える

インストールから障害・復旧まで同じ環境で続けます

Zabbix Serverのインストール後、次の作業を同じMainサーバーとTargetサーバーで順番に進めます。

  • TargetサーバーにAgent 2をインストールし、Passive・Active収集方式で最初のデータを受信する

  • CPU・ディスク・Apache Triggerを作成し、Problem発生からRecoveryまで確認する

  • 同じ障害の障害通知と復旧通知を、Slackでそれぞれ1回ずつ受信する

  • メンテナンス中はデータとイベント履歴を保持しつつ、Slackへの送信のみ抑制する

  • 公式MySQL・Redisテンプレートを接続し、主要な値と障害・復旧を確認する

  • Native JSON・Dependent item・LLDでJSONデータと反復リソースを収集する

  • WebシナリオでHTTP 500・3秒の遅延・リクエスト急増を区別し、それぞれ復旧する

  • 最後の講義でTerraform stateとAWSの実習リソースがすべて整理されているか確認する

各障害の実習では、問題を自分で発生させ、値の変化を確認します。TriggerがProblemを作成し、同じ事象がRecoveryに変わるまでの過程を一連の流れとして追います。

1. TerraformとAWSで実習環境を準備する

監視対象、環境の変化の速さ、運用体制とチームが許容できる管理負担を基準に、ZabbixとPrometheusの選択基準を比較します。

WindowsではWSL2 Ubuntuを準備し、macOSとLinuxでは各OSのターミナルを使用します。TerraformとAWS CLIをインストールした後、個人のAWSアカウントを接続します。構成ファイルの保存から、fmt・init・validate・plan、保存したplanの適用、SSH接続、stateの確認とdestroyまで、実際のAWSサーバーを作成して整理する手順を学びます。

2. 公式パッケージのインストールとMySQLパーティション運用

Zabbix公式ダウンロードセレクターでZabbix 8.0、Ubuntu 26.04、Server・Frontend・Agent、MySQL、Apacheの組み合わせを選択します。公式ページの案内どおりの手順で、Server、Frontend、DB、Web UIをインストールします。

History 5テーブルは日単位、Trend 2テーブルは月単位に分割します。将来のパーティションの作成、保存期間を過ぎたパーティションの削除、cronの実行とログ、pMAXの保護、History・TrendとHousekeeperの役割分担まで、あわせて解説します。

TerraformでAWS実習環境を構築・整理します

Windows WSL・macOS・LinuxでTerraformとAWS CLIを準備し、個人のAWSアカウントを接続します。公開されているTerraform構成ファイルを保存した後、fmt・init・validate・planで事前に確認し、保存したplanを適用してUbuntuサーバーを2台作成します。この過程ではTerraformコマンドを個別に暗記するのではなく、実際の作成・接続・整理の手順の中で繰り返し使用します。

MainサーバーにはZabbix ServerとFrontend、Zabbix用のMySQLをインストールします。監視対象であるTargetサーバーにはAgent 2とApache・PHPのステータスAPI、MySQL、Redisを構成します。監視データがTargetサーバーからMainサーバーに入ると、Zabbixが値を保存し、Triggerの条件を計算します。

すべての演習を終えたら、同じTerraformフォルダとstateで保存した削除planを適用します。空のstateとAWS演習リソースが0であることを確認するまでが、この講義のTerraform演習です。

各講義ごとに、動画の下にある授業ノートを確認してください

各講義を受講する際は、動画下の授業ノートを必ず開いて確認してください。
実習コードがある講義には、今回の講義の実習コードを見るためのリンクがあり、リンクをクリックすると公開ブログのトップ画面ではなく、その講義で使用するコードと説明の位置に直接移動します。

コード実習がない講義にも、動画の内容を補足する案内が含まれている場合があるため、授業ノートを見落とさずに確認してください。

動画ではコードを長々と読む代わりに、コマンドを実行する場所と順序、正常な結果、問題が発生した際にまず確認すべき箇所を説明します。実習に必要なコマンドと設定は、授業ノートからコピーして使用できます。

このような内容を学びます

3. Agent 2、Item、Triggerと障害の流れ

監視対象であるTargetサーバーにAgent 2をインストールし、Passive・Active収集方式の違いを、実際の接続方向と設定ファイルで確認します。基本Itemを作成し、最新値、更新時刻、HistoryとTrend、グラフを読み取ります。

その後、CPU・ディスク・Apacheの問題を安全に発生させます。Trigger条件、深刻度、Problem、確認処理、対応メモ、Recoveryが、1つのイベント内でどのようにつながるのかを比較します。

4. Slack通知、メンテナンスと公式テンプレート

Slack Incoming Webhook用のMediaと専用の通知ユーザーを紐付けます。汎用のTrigger Actionで、障害時に1回、復旧時に1回通知されるように設定します。

メンテナンス中はZabbixのデータと障害履歴を残し、Slackへの送信だけを停止します。MySQLとRedisはZabbix Agent 2に含まれる公式プラグインと公式テンプレートを接続し、主要な値と障害・復旧を確認します。

5. Zabbix 8のNative JSONとLLD

Zabbix 8のNative JSONデータ型でJSON値を保存し、不正なJSONが入力された場合にどのように処理されるかを確認します。Triggerで使用する値は、Dependent itemとJSONPathで分割します。

JSON配列とLLDマクロをDiscovery ruleに関連付けます。Item prototypeとTrigger prototypeを使用し、繰り返しリソースが増減しても同じ収集・判定ルールが自動的に適用されるプロセスを確認します。

6. Zabbix 8の表・散布図・ダッシュボード機能

最新データと障害の状況では、必要な表示列だけを残し、順序とサイズを変更します。散布図で2つの値の関係を確認し、グラフの軸の反転とTooltipの動作を比較します。現在の障害・影響対象・傾向が表示されるDashboardを作成した後、YAMLとしてエクスポートし、再度インポートします。複数のページはSlideshowで自動的に切り替えます。

7. Webサービス監視と実習環境の整理

最後のWeb実習では、小さなJSONステータスAPIを作り、HTTP agentを1回実行するだけで複数の値を分けて保存します。Web scenarioと専用のリクエストログを使って、HTTP 500、3秒の遅延、リクエストの急増をそれぞれ異なる問題として切り分け、手動で復旧します。

すべての演習が終わった後、同じTerraformフォルダとstateを確認します。保存した削除planをそのまま適用し、空のstateとAWS演習リソースが0であることを確認します。

受講前の注意事項

実習環境

  • 個人のAWSアカウントが必要です。会社・学校の組織アカウントやIAM Identity Centerは、講義の基本的な手順では使用しません。

  • WindowsではWSL2 Ubuntuを使用します。macOSではWSLをインストールせず、macOS Terminalを使用します。Linuxでは実際のLinuxターミナルを使用します。

  • 講義の実際のローカル画面は、Windows WSL2 Ubuntu Bashを基準に撮影しています。macOSとLinux用のインストールコードは、授業ノートで別途提供します。

  • サーバー実習では、Ubuntu 26.04 LTS、MySQL 8.4、Apache、PHP、Zabbix Agent 2の組み合わせを使用します。

  • Windows 10/11または最近のmacOS・Linux環境、ウェブブラウザとコードエディタをご用意ください。

必要な基礎知識

  • ターミナルでcdを使ってフォルダーを移動し、sudoでコマンドを実行できる必要があります。

  • viまたは使い慣れたテキストエディターで設定ファイルを開いて保存できる必要があります。

  • systemctlでサービスを開始・停止し、状態を確認するとともに、journalctlでサービスログを確認する実習が含まれます。

  • Zabbixの経験は不要です。ただし、Linuxコマンドやネットワークの基礎から学ぶ入門講座ではありません。

AWSの費用

講義の演習環境では、NAT Gateway、RDS、ALB、EKSは作成せず、ZabbixがインストールされたMainサーバーと、監視対象であるTargetサーバーの2台のEC2を必要な時間のみ使用します。講師の検証環境は、月額10ドル未満を目標に設計しています。

実際の費用は、リージョン、使用時間、税金、為替レート、データ転送、および削除の有無によって異なります。10ドル以下を保証するものではありません。インスタンスを起動したままにしたり、EBSを残したりすると費用が発生し続ける可能性があるため、すべての実習が終わった後は、必ず後片付けの講義に従ってください。

バージョン案内

この講義の収録・検証版は、Zabbix 8.0.0beta2プレリリースとUbuntu 26.04 LTSを基準に制作しました。講義の最終整理を進める2026年9月3日時点でも、Zabbix 8の公式ドキュメントは開発版として表示されています。

秘密情報

AWS Access Key、Secret Access Key、Slack Webhook URL、および実習用パスワードは、受講生ご自身の値を使用します。AWS rootアカウントの代わりに、実習用のIAMユーザーを作成して準備してください。

このような方におすすめです

  • Zabbixを初めてインストールし、実際のサーバーデータを取得してみたいシステム・インフラエンジニア

  • インストール経験はあるものの、Item・Trigger・Templateをどのように連携させればよいか途方に暮れていた方

  • 障害アラートを受けた後の原因確認、復旧、Recoveryの確認までを一通り練習したい方

  • Zabbix History・Trendのパーティショニング、将来のパーティション作成、保存期間を過ぎたパーティションの削除とHousekeeperの役割分担を自分で構成してみたい方

  • MySQL・Redisの公式テンプレートとJSON・LLDを実際の運用対象に適用してみたい方

  • Slack通知とDashboardを併せて構成し、運用画面を整理したい方

  • Zabbix 7の経験を、Zabbix 8のNative JSON、表のカスタマイズ、散布図、Dashboardのエクスポート・インポートの流れを通じてアップデートしたい方

  • Terraformを最初から深く学ぶよりも、実際にAWSサーバーを作成し、接続して整理する流れの中で基本的な使い方を身につけたい方

  • 小規模なAWS環境で、サーバーの作成から障害・復旧、リソースの整理までを一通り練習したい方

このような方には向いていないかもしれません

  • Linuxコマンドとネットワークの基礎から、非常にゆっくり学びたい方

  • 個人のAWSアカウントや有料クラウドを使わず、ローカルPCだけですべての実習を終えたい方

  • Grafana・Loki・Kubernetes・Ansibleの構築を今回の講義の主な目的として期待している方

  • プレリリース画面が正式版で一部変更される可能性を受け入れにくい方

講師紹介

こんにちは。インフラ・システムエンジニアおよびDevOps・SREエンジニアとして21年以上の経験を積み、Zabbixを基盤とした監視体制の構築・運用に携わってきました。

アプリケーション、オペレーティングシステム、ネットワーク、データベース、ハードウェア、電力使用量など、運用現場で必要となるさまざまな対象をZabbixで収集・分析してきました。MySQLのパーティション構成とパフォーマンス調整、Grafanaダッシュボード、Kubernetesワークロード、SNMP機器、MySQL・MongoDB・Elasticsearch・Redis・Kafkaなどの関連システムにおける主要な指標を収集・分析し、運用してきました。

実際の環境に適用して確認した構築方法や障害対応の経験は、IT技術ブログ「엉뚱한 녀석(Quirky Guy)」に記録しています。現場ですぐに使えるコマンドや設定方法、運用中に確認すべきポイントを、実務担当者の視点で整理して共有しています。

ブログ: https://quirky-guy.com

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Zabbixを初めてインストールし、実際のサーバーデータを取得してみたいシステム・インフラエンジニア

  • インストール経験はあるものの、Item・Trigger・Templateをどのように連携させればよいか途方に暮れていた方

  • Zabbix HousekeeperによるDB・サーバー負荷に悩んでおり、History・Trendのパーティショニングと役割分離を適用したい中級以上の運用担当者

  • 繰り返し行う手動設定を減らし、Native JSON・Dependent item・LLDを実務の監視に活用したい方

前提知識、
必要でしょうか?

  • ターミナルで `cd` を使ってフォルダを移動し、`sudo` でコマンドを実行できる必要があります。Terraformの経験は不要です。

  • 初級・中級以上を対象としており、Linux・AWS・ネットワークなどのインフラに関する基礎知識が必要です。

  • `vi` または使い慣れたテキストエディタで設定ファイルを開いて保存できる必要があります。

  • `systemctl`でサービスを開始・停止し、状態を確認するとともに、`journalctl`でサービスログを確認する実習が含まれます。

  • WindowsではWSL2 Ubuntuを使用します。macOSではWSLをインストールせず、macOS Terminalを使用します。Linuxでは実際のLinuxターミナルを使用します。

こんにちは
jikimy754557です。

キャリア認証

こんにちは。インフラ・システムエンジニアおよびDevOps・SREエンジニアとして21年以上の経験を積み、Zabbixベースの監視体制を構築・運用してきました。

アプリケーション、オペレーティングシステム、ネットワーク、データベース、ハードウェア、電力使用量など、運用現場で必要となるさまざまな対象をZabbixで収集・分析してきました。MySQLのパーティション構成とパフォーマンス調整、Grafanaダッシュボード、Kubernetesワークロード、SNMP機器、ならびにMySQL・MongoDB・Elasticsearch・Redis・Kafkaなどの関連システムの主要指標を収集・分析し、運用してきました。

実環境に適用して確認した構築方法と障害対応の経験は、IT技術ブログ風変わりなやつ(Quirky Guy)に記録しています。現場ですぐに使えるコマンドや設定方法、運用中に確認すべきポイントを実務担当者の視点で整理して共有します。

ブログ:https://quirky-guy.com

もっと見る

カリキュラム

全体

29件 ∙ (3時間 53分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール

¥20,790

30%

¥3,715