Инструкция по включению записи замеров счетчиков оборудования и настройки инструмента «Мониторинг оборудования»
1. Необходимо на сервере баз данных SQL, на котором предполагается запись замеров, создать базу данных, например «PerfmonData», именно в этой базе будут сохраняться данные замеров по выбранным счетчикам
2. На компьютерах (серверах приложений 1с, серверах баз данных и т.д.) , на которых предполагается снимать показания счетчиков, необходимо описать источник данных ODBC.
Указать созданную в пункте 1 базу
И по окончании работы мастера можно протестировать настраиваемое нами соединение. Если все сделано правильно тест пройдет успешно.
3. На следующем шаге нам необходимо открыть «Системный монитор » (Perfmon) и создать новую группу сборщиков данных
Добавить счетчики необходимые нам для дальнейшего анализа, при этом можно основывать свой выбор на следующих счетчиках представленные в нашем классификаторе
Если названия счетчиков в вашей системе на русском языке, можно ориентироваться на следующие названия счетчиков на русском:
Просьба обратить внимание, что показатели Physical disk требуется настраивать не на _Total (когда выдаётся общий суммарный показатель для всех логических дисков системы), а на * (когда фиксируются показатели каждого логического диска отдельно).
Настроить расписание запуска группы сборщиков данных
На закладке «Общие» необходимо указать пользователя от имени которого будет производится запуск сборщика счетчиков
ВАЖНО! Пользователь, от имени которого (на скриншоте Администратор) работает сборщик, должен быть прописан в MS SQL Server с доступом к базе данных PerfmonData.
В свойствах счетчика производительности для поля «Формат журнала» указать значение «SQL» и в поле «Имя источника данных» выбрать имя ранее нами созданного системного источника ODBC.
В случае если при запуске сборщика счетчиков вы столкнетесь с ошибкой
«Вызов SQLAllocConnect завершился с ошибкой %1.»
Тогда необходимо проверить, что в качестве пользователя, от имени которого запущен сборщик счетчиков и в качестве пользователя указанного в настройках источника ODBC используется доменный пользователь и он имеет доступ в сам сервер SQL на котором размещена база данных для сбора значений счетчиков «PerfmonData».
Кроме того, убедитесь что название драйвера источника данных не содержит «Native Client». Пример выбора правильного драйвера источника данных:
4. Далее в клиент-серверной базе основанной на конфигурации HardwareClient82.cf необходимо произвести настройку.
- Создание нового кластера 1с
Рекомендуется устанавливать конфигурацию в отдельный кластер сервера 1с , а не в кластер где располагаются рабочие базы. Цель рекомендации минимизировать любые риски, связанные с нештатным поведением платформы и изолировать взаимное влияния продуктивных баз и базы нашего инструмента.
В справочнике «Рабочие станции» необходимо создать элементы (Сервера) для которых будет производится загрузка счетчиков. На закладке «Настройки» должны быть указаны следующие настройки:
1) «База хранения счетчиков» — для получения данных из созданной нами на 1 шаге базы SQL
2) «Сервер SQL базы счетчиков» на котором расположена база хранения счетчиков (в качестве которого выступает элемент этого же справочника с заполненными параметрами Аутентификации для подключения к SQL серверу);
3) Имя набора счетчиков
4) GUID набора счетчиков
5) «Загружать данные счетчиков производительности» — признак устанавливается в том случае если для сервера требуется загружать данные замеров счетчиков производительности и отправлять эти данные по веб-сервису
Если SQL Server находится не локально, то нужно создать запись в «рабочих станциях» с его именем.
Получить информацию о GUID, Имени набора счетчиков можно нажав кнопку «Получить информацию по счетчикам» и при корректном заполнении данных в полях «Сервер SQL базы счетчиков», «База хранения счетчиков» в таблицу будет выведена информация обо всех настроенных наборов счетчиков в эту базу хранения.
5. Для отправки данных с целью дальнейшего анализа и вывода информации на нашем сервере необходимо заполнить настройки:
Идентификатор базы: — содержится в письме
Веб-сервис: http://info.gilev.ru/hardware/ws/hardware.1cws?wsdl
Пользователь (Веб-сервис): ws
Пароль (Веб-сервис): ws
Логин и пароль указанные в письме не нужно использовать для указания подключения по Веб-сервису!!!
Если возникло сообщение об ошибке:
{ОбщийМодуль.СчетчикиПроизводительности.Модуль(20)}: Ошибка при вызове метода контекста (Open)
RecSet.Open(ТекстЗапроса,SQLServer,3,1,1);
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Conversion failed when converting from a character string to uniqueidentifier.
То скорее всего это произошло по причине что наборы счетчиков и идентификатор GUID указан неверно или вообще не указан.
Нужно указать, пример на скриншоте
При возникновении сообщения о нарушении прав доступа к операции Web-сервиса вроде
скорее всего изменили стандартный логин ws и не читали эту инструкцию сначала, верните исходные настройки )
Отсутствие доступа в интернет
Сообщение типа
Значение не является значением объектного типа (WebAccess)
означает что нет доступа в интернет у учетной записи службы сервера 1С
Диагностика ошибок
Ошибка вида [DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error:
Если возникает ошибка вида [DBNETLIB][ConnectionOpen (SECCreateCredentials()).]SSL Security error при обращении к MSSQL серверу, то решение следующее:
Необходимо установить значение Enable параметру групповой политики безопасности
Local Security Policy —> Local Policies —> Security Options —> ‘System cryptography: Use FIPS compliant algorithms for encryption, hashing, and signing
Затем от имени администратора выполнить в командной строке:
gpupdate /force
Если на Windows Server 2019 ваши сборщики счётчиков не стартуют по расписанию, как положено, в качестве обхода проблемы можете стартовать эти сборщики из командной строки командой
logman start <[-n] > [options]
Интернет прокси-сервер
Возможна отправка данных через интернет используя прокси, это штатная возможность платформы, для этого необходимо настроить служебный файл платформы inetcfg.xml.
Содержимое файла должно быть примерно следующим:
<
InternetProxy
protocols="http=10.1.0.8:8080 10.1.0.9:8080"
user="proxyUser"
password="proxyPassword"
bypassOnLocal="true"
bypassOnAddresses="127.0.0.1 *.master"
/>
Подробнее смотрите в документации к 1С или на ИТС
Интерпретация значений счетчиков
процессор http://www.gilev.ru/countproc/
память http://www.gilev.ru/countmem/
диски http://www.gilev.ru/countio/
сеть http://www.gilev.ru/countnet/
По всем возникающим вопросам по работе и настройке инструмента, сразу же пишите мы обязательно поможем.
skype: gilev_slava
- Remove From My Forums
-
Question
-
Windows 2008
Sql server 2008 R2
I am trying to create an ODBC connection to server A from server B , where performance counters from server B has to be logged into a sql database on server A.
After creating a data collector set in performance monitor on server B, and configured it to log to SQL database, it errors out to say ‘when attempting to start the Data Collector set the following Error occurred :call to SqlAllocConnect failed with
%1 ‘where am I going wrong ?
Thanks,
Club140
Answers
-
never mind . figured it out. permissions issue
-
Marked as answer by
Thursday, September 9, 2010 7:53 PM
-
Marked as answer by
I am trying to do following task and I donot know it is possible in this setup or not?
I am trying to setup performance counter on a non-domain server (Server1)
All the performance counter values I want to capture in other sql server (DomainServer2)
In this task I donot want to establish any kind of connectivity from Server2 to Server1 (sql or windows), but I want to push data from Server1 to Server2.
— I have a sql login (monitoruser) in Server2 with sysadmin role
— and created a ODBC connection (perfmon) in Server1 using monitoruser (successfully tested)
— created a datacollector set on Server1 running as local administrator (localMachinesqlmon)
When I an trying to start this collector set, it throws «Error: Call to SQLAllocConnect failed with %1» on Server1
On Server2 Eventlog says,
Login failed for user ». Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only. [CLIENT: xx.xx.xx.xx]
I have both the server running in mixed mode (I also restarted sql services on both)
I can connect Server2 from Server1 using SSMS with monitoruser login
What else I am missing here?
Thanks in advance
RBarryYoung
SSC Guru
Points: 143329
Are there any other SQL Server instances on these two servers? Is it possible that you are actually connecting (or trying) to one of them and that SQL instance has Windows-only authentication.
Daxesh Patel
Hall of Fame
Points: 3208
Thank you RBarryYoung
No, there is no other sql instance, only default instance
Daxesh Patel
Hall of Fame
Points: 3208
OK I tried to setup on both the server in same domain, still it gives me same error.
Anybody has tried to store perfmon data into remote SQL server using odbc (and sql login)?
Lynn Pettis
SSC Guru
Points: 442464
Daxesh Patel (5/21/2012)
I am trying to do following task and I donot know it is possible in this setup or not?
I am trying to setup performance counter on a non-domain server (Server1)
All the performance counter values I want to capture in other sql server (DomainServer2)
In this task I donot want to establish any kind of connectivity from Server2 to Server1 (sql or windows), but I want to push data from Server1 to Server2.
— I have a sql login (monitoruser) in Server2 with sysadmin role
— and created a ODBC connection (perfmon) in Server1 using monitoruser (successfully tested)
— created a datacollector set on Server1 running as local administrator (localMachinesqlmon)
When I an trying to start this collector set, it throws «Error: Call to SQLAllocConnect failed with %1» on Server1
On Server2 Eventlog says,
Login failed for user ». Reason: An attempt to login using SQL authentication failed. Server is configured for Windows authentication only. [CLIENT: xx.xx.xx.xx]
I have both the server running in mixed mode (I also restarted sql services on both)
I can connect Server2 from Server1 using SSMS with monitoruser login
What else I am missing here?
Thanks in advance
How do you have the ODBC connection configured? Can you show it to us?
Daxesh Patel
Hall of Fame
Points: 3208
Thanks Lynn,
I have attached word doc with screen shots
Lynn Pettis
SSC Guru
Points: 442464
Only thing I can suggest at this point is to double check your server properties.
Daxesh Patel
Hall of Fame
Points: 3208
Server properties looks fine
It is single instance (default only) SQL server
Mixed mode (using sql logins since long time on this server)
Login which I am using in odbc is active and it works fine when I am connecting using SSMS
Only it does not work when perfmon tries to use odbc (remote sql)
That’s why I asked, has anybody setup perfmon writing counter data to remote sql server? any special setting required for that?
And yes, I verified with our network admin, nothing is blocking at firewall side
Daxesh Patel
Hall of Fame
Points: 3208
I think I found the issue (not the solution)
odbc does not store sql login information (UID & PWD), and user needs to supply uid and pwd while using the odbc.
Only windows authentication works when PerfMon uses odbc to store data in SQL server
I think I cannot send Perfmon data to a different domain sql server since I cannot use windows authentication in this case.
I need to find out some workaround
craigvincent
SSC Enthusiast
Points: 111
Hi Daxesh,
I’ve been trying to do a similar thing to you — logging performance data to SQL for two separate machines, which were not part of a domain and have come to the same conclusion that you’re unable to use SQL Server Authentication.
Was just wondering if you had come across a workaround in the meantime?
Thanks,
Craig:-)
Daxesh Patel
Hall of Fame
Points: 3208
craigvincent (11/14/2012)
Hi Daxesh,
I’ve been trying to do a similar thing to you — logging performance data to SQL for two separate machines, which were not part of a domain and have come to the same conclusion that you’re unable to use SQL Server Authentication.
Was just wondering if you had come across a workaround in the meantime?
Thanks,
Craig:-)
Hi Craig,
Sorry I didnot update this post after I resolved the issue
— I added entry for remote domain machine in hosts file (C:WINDOWSsystem32driversetchosts)
— then created a windows account in both the machin with same UID + Password (as local administrator)
— created SystemDSN for this connection
Edit: — and run Perfom under this account
This worked for me
craigvincent
SSC Enthusiast
Points: 111
Thanks greatly for the speedy reply! I’ll experiment with that method later.
Best wishes to you,
Craig 🙂
craigvincent
SSC Enthusiast
Points: 111
Thanks again Daxesh, got that setup and working! It’s kind of a shame that it can’t be done using SQL Server Authentication, but am just glad it’s working!
C
ИМХО отчёт как раз лучше формировать экселем — возможностей для анализа больше. Благо он умеет с внешними данными работать.
+1
Дошел до пуска группы сборщика данных.
Не запускается с ошибкой «Вызов SQLAllocConnect завершился в ошибкой %1»
Журнал показал
Источник PDH, Код события 3041, в описании ошибки вот это:
Вызов SQLAllocConnect завершился с ошибкой [Microsoft][ODBC SQL Server Driver][SQL Server]Ошибка входа пользователя «»…
0
Посмотрите свойства Группы сборщиков данных. А именно, от какого пользователя запускает процесс. Этот пользователь должен иметь права писать в базу.
0
всё правильно, накосячил с правами пользователей!
Запустилось, работает
0
Одно не пойму, как общие системные счетчики связанны с конкретным MS SQL сервером, а более того, конкретной базой, ибо нагрузка, в большинстве случаев, вполне конкретная.
Да и вообще, как анализировать, что я могу предположить, из этих данных, более конкретное про:
Первый сервер у меня с памятью DDR1, процессор 1.5 мегагерца и т.д., Второй сервер у меня DDR2 и процессору уже 1.5 гигагерца. Из опыта могу сказать, что вторая машинка будет работать быстрее, но насколько, как и т.д.? Ваш способ мне тоже не даст, ибо он субъективен в рамках машины.
Или я что-то не понимаю?:)
0
Попробую что-то ответить
Я описал способ сбора статистики, запись в БД и последующий анализ. Общие, так сказать, моменты.
При этом, например, Вы ведь можете писать в одну (или в разные!) БД статистику и затем её сравнивать, сделав необходимый отчет? Да и количество счетчиков просто огромно, включая около 20 счетчиков, связанные именного c SQL (instance, agent и т.д.).
Еще раз повторюсь. Я описал простой пример записи данных счетчиков статистики в БД и последующий их анализ через отчеты.
1. Вы можете писать в одну базу данных с неограниченного количества серверов/компьютеров, плюс огромное количество счетчиков (вот прям откройте и посмотрите!)
2. Вы можете создать любые отчеты, которые Вам могут потребоваться через запросы к БД. Посмотрите варианты отчетов в SSDT! Там заблудиться можно.
Вы ведь можете сравнить и графически подтвердить, что второй ваш сервер при тех или иных задачах работает быстрее на столько-то и т.д. ЗАвисит от Вашей фантазии.
0
Способ хороший когда у вас только один-два сервера и количество счетчиков 15-20. А вот когда начинаешь сбор данных с 15 сек. интервалом с 15-20 серверов, то БД получается уже не кислая и счет в таблицах идет на миллиарды строк — ворочать это все запросами очень тяжко. И… мы пошли дальше! Сделали обработку данных в OLAP кубе… =) Если из этого выдет что-то приличное — может быть тисну статью.
0
I have setup the Sql 2008 Data Collection, and there are 3 default collection sets, yet when I try to setup the data collectors on a remote server (log perf counters to sql), I get:
WHen attempting to start the Data Collector Set the
following system error occured:
Call to SQLAllocConnect failed with %1.
My goal is to collect performance statistics from all my Windows 2008 machines in the PDW of the sql 2008 server.
Microsoft SQL Server 2008Windows Server 2008Windows 7