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

05.08.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
SQL-Монитор
.zip 21,11Kb
17
17 Скачать (1 SM) Купить за 1 850 руб.

Идея такая: Запускаешь и смотришь. ВСЁ! Смотришь своими глазами. Не глазами 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С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    33922    22    21    

74

Учет доходов и расходов Логистика, склад и ТМЦ Маркетплейсы Мониторинг Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Расширение модуля Synchrozon для удобного контроля габаритов на Ozon! Разработка позволяет мгновенно сравнивать установленные габариты товаров, с габаритами, указанными на Ozon, чтобы выявлять любые несоответствия. Поможет сократить расходы на логистику, гарантируя, что все данные о товарах остаются точными и актуальными.

3600 руб.

31.10.2024    337    1    0    

3

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

Обработка позволяет использовать подобные КОРП-функциональности механизмы контроля расхода памяти (сеансом на 1 вызов и рабочими процессами), реагируя завершением "тяжелых" вызовов, перезапуском рабочих процессов при чрезмерном потреблении этого важного ресурса.

3600 руб.

03.05.2023    5101    3    0    

3

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

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

1500 руб.

01.12.2020    15988    38    0    

56

Логистика, склад и ТМЦ Мониторинг Маркетплейсы Комплексное управление ресурсами (ERP) Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Платные (руб)

Разработка «Ловец коэффициентов складов Wildberries» — расширение для 1С, которое автоматически «отлавливает» тарифы складов с наиболее выгодными коэффициентами для ваших товаров на маркетплейсе Wildberries. С помощью этого инструмента вы сможете легко находить и выбирать склады с лучшими условиями для максимизации своей прибыли. Удобная интеграция позволяет настроить регулярный поиск складов по выгодным коэффициентам в виде регламентного задания в 1С, что существенно экономит время и автоматизирует процесс принятия решений по размещению товаров. Всегда будьте на шаг впереди конкурентов и повышайте эффективность своего бизнеса с помощью «Ловца коэффициентов складов Wildberries»!

3600 руб.

14.11.2024    220    0    0    

2

Мониторинг Анализ продаж Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Розница 3.0 Управленческий учет Платные (руб)

Решение для управления ключевыми показателями компании, обеспечивающее гибкую настройку, визуализацию данных и эффективный контроль за достижением целей. Продукт сокращает трудозатраты на расчет и аналитику, позволяя быстрее принимать обоснованные решения. Легко интегрируется в любую конфигурацию 1С, предлагая интуитивный интерфейс, удобный для всех пользователей.

24000 руб.

11.11.2024    181    0    0    

0

Мониторинг Сервера Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

18.07.2024    846    7    moolex    0    

5

Мониторинг Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

13.06.2024    4974    37    Garilia    3    

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

Наблюдение итак собой подразумевает в текущем времени.
2. ddens 170 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 170 09.01.20 02:46 Сейчас в теме
(3) никогда не понимал таких комментаторов. По-вашему других средств быть не может? По-вашему: "придумало человечество колесо и всё! Первое деревянное, скрипучее, недолговечное, но ведь ехало и поедет сейчас... Зачем придумали какие-то подшипники? подшипники трения, скольжения, роликовые, шариковые, двурядные, сборные, конусные, упорные... нафига всё это??? вот же глупое человечество, ведь давно уже придумали колесо"
так по-вашему?)))

Конечно, я не сравниваю sp_whoisactive с деревянным колесом, и ни чуть не умаляю достоинств ни одного ни второго, и, конечно же, не ставлю свой скрипт в замену. Просто говорю, что можно еще вот так вести интерактивное наблюдение за протекающими запросами на ваших серверах. Право выбора остаётся за вами.
Pependos; +1 Ответить
11. Dansur 262 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 170 09.01.20 02:24 Сейчас в теме
(5) я вас тоже поздравляю, вы "изобрели" только этот коммент.
baltbereg; +1 Ответить
9. user1274438 09.01.20 11:55 Сейчас в теме
мда...
Первое деревянное, скрипучее, недолговечное...

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