SQL-Мониторинг в консоли PowerShell {Онлайн}

05.08.20

Администрирование - Мониторинг

Скрипт PowerShell, который поможет увидеть/наблюдать происходящее на серверах СУБД (для MSSQL).

Скачать файлы

Наименование Файл Версия Размер
SQL-Монитор
.zip 21,11Kb
15
.zip 21,11Kb 15 Скачать

Идея такая: Запускаешь и смотришь. ВСЁ! Смотришь своими глазами. Не глазами PRTG, ZABBIX и прочих систем, они тоже присутствуют и молодцы, но не о них сейчас... И хорошо, когда наблюдение ведешь на отдельном экране. И совсем идеально, когда на отдельном компе (с отдельным же экраном!). Можно так же выводить на общий монитор или телевизор в кабинетах групп поддержки, разработки, дежурных смен и т.д. И бывает что судорожно-срочно нужно ответить руководству "что там у нас происходит на серверах"? Да, на всех и сразу. Чтобы иметь мгновенное представление, пускай в первом приближении, обзавелся таким скриптом.

В скрипте присутствует интерактивное меню, помогающее выбрать параметры мониторинга. Есть параметры, которые задаются только аргументами командной строки:

 -Refresh <n>: Период запуска обновления, в секундах. Указывается в диапазоне от 3 до 600. Период обновления иначе. НО следует понимать, что опрос серверов выполняется последовательно, и в случае, когда вы собираетесь наблюдать за большим количеством инстанций, то реальный период обновления будет складываться из всех времён, затраченных на опрос этих инстанций. Например: наблюдаем 10 инстанций, и на опрос каждой тратится около 0,5 сек, тогда реальный период опроса будет ~8 секунд (при параметре -Refresh 3).   Совет: при большом количестве инстанций устанавливайте меньшие значения этого параметра. По умолчанию период равен 15 секундам.

SQL_Monitor.ps1 -Refresh 3

-Select: Включает режим выбора площадок. Эммм. У нас в организации несколько площадок. Разные назначения, платформы, масштабы, охваты и тд,.. Каждая площадка имеет свой шифр/код, и это обычно 3 символа. В каждой площадке есть Продуктив и "всё остальное", т.е. разработка и тестирование. У нас площадки: FHD (бухгалтерия), ENB (биллинг), NVD (торговля), LK (личный кабинет) и т.д.  По-хорошему, следовало бы разделить мониторинг по этому признаку "продуктив-или-тест", но пока без него. Нам и так хорошо). Итак, если данный параметр указан при запуске, то меню выбора площадки для мониторинга станет множественным. С ним можно одновременно выбрать более одной площадки. Без указания этого параметра - мониторим одну площадку или сразу все (в меню появляется пункт "ALL").

SQL_Monitor.ps1 -Select

Сразу после запуска скрипта появляются несколько меню (друг за другом):

вот как выглядит меню без параметра select:

а вот как с параметром select:

Далее следует выбрать продолжительность мониторинга в минутах, 4 варианта: "Бесконечно, 10, 30, 60"

Кстати, отдельный скрипт для таких менюшек я выкладывал, в данной публикации он обновлен и встроен в _CommonFunctions.min.ps1. В этом файле много чего собрано, пользуйтесь на здоровье ;-)

Конечно, все предлагаемые на выбор параметры прописаны в скрипте, в виде обыкновенных списков или массивов значений. Можете отредактировать своими преференциями! ;Ъ

Естественно, необходимо настроить под свой ландшафт переменные, они определены в коде.

$global:_txt_land    = ("FHD","ENB","NVD","RDS","LK","KC","IRK") - список площадок

$_arr_sql_instances - массив SQL-инстанций, 

где Первая колонка - это DNS-имя хоста и/или инстанса, (именно инстанса, т.е. можно указывать имя_хоста\имя_инстанса), но в большинстве случаев достаточно DNS имени СУБД хоста. Вторая колонка - это имя площадки, к которой принадлежит инстанс, заполняется значениями из $global:_txt_land. Или наоборот, значения в списке _txt_land должны коррелировать со значениями второй колонке массива инстансов, ну вы поняли. Третья колонка - это тип инстанса: продуктив или тест, пока не влияет ни на что - задел на будущее.

 

Ниже скриншот, на котором выполняется бесконечный мониторинг, площадки "ENB", с интервалом в 15 секунд.

в "шапке" 1 - выбранная площадка; 2 - когда запущен, когда будет остановлен, интервал обновления; 3- легенда, по которой осуществляется раскраска строк. Сортировка строк выполнена по полю продолжительность, по убыванию. 4 - список инстанций, с временами работы запроса по каждой. Имеет свою "раскраску" по времени ответа, попробуйте разгадать)

5 - Главное, ради чего запускается скрипт. Текущие запросы на СУБД в момент его опроса, то чем занят СКУЛЬ.

Колонки тут следующие:

Progress % - Процент (прогресс) выполнения запроса. MSSQL выдаёт такую информацию по некоторым командам (архивирование, восстановление, команды DBCC и т.д.), остальные остаются чёрными, у них процент всегда пустой.

[X] - пока не функционально, для будущих версий.

Instance - Имя инстанса. Кривая стрелочка означает, что инстанс тот же, просто помогает визуально разделить инстансы с похожими именами...

spID - идентификатор процесса выполняемого запроса.

Blckr - блокирующий spID, он мешает текущему запросу выполниться.

User - имя пользователя, выполняющего запрос.

DB name - база данных, в контексте которой выполняется запрос.

Command - команда, тип, статус. всё через "или".

Duration - длительность этого запроса. ЧЧ:ММ:СС.мс, после 24 часов - сбрасывается на ноль.

~Estimated end - ожидаемое (прогнозируемое) время завершения запроса. как и Progress %, заполняется не для всех запросов. хоть и очень полезное.

Query (trimmed) - несколько первых букв текста запроса/команды/батча/скрипта/...называйте_как_хотите...  и (trimmed) - говорит что запрос "подстрижен".

Имейте в виду, что все поля, содержащие строки чрезмерной длины будут подрезаны до определенных значений. это сделано чтобы такие строки не "сбивали строй" у таблицы. На скриншоте: вторая строка снизу, значение поля "User" подрезано и добавлен знак "~".

Скрипт поочередно выполняет опрос выбранных СУБД с помощью PS командлета "Invoke-SQLcmd", поэтому нужно убедиться в наличии "SqlServer" среди установленных модулей (команда "Get-Module"). В случае отсутствия, установить его можно с помощью команды "Install-Module -Name SqlServer".

Подключение к инстанциям SQL происходит со встроенной авторизацией Windows, поэтому, не забывайте наделять необходимыми ролями и предоставлять права той учетной записи, под которой выполняется запуск скрипта.

Совет: в настройках окна PowerShell используйте точечный шрифт 5х12, иначе окно может не поместиться в монитор.

В архиве три файла, общие функции, скрипт для псевдографики, и сам запускающий мониторинг скрипт. Прошу!

Обоснованная критика приветствуется.

... всех С Наступающим 2020!

Обновление:

добавлен интерфейсный параметр запуска -lang, имеет два значения "en" (по-умолчанию) и "ru". 

мониторинг наблюдение процесс SQL MSSQL monitor

См. также

Мониторинг баз и серверов 1С

Журнал регистрации Мониторинг Платформа 1С v8.3 Платные (руб)

В сферу обязанностей при работе с клиентами входит контроль работы баз данных и серверов 1С. Нужно понимать что происходит в базах, есть ли ошибки, зависания у пользователей и фоновых задач, блокировки или какое-то необычное поведение системы, получение информации о причинах возникновения проблем и их оперативное устранение и т.д. В качестве источников информации использую консоль кластеров 1С, технологический журнал 1С, журналы регистрации базы 1С. Для автоматизации части операций мониторинга и анализа создал инструмент на основе 1С.

9000 руб.

28.08.2019    30955    14    21    

66

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    14227    32    0    

47

Yellow Watcher - Жёлтый наблюдатель за информационными базами

Мониторинг Платформа 1С v8.3 Абонемент ($m)

Программный комплекс мониторинга качества работы информационных баз. Статистика возникновения управляемых блокировок (тип, последняя строка контекста, контекст). Анализ длительных запросов по данным из технологического журнала. Анализ потребления ресурсов СУБД запросами и статистика ожиданий по данным из Query Store. Монитор информационной базы - получение плана запроса для сеанса 1С.

1 стартмани

12.02.2024    3042    23    sdf1979    11    

52

Проверка доступа к интернет на сервере 1С

Мониторинг Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Абонемент ($m)

Инструмент для проверки интернет - соединения на сервере 1С

3 стартмани

23.11.2023    1820    5    1395969    4    

2

Магия преобразований Vector, часть 3: журнал регистрации + прямой экспорт ошибок в Sentry

Журнал регистрации Мониторинг Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    666    2    AlexSTAL    0    

6

Магия преобразований Vector, часть 2: технологический журнал

Технологический журнал Мониторинг Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

15.11.2023    766    4    AlexSTAL    0    

8

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    2969    4    AlexSTAL    0    

42

Чем Service Discovery поможет 1С-нику и его клиентам?

Тестирование QA Мониторинг Бесплатно (free)

Если развернуть слепок рабочей среды в окружении для тестирования, тесты могут начать взаимодействовать с рабочим окружением. Расскажем о том, как автоматически перенастраивать базы 1С под окружение разработки или тестирования с помощью концепции Service Discovery.

08.11.2023    2922    ktb    0    

18
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 302 30.12.19 17:08 Сейчас в теме
В каждую хрень надо добавить это дурацкое слово "online".
Типа, это слово несет информативную нагрузку.

Наблюдение итак собой подразумевает в текущем времени.
2. ddens 169 31.12.19 02:32 Сейчас в теме
(1)да да, в любой непонятной ситуации добавляйте слово "online" в заголовок...
3. qwertehok1 31.12.19 09:24 Сейчас в теме
давно уже придумали sp_whoisactive
Aleksey.Bochkov; YPermitin; +2 Ответить
6. user612295_death4321 02.01.20 22:18 Сейчас в теме
(3) Да, наверное самая удобная штука, что я юзал. Позволяет покрыть наверное процентов 85% проблем )
YPermitin; +1 Ответить
8. ddens 169 09.01.20 02:46 Сейчас в теме
(3) никогда не понимал таких комментаторов. По-вашему других средств быть не может? По-вашему: "придумало человечество колесо и всё! Первое деревянное, скрипучее, недолговечное, но ведь ехало и поедет сейчас... Зачем придумали какие-то подшипники? подшипники трения, скольжения, роликовые, шариковые, двурядные, сборные, конусные, упорные... нафига всё это??? вот же глупое человечество, ведь давно уже придумали колесо"
так по-вашему?)))

Конечно, я не сравниваю sp_whoisactive с деревянным колесом, и ни чуть не умаляю достоинств ни одного ни второго, и, конечно же, не ставлю свой скрипт в замену. Просто говорю, что можно еще вот так вести интерактивное наблюдение за протекающими запросами на ваших серверах. Право выбора остаётся за вами.
Pependos; +1 Ответить
11. Dansur 261 05.08.20 12:51 Сейчас в теме
(8) а выбор реализации на Powershell с псевдографикой не деревянное ли колесо у Вас?
4. пользователь 31.12.19 20:07
5. user1335935 31.12.19 20:41 Сейчас в теме
Поздравляю, Вы "изобрели" sqlblocks XD
YPermitin; +1 Ответить
7. ddens 169 09.01.20 02:24 Сейчас в теме
(5) я вас тоже поздравляю, вы "изобрели" только этот коммент.
baltbereg; +1 Ответить
9. user1274438 09.01.20 11:55 Сейчас в теме
мда...
Первое деревянное, скрипучее, недолговечное...

Если тут проводить аналогию с деревянным колесом, то у автора подшипники сплетены из веток ивы (или типа того), и название им "шариковы", но отнюдь не шариковые.
10. ddens 169 09.01.20 17:08 Сейчас в теме
12. user1839674 08.09.22 03:21 Сейчас в теме
ребята нету тут ничего, и не скачаете, это обман зрения
13. ddens 169 09.09.22 05:02 Сейчас в теме
(12) где пруф? или просто так ляпнул?
Оставьте свое сообщение