メインコンテンツまでスキップ
Sumo Logic Japanese

Microsoft SQL Server アプリケーションのログの収集

このページでは、SQL Server ERRORLOG データを収集するためのローカル ファイル Source とスクリプト Source を設定する手順について説明し、ログ メッセージの例を示します。リンクをクリックして、トピックに移動してください。

収集の概要

このスクリプトの目的は、データベース テーブルに対してクエリを実行して、MS SQL サーバのパフォーマンス メトリクスを収集することです。このスクリプトは、MS Windows Server 2012 R2 Standard と MS SQL Server 2014 で開発、デプロイ、テストされています。

また、このスクリプトは、提供された設定ファイルで指定されている認証メカニズムを使用して SQL Server に接続します。次に、このスクリプトは設定ファイルで指定された SQL クエリを実行し、次のようなキーと値のペアとして SQL クエリ結果の各レコードを出力します。

{fieldname1:fieldvalue1} {fieldname2:fieldvalue2} {fieldname3:fieldvalue3}...

ステップ 1: Windows 用の Collector のインストール

「Windows への Collector のインストール」の手順に従って Windows 用の Collector をインストールして設定します (まだの場合)。

ステップ 2.ローカル ファイル Source の設定

通常、ERRORLOG では UTF-16LE エンコーディングが使用されますが、SQL Server でこの設定に使用されるファイル エンコーディングを確認する必要があります。

Mac で ERRORLOG エンコーディングを確認するには、次のコマンドを使用します。

MacBookPro:Downloads npande$ file -I ERRORLOG*ERRORLOG*
ERRORLOGERRORLOG: text/plain; charset=utf-16le
ERRORLOG.1: text/plain; charset=utf-16le
ERRORLOG.2: text/plain; charset=utf-16le

Notepad ++ を使用して ERRORLOG エンコーディングを確認することもできます。

ERRORLOG を取り込むためのローカル ファイル Source を設定するには、「ローカル ファイル Source」の手順に従いますが、次の点が異なります。

  1. ステップ 4 で、システムに応じて [File Path (ファイル パス)]C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\LOG\ERRORLOG などを使用します。
  2. [Source Category][DB/MSSQL/ERROR] を設定します。
  3. 手順 5 で、[Encoding (エンコーディング)][UTF-16LE] を選択します。

ステップ 3.スクリプトと設定ファイルのダウンロード

以下のファイルをダウンロードします。

Windows システム内に作成したフォルダ (C:\MSSQL_Perf_Monitor_Script) にファイルをコピーします。

ステップ 4.データベース ログイン パラメータの設定

このセクションでは、MSSQL_Perf_Monitor.cfg ファイルを更新してデータベース ログイン パラメータを設定する方法を説明します。

使用する認証方式に従ってファイルの [DB Login (DB ログイン)] セクションを設定します。次のいずれかの Windows 認証方式を使用することをお勧めします。 

  • ODBC プロバイダによる Windows 認証
  • sqlClient プロバイダによる Windows 認証
  • ユーザ資格情報を使用した SQL Server 認証

データベース ログイン パラメータを設定するには、次の手順を実行します。

MSSQL_Perf_Monitor.cfg ファイルの [dbLogin] セクションを、使用している認証メソッドに応じて設定し、次の表に従ってオプションを変更します。

  • ODBC プロバイダによる Windows 認証 
Server (サーバ) = server_name 例: "WIN-Prod-ABC"
Database (データベース) = database_name 例: ”master"
UserId (ユーザ ID) =  データベース ユーザの資格情報は必須ではありません
Pwd (パスワード) =  データベース ユーザの資格情報は必須ではありません
WinAuthODBC=True  
WinAuthSqlClient=False  
  • sqlClient プロバイダによる Windows 認証 
Server (サーバ) = server_name 例: "WIN-Prod-ABC"
Database (データベース) = database_name 例: ”master"
UserId (ユーザ ID) =  データベース ユーザの資格情報は必須ではありません
Pwd (パスワード) =  データベース ユーザの資格情報は必須ではありません
WinAuthODBC=False  
WinAuthSqlClient=True  
  • ユーザ資格情報を使用した SQL Server 認証
Server (サーバ) = server_name 例: "WIN-Prod-ABC"
Database (データベース) = database_name 例: ”master"
UserId (ユーザ ID) = user_id 例: "sa”
Pwd (パスワード) = user_password 例: “sa123”
WinAuthODBC=False  
WinAuthSqlClient=False  

ステップ 5.クエリの有効化と無効化

MSSQL_Perf_Monitor.cfg[queries] セクションには、9 個の SQL クエリが含まれます。  

データベース管理者と相談して使用するクエリを決めて、本番環境にデプロイする前にクエリの確認をデータベース管理者に依頼してください。情報システム テーブルの量は組織ごとに異なります。

クエリを有効化および無効化するには、次の手順を実行します。

  1. MSSQL_Perf_Monitor.cfg ファイルの [queries] セクションに移動します。
  2. クエリをコメントアウトするには、先頭にシャープ記号 (#) を付けます。
  3. クエリを追加するには、次の形式でクエリをファイルに入力するか、貼り付けます。
SQLQuery = Your query on a single line (no newlines)
同じサーバの複数のデータベース スキーマでクエリを実行する

Windows 認証 (ODBC プロバイダ) では、同じサーバ上の複数のデータベース スキーマでクエリを実行できます。USE ステートメント接頭辞を変更することによってデータベース コンテキストを変更する方法については、次の例を参照してください。

# Query 10
# Query from mydb1 database
SQLQuery = Use mydb1; Select * from NPPersons
# Query 11
# Query from mydb1 database
SQLQuery = Use mydb1; Select LastName from NPPersons
# Query 12
# Query from mydb1 database
SQLQuery = Use mydb1; Select FirstName from NPPersons
 
# Query 13
# Query from mydb2 database
SQLQuery = Use mydb2; Select * from NPEmployees
 
# Query 14
# Query from master database
SQLQuery = Use master; SELECT * FROM dbo.spt_monitor

設定ファイルの設定を確認します。

[dbLogin]
Server=Servername
Database=
UserId=
Pwd=
WinAuthODBC=True
WinAuthSqlClient=False

ステップ 6.スクリプトのテスト

スクリプトをテストするには、次の手順を実行します。

  1. コマンド プロンプトに移動し、.bat ファイルを実行します。

    C:\MSSQL_Perf_Monitor_Script>MSSQL_Monitor.bat
    
  2. .bat ファイルによって vbs ファイルが実行されます。VB スクリプトで、.cfg ファイルで指定された SQL クエリが実行されます。 
  3. 各 SQL クエリ結果の出力がコンソールに表示されます。
  4. スクリプトが正常に実行されたら、次のセクションの説明に従って Sumo スクリプト Source を設定します。

ステップ 7.スクリプト Source の設定

スクリプト Source を設定するには、次の手順を実行します。

  1. Sumo Logic で、[Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] に移動します。
  2. Source を追加する Installed Collector の名前を見つけて、[Add (追加)] をクリックし、ドロップダウン メニューから [Add Source (Source の追加)] を選択します。
  3. [Script (スクリプト)] を Source タイプとして選択します。バージョン 19.245-4 以降の新しい Collector では、スクリプト Source の作成はデフォルトでは禁止されています。スクリプト Source を許可するには、user.properties 内の Collector のパラメータ enableScriptSource を true に設定する必要があります。
  4. [Name (名前)] に名前 (例: SQL Server Script) を入力します。[Description (説明)] は省略可能です。
  5. [Source Category] に、目的のカテゴリを入力します。たとえば、DB/MSSQL/DBQueryScript などの値を入力できます。
  6. 次の選択を行います。
  • [Frequency (頻度)] で、目的の頻度を選択します。 
  • [Specify a timeout for your command (コマンドのタイムアウトを指定)] で、実行時間の長いクエリを完了できる十分な長さの値を選択します。
  • [Command (コマンド)] で、[Windows Script (Windows スクリプト)] を選択します。
  • [Script (スクリプト)] で、[Type a path to the script to execute (実行するスクリプトへのパスを入力)] を選択し、C:\MSSQL_Perf_Monitor_Script\MSSQL_Monitor.bat と入力します。
  • [Working Directory (作業ディレクトリ)] に、C:\MSSQL_Perf_Monitor_Script と入力します。
  1. [Save (保存)] をクリックします。

 

サンプル ログ

2018-05-02 00:05:09,876 Logon       Login succeeded for user 'bob'. Connection made using SQL Server authentication. [CLIENT: 242.95.35.122]

2018-00-02 00:00:33,803 spid884s     SQL Server is now ready for client connections. This is an informational message; no user action is required.

2018-00-02 00:00:09,521 spid500     Could not allocate space for object 'dbo.SORT temporary run storage:  262898620895351' in database 'cache' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.