2024 年 11 月 20 日
Zabbix agent 2 経由で MS SQL Server を監視する
1. Zabbix agent 2 による Microsoft SQL Server の監視構造
前回の投稿「ODBC 経由での MS SQL Server の監視」に引き続き、今回は Zabbix agent 2 およびプラグイン zabbix-agent2-plugin-mssql を使用した MS SQL Server を監視する方法について解説します。ここではテンプレート「MSSQL by Zabbix agent 2」を使用することを前提とします。
MS SQL Server 用プラグインは Linux 版のみ提供されており、Windows 上の Zabbix agent 2 を使用することはできません。よって、図 1 の構造を取ることになります。
図 1: テンプレート「MSSQL by Zabbix agent 2」使用時の構造
DB 監視専用に別途 Linux 機を用意するのは非効率であるとも考えられるため、今回は Zabbix サーバー上の監視エージェントとして Zabbix agent 2 を採用し、Zabbix サーバーにインストールしたプラグイン zabbix-agent2-plugin-mssql と組み合わせることで監視を行う構造を取ることにします。
図 2: 今回の投稿における構成
Zabbix サーバー上のエージェントとして Zabbix agent 2 を採用する場合、図 1 の「Zabbix サーバー」と「Linux ホスト」を Zabbix サーバーに統合することが可能です。
なお、Zabbix agent と Zabbix agent 2 を同一ホスト上にインストールすることは可能ですが、初期設定では同一ポートを使用する設定となっているため、双方を同時に起動することはできません。
2. MSSQL by Zabbix agent 2 を使用した場合の構築手順
2.1. Microsoft SQL Server の設定
本稿では、前回投稿記事「ODBC 経由で MS SQL Server を監視する 」 に記載した設定およびユーザーを流用します。同一の手順で設定してください。
2.2. Zabbix / MIRACLE ZBX サーバーの設定
2.2.1. ソフトウェアの追加インストール
環境に合わせ、Zabbix agent 2 または MIRACLE ZBX agent 2, zabbix-agent2-plugin-mssql をインストールします。本稿では MIRACLE ZBX が稼働している前提でコマンド列を記載します。
# dnf install miracle-zbx-agent2 miracle-zbx-agent2-plugin-mssql
2.2.2. 設定ファイル編集
MS SQL Server との通信を TLS 化する場合に備え、/etc/zabbix/zabbix_agent2.d/plugins.d/mssql.conf に以下を追加します。
Plugins.MSSQL.Default.TrustServerCertificate=true Plugins.MSSQL.Default.Encrypt=true
2.3. Zabbix / MIRACLE ZBX の監視設定
2.3.1. ホスト登録
ブラウザを使用して Zabbix WebFrontend へ接続し、ホストを登録します。Zabbix WebFrontend メニュー [ データ収集 / ホスト ] を選択し、画面右上のボタン「ホストの作成」をクリックします。
図 3: Zabbix WebFrontend、データ収集 / ホスト
モーダルウィンドウ「新しいホストの作成」の各項目に表 3 の情報を入力します。
テンプレート MSSQL by Zabbix agent 2 を使用する場合、ホストのインターフェースとして Zabbix agent 2 および zabbix-agent2-plugin-mssql が稼働しているホストの IP アドレスを指定する必要があります。
今回の構成では MIRACLE ZBX サーバーにインストールした MIRACLE ZBX agent 2 を経由した監視となる関係上、127.0.0.1 を指定することになります。
マクロ | 値 |
---|---|
ホスト名 | 任意のホスト名 ( 設定例 : agent2-mssqlsv) |
表示名 | ( 必要に応じて追加設定 ) |
テンプレート | MSSQL by Zabbix agent 2 |
ホストグループ | 任意のグループ ( 設定例 : Windows servers) |
インターフェース | 127.0.0.1 |
表 1: ホスト定義
図 4: Zabbix WebFrontend、ホスト作成
モーダルウィンドウ「新しいホストの作成」のタブ「マクロ」を表示し、テンプレート MSSQL by ODBC を使用する上で必要となるマクロを定義します。設定例では、監視対象の MS SQL Server のポートは初期値から変更していないことを前提としています。
マクロ | 値 |
---|---|
{$MSSQL.HOST} | SQL サーバー稼働中ホストの IP アドレス |
{$MSSQL.PASSWORD} | 監視用 MS SQL Server ユーザーのパスワード |
{$MSSQL.URI} | sqlserver://SQL サーバー稼働中ホストの IP アドレス :1433 |
{$MSSQL.USER} | 監視用 MS SQL Server ユーザー ( 設定例 : zbx_monitor) |
表 2: ホストマクロ定義
図 5: Zabbix WebFrontend、ホスト作成、マクロ定義
入力完了後、モーダルウィンドウ「新しいホストの作成」右下のボタン「追加」をクリックします。
以上で監視設定は完了です。
3. 監視結果
設定完了後しばらく待つ、またはタイプが「Zabbix エージェント」のアイテムを指定して「監視データの取得」を明示的に実行すると、Zabbix WebFrontend メニュー [ 監視データ / 最新データ ] に収集した値を表示できるようになります。
図 6: Zabbix WebFrontend、最新データ
収集した値をデータベースのチューニングや正常運用の確認にお役立てください。
参考情報 : Zabbix agent 2 経由での監視における注意事項
MS SQL Server を稼働させている Windows Server のリソース使用状況も併せて監視することが多いと思われます。リソース監視を同じホストに集約する場合、テンプレートとして「Windows by Zabbix agent active」を選択することを考慮してください。
パッシブ型アイテムで構成されるテンプレート「Windows by Zabbix agent」を使用する場合は次のような操作を行う必要があり、管理が煩雑となってしまいます。
- ホストに「エージェント」型として実際の IP アドレスをインターフェースに追加
- テンプレート「Windows by Zabbix agent」をリンク
- テンプレート「Windows by Zabbix agent」に含まれる Zabbix エージェント型アイテムのホストインターフェースを、実際の IP アドレスのものに変更
- テンプレート「Windows by Zabbix agent」に含まれる Zabbix エージェント型ディスカバリルールのホストインターフェースを、実際の IP アドレスのものに変更
- テンプレート「Windows by Zabbix agent」に含まれるディスカバリルールのアイテムのプロトタイプのホストインターフェースを、実際の IP アドレスのものに変更
なお、テンプレート「Windows by Zabbix agent」を使用する場合には、変更個数を鑑みるとリソース監視の登録を先に行ったうえで、ホストインターフェースにに対する 127.0.0.1 の追加およびテンプレート「MSSQL by Zabbix agent 2」へのリンク追加を後で行ったほうが手数を少なくできると思われます。