zabbix4.0のテスト用環境構築(Windowsでzabbix agentを作る)

検証用のZabbixサーバの準備ができましたら、引き続き検証用のZabbix Agentマシン(Windows)も作成していきます。

※Zabbix Agent用のマシンは、dockerコンテナではなくEC2インスタンスで作成します。

EC2インスタンス(TST-ZABAGT01)を作成 ※Windows の Zabbix agent用

例として下記構成で作成します。
  AMI: Microsoft Windows Server 2016 Base
  インスタンスタイプ: t2.micro
  サブネット: Zabbixサーバと同じサブネット
  自動割り当てパブリックIP: 有効
  ストレージ: 30GiB 汎用SSD(gp2)
  Nameタグ: TST-ZABAGT01
  セキュリティグループ: TST-DOCKER-SG ※既存のSGを流用します。

 ※キーペアは、先に作成したDockerインストールサーバ(TST-DOCKER01)のキーペア(今回の例であれば”TST-DOCKER”)を流用します。

 EC2インスタンス(TST-ZABAGT01)が作成されたら、ログイン情報を取得します。
  EC2管理コンソール > アクション > セキュリティ > Windowsパスワードを取得 > キーペアを選択 > パスワードを復号

 リモートデスクトップで接続します。
  コンピューター: TST-ZABAGT01 のパブリックIPv4アドレス
  ユーザー: localhost\Administrator
  パスワード: 復号したパスワード
 ※パスワードが長すぎて入力が辛い場合、一旦rdpファイルで保存→rdpファイルをダブルクリックして認証画面を表示すればコピペ可能になります。
 ※デフォルトだと全画面で開いてしまうので、必要に応じてrdpファイルをメモ帳などで開き、下記項目を設定します。
   ・smart sizing:i:1
   ・screen mode id:i:1
   ・desktopwidth:i:1024
   ・desktopheight:i:768
   ・winposstr:s:0,1,0,0,1024,768
 ↓
 RDPで接続できたら、任意のパスワードに変更します。
 ※英語キーボードなので記号の入力には注意
  スタートボタン > Windows Administrative Tools > Computer Management > Local Users and Groups > Users > Administrator を右クリック > Set Password.. > Proceed

 必要に応じて日本語化します。(手順は割愛)

Webサーバ機能の追加 (TST-ZABAGT01)

 本手順では例として、TST-ZABAGT01をWebサーバとして動かして、IIS関連のサービスをZabbixサーバで監視したいので、IISの機能をインストールしておきます。
 (サーバマネージャ>機能>Web Server (IIS) を選択 > インストールを実行)

Zabbix4.0エージェントのインストール (TST-ZABAGT01)

 zabbix_agent のインストーラをダウンロードして実行します。

Download Zabbix agents https://cdn.zabbix.com/zabbix/binaries/stable/4.0/4.0.17/zabbix_agent-4.0.17-windows-amd64-openssl.msi

 Host name: TST-ZABAGT01
 Zabbix server IP/DNS: (TST-DOCKER01 のプライベートIPv4アドレス)
 Agent listen port: 10050
 Server or Proxy for active checks: (TST-DOCKER01 のプライベートIPv4アドレス)
 Remote command: チェックなし
 Enable PSK: チェックなし
 Add agent location to the PATH: チェックなし
 ※その他はデフォルトのままインストール

 ※上記設定をミスった場合、直接configファイルを修正することもできます。
  具体的には、”C:\Program Files\Zabbix Agent\zabbix_agentd.conf”をバックアップして修正します。
  LogFile=C:\zabbix_agent\zabbix_agentd.log
  Server=(TST-DOCKER01 のプライベートIPv4アドレス)
  ServerActive=(TST-DOCKER01 のプライベートIPv4アドレス)
  Hostname=STG-ZABAGT01
 ↓
 管理ツール > サービス より、”Zabbix Agent” サービスを再起動します。

 メモ:それでもうまくいかない時は・・・
 コマンドプロンプト(管理者で実行)から、下記コマンドを実行します。 ※configファイルもフルパス指定するのを忘れずに。
 ”C:\Program Files\Zabbix Agent\zabbix_agentd.exe” –config “C:\Program Files\Zabbix Agent\zabbix_agentd.conf” –install
 ↓
 成功した場合のログ
 LogFile=C:\Program Files\Zabbix Agent\zabbix_agentd.log
  zabbix_agentd.exe [1432]: service [Zabbix Agent] installed successfully
  zabbix_agentd.exe [1432]: event source [Zabbix Agent] installed successfully

初期設定

 1.ローカルPCのブラウザからZabbixサーバ (TST-ZABSRV01) にログインします
   http://(TST-DOCKER01のパブリックIPv4アドレス)
   Username: Admin ※Aは大文字です
   Password: zabbix
 
 2.ホストを作成します。
   設定 > ホスト > ホストの作成
    ホスト名: TST-ZABAGT01
    表示名: TST-ZABAGT01
    グループ: Templates/Operating Systems ※任意で選んでOK
    IPアドレス: (TST-ZABAGT01 のプライベートIPv4アドレス)
    接続方法: IPアドレス
    ポート: 10050

 ※メモ:
   ホストを作成したたけでは、「エージェントの状態」はグレーアウトしたまま。
   緑や赤にするためには、死活監視用のアイテムを登録する必要があるらしい。(この手順では登録しない)

 3.アイテム作成
   設定 > ホスト > アイテム > アイテムの作成
    名前: Port_80
    タイプ: シンプルチェック
    キー: net.tcp.service[http]
    ホストインターフェース: (TST-ZABAGT01 のプライベートIPv4アドレス):10050
    監視間隔: 30s(30秒)
    ↓
    ”追加”ボタンをクリック

 4.トリガ作成
    設定 > ホスト > トリガ > トリガの作成
    名前: Port_80
    深刻度: 重度の障害
    条件式: {TST-ZABAGT01:net.tcp.service[http].last(#1)}=0
    ↓
    ”追加”ボタンをクリック

 5.メディアタイプ(メール)設定 ※AWS SESを指定する場合(SES側の事前設定が必要)
   管理>メディアタイプ>Email
    SMTPサーバ: email-smtp.us-east-1.amazonaws.com
    SMTPサーバーポート番号: 587
    SMTP helo: email-smtp.us-east-1.amazonaws.com
    送信元メールアドレス: zabbix@xxx.co.jp
    接続セキュリティ: STARTTLS
    ユーザー名: AKIAXXXXXXXXXXXXXXXX
    パスワード: 

 6.ユーザ作成
   管理>ユーザー>ユーザーの作成
    ユーザタブ
     エイリアス: test
     グループ: Zabbix administrators
     言語: 日本語
    メディアタブ
     タイプ: Email
     送信先: xxx@xxx.co.jp

 7.アクション作成
   設定>アクション>アクションの作成
    アクションタブ
     名前: Port_80_Check
     計算のタイプ A and B
     実行条件
      A トリガーの深刻度 以上 重度の障害
      B トリガー名 含む Port_80
    実行内容タブ
     実行内容: ユーザーに送信 → 作成したユーザを追加 → 更新
    権限
     ユーザーの種類: 特権管理者 ※「ユーザー」のままだとメールが飛ばない

メール通知テスト

 1.ブラウザからZabbixサーバ (TST-ZABSRV01) にログイン

 2.設定>ホスト>TST-ZABAGT01のトリガ
    テスト用トリガ(Port_80) の値が「正常」であることを確認

 3.TST-ZABAGT01 にリモートデスクトップ接続

 4.TSTZABAGT01のサービスより、「World Wide Web Publishing Service」(W3SVC)を停止

 5.Zabbix画面に戻り、設定>ホスト>TST-ZABAGT01のトリガ
   テスト用トリガ(Port_80) の値が「障害」であることを確認

 6.設定されているメールアドレスで、検知メールが受信できることを確認
 

メモ:後片付けするもの

EC2インスタンス削除 → TST-DOCKER01、TST-ZABAGT01
SG削除 → TST-DOCKER-SG
キーペア削除 → TST-DOCKER

コメント