ForgeVision Engineer Blog

フォージビジョン エンジニア ブログ

AWSをMackerelで監視(Windows編)

こんにちは。ソリューション技術部の松尾です。

前回のブログに書かせていただいた通り、間を空けず投稿させていただきました!

情報も鮮度が大切で新しいサービスはどんどん使って、どんどんアウトプットしていきたいところです。

魚においては鯖が鮮度の維持が難しいということで、水揚げ後適切に対処しないと食あたりが発生しやすいらしいです。 つまりは、私たちが美味しい鯖を食べられるのは、魚屋さんがきっちり処置を行っているからなんですね!

それでは、ITの業界で鯖に当たるものは何か・・・ そうです!Mackerelです!!

魚屋が鯖を捌くように、エンジニアがMackerelを捌きましょう!
※この流れだと、Mackerelが食あたりしそうサービスであるかのように紹介をしていますが、「クラウドサービスを漏れなくしっかり監視しよう!」と読み解いていただければありがたいです・・・。

前回の投稿ではチェックプラグインを利用した監視方法を紹介させていただきました。 過去のMackerelについてのブログは最下部にURLを纏めておりますのでご参照下さい!

今回はWindows OSを対象としたMackerelの監視方法を紹介させていただきます!
※前回のブログで説明させていただいている用語におきましては、説明を省かせていただきます。

MackerelAgentのインストール

まずはMackerelAgentのインストールを行います。

Mackerel WEB画面にてWindows用のMackerelAgentのダウンロードを行います。 「Hosts」画面右上の[エージェントをインストール]を押下します。

f:id:matsuo1017:20181005112734p:plain
Hosts画面①

プルダウンで「Microsoft Windows」を選択し、「①エージェントをダウンロードする」下の[mackerel-agent-latest.msiをダウンロード]を押下するとインストーラのダウンロードが開始されます。
「②ホストにエージェントをインストールする」下にインストール方法及びAPIキーの情報が記載されていますので、任意の手順でインストールを行います。 今回の投稿では「A. GUIでインストール」を行っていきます。

f:id:matsuo1017:20181005113829p:plain
エージェントインストール画面①

Windowsホストへログインし、MackerelAgentのインストールを行います。
※今回は「Windows Server 2016 Datacenter」にインストールを行います。

任意の場所にインストーラを配置し、インストールを開始します。

ライセンスの同意にチェックを行ったら[Install]を押下します。

f:id:matsuo1017:20181005122510j:plain
インストーラ①

APIキーの入力を行います。 APIキーはインストーラをダウンロードしたMackerel WEB画面に表示されていたものです。

APIキーの入力が完了したら[Install]を押下します。

f:id:matsuo1017:20181005122527p:plain
インストーラ②

インストールが開始され、数秒後に完了します。

f:id:matsuo1017:20181005122535p:plain
インストーラ③

完了画面が表示されたら[Finish]を押下します。

f:id:matsuo1017:20181005122543p:plain
インストーラ④

サービス一覧画面でmackerel-agentが起動していることを確認します。

f:id:matsuo1017:20181005122554p:plain
サービス一覧①

Mackerel WEB画面でWindowsホストが登録されたことを確認します。

以前の記事でも書かせていただきましたが、Mackerelの表示名はOSのホスト名がそのまま使用されます。
以前チェックプラグインの監視方法を紹介させていただいたブログでは、MackerelAgentの設定ファイルで表示名を定義する方法を記載させていただきましたが、WEB画面でも設定することが可能です。

表示名右の「設定」を押下し、管理名部分に任意の名前を入力後、[更新]を行うことで表示名を付与することができます。

f:id:matsuo1017:20181005130133p:plain
Hosts画面②

これでMackerelAgentのインストールは完了です。

Windowsの監視

本項ではMackerelAgentの設定ファイルを用いた監視について言及します。

Mackerel WEB画面で行う監視については、Linuxの場合と変わりありません。 Mackerel WEB画面での監視、通知の設定方法については以下のURLを参照下さい。

techblog.forgevision.com

Windowsホストにログインし、MackerelAgentの設定ファイルを開きます。

  • ディレクトリ
C:\Program Files (x86)\Mackerel\mackerel-agent\mackerel-agent.conf
  • 設定ファイル
# pidfile = "C:\path\to\pidfile"
# root = "C:\path\to\root"
verbose = false
apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

# Include other config files
# include = "C:\path\to\conf\*.conf"

# Configuration for Custom Metrics Plugins
# see also: https://mackerel.io/ja/docs/entry/advanced/custom-metrics
#
# [plugin.metrics.vmstat]
# command = "ruby C:\path\to\plugins\metrics-vmstat.rb"
# [plugin.metrics.curl]
# command = "ruby C:\path\to\plugins\metrics-curl.rb"

※表示形式はTOML形式です。

Linuxの場合と同じくAPIキー以外の設定はほぼコメントアウトされています。 verboseはログの詳細出力設定になりますが、こちらも有効にはなっておりません。
※Windowsの場合のMackerelAgentのログは、Windowsイベントログのアプリケーションログに出力されています。動作を確認したい場合はそちらをご確認下さい。

今回は以下の監視を行う場合の設定を記載します。

  • ポート監視
  • サービス監視
  • ログ監視

※上記の監視項目はAWSなどのクラウドサービスでは基本メトリックで取得できないため、あえてピックアップしております。

以下に設定例を記載します。

verbose = true
apikey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

display_name = "Mackerel-Test-Windows-01"

roles = [ "john-production-service:john-production-win" ]

on_start = "working"
on_stop  = "poweroff"

[plugin.checks.mackerel-check_port-rdp]
command = "check-tcp.exe -H localhost -p 3389 -w 10 -c 20"
notification_interval = 60
max_check_attempts = 3

[plugin.checks.mackerel-check_ntservice-W32Time]
command = "check-ntservice /s W32Time"
notification_interval = 60
max_check_attempts = 3
check_interval = 5

[plugin.checks.mackerel-check_log-test]
command = '''check-log.exe --file  C:\mackerel_test\logs\test.log --pattern ERROR --encoding Shift_JIS --return'''

注意:ログ監視設定部分(最下部)で、検出したい文字列に日本語を含む場合は、mackerel-agent.confファイル自体のエンコーディングを「UTF-8」にする必要があります。

Windowsの場合は、チェックコマンドが初めにいくつか準備されているので、それを利用します。
※パラメータの細かい説明は前回の以下ブログに記載しておりますのでそちらをご確認下さい。
techblog.forgevision.com
プロセスの監視には「check-procs」も準備されていますが、今回は「check-ntservice」を利用します。
※Windowsの場合、サービスには存在するもののプロセスには存在しないようなサービスがあるため、Mackerelではそれぞれのプラグインを用意しています。

最下部の設定「[plugin.checks.mackerel-check_log-test]」にはログファイルの文字コードを指定しています。 Windowsはログの文字コードの形式がShift_JISの場合があるため、注意が必要です。
※Mackerel画面上にアラートが発報された際、内容が文字化けしてしまいます。

設定が完了したら、mackerel-agentサービスを再起動します。

f:id:matsuo1017:20181005190116p:plain
サービス一覧②

問題なく再起動が完了したら、Mackerel WEB画面で設定が有効になったことを確認できます。

f:id:matsuo1017:20181009123017p:plain
Hosts画面③

ここまでの確認が完了していれば、Mackerelにアラートが通知されます。 これをさらにメールなど特定の連絡先に通知を行う場合は、以前投稿させていただいた以下のブログを参照下さい。
techblog.forgevision.com

以上でWindows OSへのMackerelAgentのインストールと監視設定は完了です。

次の配信について

今回はWindows OSに対するMackerelAgentのインストールと監視設定方法にて記載させていただきました。 次回は前回のブログでご報告している以下について投稿できたらと考えています。

  • AWSインテグレーション

それでは次回もお楽しみに!!

※前回までのブログについては以下をご参照下さい。

techblog.forgevision.com
techblog.forgevision.com
techblog.forgevision.com