サポートセンターホーム


Microsoft SQLServerの監視

概要

LogicMonitorは、Windows、Linux、Dockerコンテナーで実行されているか、Azureでホストされているかに関係なく、Microsoft SQLServerデータベースインフラストラクチャを監視する準備ができています。

LogicMonitorのSQLServer監視では、主にSQLデータベースクエリを使用して内部SQL監視テーブルをポーリングします。 接続は、Windows認証またはSQLServer認証を使用してJDBC接続文字列を介して行われます。

注意: LogicMonitorは、SQLServer上のWindowsServerフェールオーバークラスター(WSFC)を監視できます。 見る Windows Serverフェールオーバークラスター(SQL Server上)の監視 SQLServerモニタリングとWSFCモニタリングを並行して使用する方法の詳細については。

互換性

LogicMonitorのMicrosoftSQL Serverパッケージは、SQL Server2005から2019までの互換性が確認されています。

SQL Serverには多くの潜在的な構成があるため、LogicMonitorはすべての環境ですぐに使用できる互換性を提供できない場合があります。 ソリューションのいくつかの側面を手動で構成する必要がある場合があります。

MicrosoftがSQLServerの新しいバージョンをリリースすると、LogicMonitorは必要に応じてカバレッジをテストおよび拡張します。

セットアップ要件

依存関係

  • WMI(Windows上のSQL Server用)。 LogicMonitorは、自動化されたSQL名付きインスタンスの検出とSQLサービス(ブラウザー、レポートサービス、エージェントなど)の検出にWMIプロトコルを使用します。
  • SNMP(Linux上のSQL Serverの場合)。 LogicMonitorは、自動SQLServer検出にSNMPプロトコルを使用します。

モニタリングへのリソースの追加

SQLServerホストを監視に追加します。 監視にリソースを追加する方法の詳細については、を参照してください。 デバイスの追加.

資格情報を提供する

LogicMonitorは、SQL Serverの各インスタンスに正常にアクセスするために、適切な資格情報を提供できる必要があります。 これらの資格情報は、次の最小SQLServerアクセス​​許可を持つユーザーアカウントに属している必要があります。

GRANT VIEW ANY DEFINITION TO <USERNAME>
GRANT VIEW SERVER STATE TO <USERNAME>
GRANT VIEW ANY DATABASE TO <USERNAME>
GO

USE MSDB
CREATE USER <USERNAME> FOR LOGIN <USERNAME>
GRANT SELECT ON SYSJOBS TO <USERNAME>
GRANT SELECT ON SYSJOBHISTORY TO <USERNAME>
GRANT SELECT ON SYSJOBACTIVITY TO <USERNAME>

注意: ベストプラクティスとして、監視にシステム管理者権限を持つユーザーアカウントを使用しないでください。

次に説明するように、LogicMonitorがSQL Serverとの接続に使用するユーザーアカウントは、SQL Serverが実行されているオペレーティングシステムに応じて、WindowsまたはSQLServerのいずれかによって認証されます。

統合セキュリティ(Windows)

デフォルトでは、LogicMonitorは統合セキュリティが使用されていると想定し、SQL認証ではなくWindows認証を使用してSQLServerへの接続を試みます。 LogicMonitorは、コレクターのユーザーに関連付けられているWindows資格情報を使用します。 したがって、コレクターのユーザーには、前述の最小限のSQLServerアクセス​​許可が必要です。 Collectorに関連付けられているユーザーを、統合セキュリティを備えた代替ユーザーに更新する方法はありません。

統合セキュリティが構成されていない場合は、次のセクションで説明するように、JDBC資格情報を介して接続を許可できます。 それ以外の場合、JDBC資格情報は、コレクターのプロパティとして存在する場合でも無視されます。

条件付き要件:

  • SQLServerブラウザサービス。 コレクターがポートを指定せずにSQLServerインスタンスと通信できるようにします。 これは、次のいずれかの条件が存在する場合にのみ必要です。
    • SQL Serverインスタンスは非標準ポート(デフォルトの1434以外のポート)でリッスンしており、を使用してこれらのポートを定義しないことを選択しました。 jdbc.mssql.port プロパティ(このプロパティについては、以下で説明します リソースへのプロパティの割り当て このサポート記事のセクション)。
    • SQL Serverインスタンスは、動的ポートでリッスンするように設定されています。

JDBC資格情報(Azure、Docker、またはLinux(または統合セキュリティが利用できない場合はWindows))

直接SQL認証の場合、JDBC資格情報が必要です。 これらの資格情報はプロパティとして構成されます(jdbc.mssql.user 影響により jdbc.mssql.pass)ホスト上。 個々のSQLインスタンスに異なる認証がある場合は、 mssql。 。ユーザー 影響により mssql。 。パス 代わりにプロパティが使用されます。 SQL Serverホストでの割り当てに使用できるこれらのプロパティおよびその他のプロパティの詳細については、このサポート記事の次のセクションを参照してください。

SQLServerリソースへのプロパティの割り当て

次のプロパティは、LogicMonitor内のSQLServerリソースに設定できます。 LogicMonitorは、SQLServerの構成に必要なすべてのプロパティの自動検出に努めています。 ただし、プロパティを手動で入力したり、自動検出されたプロパティを上書きしたりする必要があるユースケースがあります。 プロパティの割り当ての詳細については、を参照してください。 リソースとインスタンスのプロパティ.

プロパティ 製品説明 必須?
jdbc.mssql.user

jdbc.mssql.pass
SQLServerのユーザー名とパスワード。 これをWindowsユーザーアカウントにすることはできません。 このアカウントには、前に説明した最小限のSQLServerアクセス​​許可が必要です。 資格情報を提供する このサポート記事のセクション。 サーバーインスタンスごとに一意の認証を必要としないLinux、Azure、およびDockerオペレーティングシステムに必要です(インスタンスごとの認証が必要な場合は、 mssql。 。ユーザー 影響により mssql。 。パス 代わりにプロパティ)。 (統合セキュリティが構成されていない場合はWindowsオペレーティングシステムに必要です。統合セキュリティが構成されている場合、ここに入力した値はそれを上書きします。)
jdbc.mssql.port SQLServerで使用されるポート番号。 複数のポートはコンマで指定する必要があります(たとえば、「1434、2266、51000」)。 Dockerコンテナがインスタンスの検出として使用される場合は、Dockerのすべてのポートを含むこのプロパティに依存する必要があります。 他のオペレーティングシステムの場合、SQLブラウザが実行されていると、接続文字列にポートが自動的に割り当てられます。 SQLブラウザが実行されておらず、このプロパティにポートが指定されていない場合、デフォルトのUDPポートである1434が使用されます。
auto.sql_server_instances
or
mssql.sql_server_instances
SQL Serverインスタンス名が自動的に検出された場合、それらは「自動」に割り当てられます。 プロパティのバージョン。 インスタンス名を手動で割り当てる必要がある場合は、「mssql」を使用してください。 プロパティのバージョン。 手動で割り当てられたインスタンス値(に割り当てられたインスタンス値 mssql.sql_server_instances)自動的に割り当てられたもの(に割り当てられたもの)を上書きします auto.sql_server_instances)。 複数のインスタンス名はコンマで区切る必要があります(たとえば、「MSSQLServer、Inventory、Finance」)。 このプロパティは、LinuxおよびDockerインスタンスには無効です。 これらのインスタンスは、名前ではなくポートを使用します。 必須。
自動。 .mssql_url
or
mssql。 .mssql_url
インスタンスのJDBC接続文字列。 SQL ServerインスタンスのJDBC文字列が自動的に検出されると、それらは「自動」に割り当てられます。 プロパティのバージョン。 URLを手動で割り当てる必要がある場合は、「mssql」を使用してください。 プロパティのバージョン。 手動で割り当てられたインスタンス値は、自動的に割り当てられたインスタンス値を上書きします。 JDBC接続文字列は、次のようにフォーマットする必要があります。 jdbc:sqlserver:// [serverName [\ instanceName] [:portNumber]] [; property = value [; property = value]]。 見る Microsoftのドキュメンテーションシステム JDBC接続文字列の構築の詳細については。 必須。
mssql。 。ユーザー

mssql。 。パス
SQL Serverインスタンスごとに一意の認証が必要な場合は、これらのプロパティを使用して、インスタンスごとに資格情報を割り当てます。 任意。
mssql。 。ポート 個々のインスタンスに異なるポートが使用されている場合は、このプロパティを使用して、インスタンスごとにポートを割り当てます 任意。
auto.sql_browser_running LogicMonitorは、SQLブラウザーの存在を確認し、TRUEまたはFALSEの値を自動的に割り当てます。 任意。
mssql.integrated_security PropertySourcesがWindows認証とSQL認証のどちらを使用するかを動的に決定するのを防ぎます。 このプロパティは手動でTRUEまたはFALSEに設定されます。 TRUEの値は、Windows認証のみを使用するようにLogicMonitorに指示します。 値がFALSEの場合、SQL認証のみを使用するようにLogicMonitorに指示します。 このプロパティが使用されていない場合、自動検出は両方の認証方法を試行します。 任意。
system.categories If system.categories 「MSSQL」が含まれている場合、リソースはSQL Serverと見なされ、適切なデータソースが適用されます。 通常、この値はによって自動割り当てされます addCategory_MSSQL PropertySource。 そうでない場合は、手動で割り当てる必要があります。 必須。

最新のLogicModuleへの移行

2020年XNUMX月、LogicMonitorのSQL Serverパッケージは、パフォーマンスを向上させ、コレクターとSQLServerの負荷への影響を少なくするための重要な更新を受け取りました。 これらの更新の結果、一部のデータソースは新しい名前で新しいインスタンスを作成する場合があります。 これは、不適合なインスタンス名を作成していた以前のDataSourceバージョンへの修正の結果です。 新しいインスタンスが作成されると、古いインスタンスはデータを収集しなくなりますが、履歴の目的で(手動で削除するまで)その場所に残ります。

さらに、次のデータソースは非推奨になりました。

  • Microsoft_SQLServer_AgentJobs。 このデータソースはに置き換えられました Microsoft_SQLServer_SystemJobs、同じデータをキャプチャします。
  • WinSQLServer-。 このデータソースはに置き換えられました Microsoft_SQLServer_GlobalPerformance、同じデータをキャプチャします。
  • WinSQLServerConnection-。 接続のラウンドトリップ時間を報告するために使用されますが、このデータはほとんど役に立たないことがわかっています。

トラブルシューティング:パフォーマンスカウンターがありません

SQL Serverパフォーマンスオブジェクトとカウンターは、インストールの一部として自動的にインストールされます。 これらのオブジェクトとカウンターが欠落している場合は、インストールプロセスでエラーが発生し、カウンターが正しくインストールされなかった可能性があります。

障害が発生したかどうかを確認する最も確実な方法は、 エラー:3409 SQLセットアップログにあります。

カウンターをリセットするには、次の手順を実行します。

  1. を実行してカウンターをアンロードします unlodctr mssql $ 実行コマンドから。
  2. パフォーマンスカウンターが配置されているファイルパスを特定します。 デフォルトのパスは HKLMSYSTEMServicesCurrentcontrolsetServicesMSSQL $ Performance.
  3. を実行してカウンターをリロードします LODCTR 実行コマンドから。

追加のパフォーマンスカウンターのトラブルシューティングは、にあります。 Microsoftのドキュメンテーションシステム.

パッケージ内のLogicModules

SQL Server用のLogicMonitorのパッケージは、次のLogicModuleで構成されています。 完全にカバーするには、これらのLogicModuleがすべてLogicMonitorプラットフォームにインポートされていることを確認してください。

お名前 種類 製品説明
addCategory_MSSQL プロパティソース SQLServerを実行していると識別されたリソースのsystem.categoriesプロパティに値として「MSSQL」を追加します。 検証を試みません。
Microsoft_SQLServer_Connections プロパティソース Windows統合セキュリティを使用してSQLServerに接続するためにすべてのデータソースで使用されるJDBC接続文字列を作成します。
Microsoft_SQLServer_SQLAuthConnections プロパティソース SQL認証を使用してSQLServerに接続するためにすべてのデータソースで使用されるJDBC接続文字列を作成します。
Microsoft_SQLServer_SystemJobs データソース SQLServer上のすべてのシステムジョブを監視します。
Microsoft_SQLServer_GlobalPerformance データソース SQLServerインスタンスのグローバルパフォーマンスメトリックを監視します。
Microsoft_SQLServer_AlwaysOnDatabaseReplicaCluster データソース クラスター全体のSQLServerデータベースレプリカのフェイルオーバー準備完了状態、データベース参加状態、および保留中の一時停止を監視します。
Microsoft_SQLServer_AlwaysOnAvailabilityReplicas データソース SQL Server AlwaysOnローカル可用性レプリカの動作、接続、回復、および同期の状態を監視します。
Microsoft_SQLServer_データベース データソース SQL Serverで見つかったデータベースごとに、アクティブなセッション、ログ操作、スループット、キャッシュ、待機時間、ファイル/ログサイズなどを監視します。
Azure_SQLServer_JDBC データソース Azure SQLServerのグローバルパフォーマンスメトリックを監視します。
Microsoft_SQLServer_AlwaysOnDatabaseReplicas データソース SQL Server AlwaysOnデータベースレプリカの動作状態、同期の状態と状態、ログアクティビティ、スループット、送信、およびキューサイズを監視します。
Microsoft_SQLServer_AlwaysOnAvailabilityGroups データソース SQLServerのAlwaysON可用性グループのパフォーマンスメトリックを監視します。
Microsoft_SQLServer_Troubleshooter データソース 少数のMicrosoftSQLクエリを実行して、すべてのメトリックを取得するための適切なアクセス許可が構成されていることを確認します。
WinSQLServices- データソース 実行中のSQLサービスのすべてのステータスを表示します。 SQLエージェントなどのサービスのXNUMXつがダウンした場合に、アラートを構成できます。

このパッケージによって追跡されるさまざまなメトリックに静的データポイントのしきい値を設定する場合、LogicMonitorはテクノロジ所有者のベストプラクティスのKPI推奨事項に従います。 必要に応じて、これらの事前定義されたしきい値を調整して、環境固有のニーズを満たすことをお勧めします。 データポイントのしきい値の調整の詳細については、を参照してください。 データポイントの静的しきい値の調整.

記事上で