doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

ZabbixによるSQLServer監視 おすすめテンプレートと適用方法

スポンサーリンク

Zabbix SQLServer監視 おすすめテンプレートと使用方法

テンプレートについて

どこがおすすめなのか

オススメポイント1

ローレベルディスカバリにより、SQLServerに複数インスタンスが載っていても、それらすべての情報を取得してくれる。

 → ローレベルディスカバリしないと、インスタンス名ごとに作らなければならないパラメータが多くて大変なのです。。

オススメポイント2

修正箇所が(それほど)多くない。

 → 色んな所を修正しなければならないと、サーバの台数が増えてきたときにしんどいのです。。。

オススメポイント3

Gitに公開されている。

 → 最新化の期待がもてる。

利用方法

1. 環境の確認

ZabbixAgentのインストールパスの確認
Zabbixエージェントのインストールパスに、「scripts」フォルダが存在しているかを確認する。
存在していなければ、「scripts」フォルダを作成する。

2. ファイルのコピー

「scripts」フォルダに以下のファイルをコピーする。

  • database_status_disc.ps1
  • logreader.ps1
  • mssql_basename_new.ps1

3. Zabbix_agentd.confの変更

Zabbix_agentd.confをメモ帳等で開き、下記項目を修正する。

Timeout=30  
ServerActive=(IP of Zabbix server)  
UnsafeUserParameters=1  

下記項目を追記する。
※-File以降のパスは、「scripts」のフォルダのパスに変更してください。
※サンプルではC:\Program Files\Zabbix Agentに配置しています。

UserParameter=mssql.db.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\mssql_basename_new.ps1"
UserParameter=mssql.discovery2,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\mssql_basename_new.ps1"
UserParameter=mssql.errorlog,powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent\scripts\logreader.ps1"

4. Zabbix_agentを再起動

タスクマネージャーのサービスからZabbix_agentを再起動する。
※起動しない場合には、3.で追記したパスが間違っている可能性があります。ご確認ください。

5. テンプレート(ディスカバリルール)の修正

scriptsフォルダのパスが異なっている場合には、テンプレートの修正が必要です。
以下のアイテムキーのパスを対象のscriptsパスへ変更してください。
テンプレート → ディスカバリルール → 「Database Discovery」 → アイテムのプロトタイプ

  • 名前:

    SQL Server, Instance {#INST}, DB {#DBNAME}: Database Status

  • キー:

    system.run["powershell C:\Program Files\Zabbix Agent\scripts\database_status_disc.ps1 -instName '{#INST}' -dbName '{#DBNAME}'"]

続いて、ディスカバリルールのフィルターを修正します。
「Database Discovery」 → フィルター

  • ラベル:{#DBNAME}
  • 正規表現の中身をクリアする。

6. 監視対象のサーバへのテンプレート適用

しばらく(1時間程度?)するとローレベルディスカバリで情報が取得されます。

何が監視できるのか

  • インスタンス単位のログ利用状況
  • エラーログ出力状況
  • Locks
  • Memory
  • Replica
  • Wait
  • Stats
  • 等など

以上。