MSSQL
Microsoft SQL Server — реляционная СУБД от Microsoft. Мониторинг SQL Server позволяет отслеживать производительность запросов, использование ресурсов, состояние репликации, блокировки и другие критичные метрики для обеспечения стабильной работы базы данных.
Примечание
Данные с экспортеров могут использоваться для различных продуктов.
Обратите внимание на использование тегов product и component в документации к конкретному продукту
Способы мониторинга
Для мониторинга MS SQL Server доступны два основных способа:
windows_exporter с коллектором mssql
windows_exporter с включенным коллектором mssql — рекомендуемый способ для мониторинга SQL Server на Windows-серверах. Использует счетчики производительности Windows для сбора метрик.
Примечание
Коллектор mssql выключен по умолчанию и требует явного включения через параметр --collectors.enabled.
Шаг 1: Подготовка SQL Server
Убедитесь, что SQL Server установлен и запущен на Windows-сервере. Коллектор mssql автоматически собирает метрики из счетчиков производительности Windows, поэтому дополнительная настройка SQL Server не требуется.
Важно
Для работы коллектора mssql требуется, чтобы SQL Server был установлен и запущен на том же сервере, где работает windows_exporter.
Шаг 2: Настройка агента
Добавьте windows_exporter с коллектором mssql в конфигурацию агента через UI или файл конфигурации.
Через UI:
Откройте раздел настройки агента
Добавьте экспортер
windows-exporterВ поле Args добавьте коллектор mssql к уже существующим аргументам:
--collectors.enabled=[defaults],time,cs,system,mssql
Через файл конфигурации:
exporters:
enabled: true
exporters:
- name: windows-exporter
start_type: args
args: --log.format=json --web.listen-address=0.0.0.0:9727 --collectors.enabled=[defaults],time,cs,system,mssql
address: 127.0.0.1:9727
labels:
product: mssql
component: database
hostname: win_server_name
instance: win_server_ip:9727
Примечание
Список коллекторов [defaults] включает базовые коллекторы. Добавление mssql активирует сбор метрик SQL Server.
Шаг 3: Проверка работы
Убедитесь, что метрики доступны:
curl http://localhost:9727/metrics | grep mssql
Должны отображаться метрики SQL Server с префиксом windows_mssql_*.
Шаг 4: Визуализация
Рекомендуемый дашборд для Grafana:
MSSQL Windows Exporter (ID: 15024)
Примечание
Подробнее о настройке windows_exporter читайте в официальной документации и документации коллектора mssql.
sql_exporter
sql_exporter — альтернативное решение для мониторинга SQL Server через прямое подключение к базе данных. Позволяет выполнять произвольные SQL-запросы и преобразовывать результаты в метрики Prometheus.
Важно
Для подключения к БД требуется учетная запись с правами доступа. При запуске экспортера на стороннем хосте требуется сетевая связность и настройка БД на прием внешних подключений.
Шаг 1: Подготовка SQL Server
Создайте пользователя для мониторинга с необходимыми правами:
-- Создайте пользователя для мониторинга
CREATE LOGIN exporter WITH PASSWORD = 'your_secure_password';
-- Предоставьте необходимые права
USE master;
GRANT VIEW SERVER STATE TO exporter;
GRANT VIEW ANY DEFINITION TO exporter;
Предупреждение
Не используйте учетную запись администратора для мониторинга. Создайте отдельного пользователя с минимально необходимыми правами.
Шаг 2: Подготовка конфигурационного файла
Создайте файл конфигурации sql_exporter.yml:
jobs:
- name: "mssql_stats"
interval: "30s"
connections:
- "sqlserver://exporter:your_secure_password@localhost:1433?database=master"
queries:
- name: "connection_stats"
sql: "SELECT COUNT(*) as connections FROM sys.dm_exec_sessions WHERE is_user_process = 1"
metrics:
- name: "mssql_connections"
type: "gauge"
help: "Number of active user connections"
values: ["connections"]
- name: "database_size"
sql: "SELECT name, SUM(size) * 8 * 1024 as size_bytes FROM sys.master_files GROUP BY name"
metrics:
- name: "mssql_database_size_bytes"
type: "gauge"
help: "Database size in bytes"
values: ["size_bytes"]
labels:
database: "name"
Шаг 3: Настройка агента
Добавьте экспортер в конфигурацию агента:
exporters:
enabled: true
exporters:
- name: sql_exporter
start_type: args
args: "--config.file=/path/to/sql_exporter.yml --web.listen-address=0.0.0.0:9399"
address: 127.0.0.1:9399
labels:
product: mssql
component: database
Шаг 4: Проверка работы
Убедитесь, что метрики доступны:
curl http://localhost:9399/metrics
Шаг 5: Дополнительная информация
Подробнее о настройке sql_exporter читайте в документации экспортера и официальном репозитории.
Примечание
SQL exporter может использоваться для мониторинга различных типов баз данных:
MySQL
PostgreSQL
Microsoft SQL Server
Oracle Database
ClickHouse
Snowflake
Vertica
Ключевые метрики для мониторинга
При настройке мониторинга обратите внимание на следующие группы метрик:
Производительность: время выполнения запросов, количество запросов в секунду, медленные запросы
Ресурсы: использование CPU, памяти, дискового пространства, размер баз данных
Соединения: количество активных соединений, максимальное количество соединений, время ожидания
Репликация: состояние реплик, задержки репликации, лаг репликации
Блокировки: количество блокировок, время ожидания блокировок, deadlocks
Буферы и кэши: использование buffer pool, эффективность кэширования
Ошибки: количество ошибок в логах, ошибки подключений
Собираемые метрики windows_exporter (mssql коллектор)
Ниже представлен список основных метрик, собираемых коллектором mssql windows_exporter, с их описанием и назначением.
Метрики общего состояния (windows_mssql_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Количество пакетов SQL-запросов |
|
Counter |
Количество компиляций SQL |
|
Counter |
Количество перекомпиляций SQL |
|
Counter |
Количество ожиданий блокировок |
|
Gauge |
Ожидаемое время жизни страницы в секундах |
|
Counter |
Количество разделений страниц |
Метрики производительности (windows_mssql_performance_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Использование CPU SQL Server (проценты) |
|
Gauge |
Использование памяти SQL Server (КБ) |
|
Counter |
Количество операций чтения с диска |
|
Counter |
Количество операций записи на диск |
|
Counter |
Объем прочитанных данных (байты) |
|
Counter |
Объем записанных данных (байты) |
Метрики соединений (windows_mssql_connections_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Количество пользовательских подключений |
|
Counter |
Общее количество входов в систему |
|
Counter |
Общее количество выходов из системы |
Метрики баз данных (windows_mssql_database_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Размер файла данных базы данных (КБ) |
|
Gauge |
Размер файла лога базы данных (КБ) |
|
Gauge |
Использованный размер файла лога (КБ) |
|
Counter |
Количество транзакций |
|
Counter |
Количество транзакций записи |
Метрики репликации (windows_mssql_replication_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Задержка репликации в секундах |
|
Counter |
Количество доставленных транзакций |
Метрики блокировок (windows_mssql_locks_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Количество ожиданий блокировок |
|
Counter |
Количество обнаруженных deadlocks |
|
Counter |
Количество таймаутов блокировок |
Метрики буферов (windows_mssql_buffer_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Коэффициент попаданий в кэш буферов (0-1) |
|
Gauge |
Ожидаемое время жизни страницы в буфере (секунды) |
|
Counter |
Количество страниц, записанных во время checkpoint |
Примечание
Важно: Данный список метрик может быть неполным или устаревшим, так как windows_exporter постоянно развивается и добавляет новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации коллектора mssql на GitHub, где представлен актуальный список всех собираемых метрик с подробными описаниями.