share facebook facebook twitter menu hatena pocket slack

2019.01.24 THU

Datadog win32_event_log (v6 日本語環境) 訂正

大住 孝之

WRITTEN BY 大住 孝之

以前 Datadog Agent Version 6 で日本語環境でのイベントログ取得を確認したのですが、 検証に誤りがありました。

以前日本語環境のWindows上で、イベントログ送信がうまく動作しなかったので現状(v6)ではどうなっているのかを確認します。 また、 Logs での連携も追加されているので併せて確認します。 DatadogAgent を Windows10(日本語環境) へインストール - vague memory 以前...

htnosm.hatenablog.com

再度確認した所、Agent Version 5 同様、 マルチバイトでは動作しませんでした。

Event Viewer Integration

WindowsイベントログをDatadogへ連携するインテグレーションが用意されていますが、 現時点では日本語環境ではエラーレベルでの絞り込みが行なえません。

カスタムチェック

version 6でも 5 同様のカスタムチェックを作成することで動作が確認できました。

win32_event_log.py から win32_event_log_ja.py を作成します。

  • win32_event_log.py
C:\Program Files\Datadog\Datadog Agent\embedded\Lib\site-packages\datadog_checks\win32_event_log\win32_event_log.py
  • win32_event_log_ja(差分) v6対応版
--- win32_event_log.py
+++ win32_event_log_ja.py
@@ -1,3 +1,12 @@
+#!/usr/bin/python
+# -*- coding: cp932 -*-
+'''
+日本語環境用イベントログ監視(v6)
+'''
+import sys
+reload(sys)
+sys.setdefaultencoding('cp932')
+
 # (C) Datadog, Inc. 2010-2017
 # All rights reserved
 # Licensed under Simplified BSD License (see LICENSE)
@@ -96,6 +105,18 @@
         if ltypes:
             query['Type'] = []
             for ltype in ltypes:
+                if ltype == 'Critical':
+                    ltype = '重大'
+                elif ltype == 'Error':
+                    ltype = 'エラー'
+                elif ltype == 'Warning':
+                    ltype = '警告'
+                elif ltype == 'Information':
+                    ltype = '情報'
+                elif ltype == 'Audit Success':
+                    ltype = '成功の監査'
+                elif ltype == 'Audit Failure':
+                    ltype = '失敗の監査'
                 query['Type'].append(('=', ltype))
         if source_names:
             query['SourceName'] = []
@@ -233,9 +255,11 @@
     def _alert_type(self):
         event_type = self.event['Type']
         # Convert to a Datadog alert type
-        if event_type == 'Warning':
+        if event_type == '警告':
             return 'warning'
-        elif event_type == 'Error':
+        elif event_type == '重大':
+            return 'error'
+        elif event_type == 'エラー':
             return 'error'
         return 'info'

win32_event_log_ja.py を checks.d、win32_event_log_ja.yaml(中身はwin32_event_log.yamlと同じ) を conf.d に格納して使用します。

C:\PROGRAMDATA\DATADOG
├─checks.d
│      win32_event_log_ja.py
├─conf.d
│  ├─win32_event_log_ja.d
│  │      conf.yaml

実行結果例

システムアカウントの言語設定

尚、ログインユーザの言語設定が日本語でも、 システムアカウントの言語設定を英語としておけば、 そのまま win32_event_log を利用できます。

  • [コントロールパネル] -> [地域] -> [管理] -> [設定のコピー]

ようこそ画面の欄がシステムアカウント設定も含むようです。

元記事はこちら

Datadog win32_event_log (v6 日本語環境) 訂正

大住 孝之

大住 孝之

構築運用担当。 個性的な面々の中で無個性という個性を打ち出していこうと画策中。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。