- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
SQL Server 통합 타일의 지침에 따라 Datadog 에이전트를 설정하여 SQL 서버에서 메트릭을 수집합니다. 본 통합은 몇 가지 기본 SQL 서버 메트릭을 제공하며, 원하는 대로 확장 가능합니다.
그러나 사용자가 본 통합을 설정할 시 흔히 발생하는 연결 오류가 있는데, 이 오류는 원인이 될 수 있는 변수가 많기 때문에 문제 해결이 특히 까다로울 수 있습니다. 전체 오류는 다음과 같습니다.
'Unable to connect to SQL Server for instance 127.0.0.1,1433 - None. \n Traceback (most recent call last):\n File "C:\\Program Files (x86)\\Datadog\\Datadog Agent\\files\\..\\checks.d\\sqlserver.py", line 219, in get_cursor\n File "adodbapi\\adodbapi.pyc", line 116, in connect\nOperationalError: (com_error(-2147352567, \'Exception occurred.\', (0, u\'Microsoft OLE DB Provider for SQL Server\', u\'[DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied.\', None, 0, -2147467259), None), \'Error opening connection to "Provider=SQLOLEDB;Data Source=127.0.0.1,1433;Initial Catalog=master;User ID=datadog;Password=******;"\')\n'
본 오류는 에이전트가 SQL 서버에 연결할 수 없어 데이터 수집을 완료하지 못했음을 나타냅니다. 다음 중 하나가 원인일 수 있습니다.
conf.yaml
호스트, 포트, 사용자 이름 또는 비밀번호의 오타(전부 세 번 확인 권장);
)이 포함된 경우 비밀번호에 중괄호를 사용하여 해결(password: "{<PASSWORD>}"
)conf.yaml
에 제공한 주소와 일치하지 않습니다.conf.yaml
에 제공한 주소와 일치하지 않습니다.올바른 TCP/IP 주소/포트에서 수신 대기하도록 서버를 설정하는 방법을 확신할 수 없다면 Microsoft의 특정 TCP 포트에서 수신 대기 서버 설정 항목을 참고하세요(IPv4와 IPALL이 구체적으로 관련된 부분이며, 여기서 포트를 “동적” 또는 “정적” 포트로 설정할 수 있지만 사용하지 않는 포트는 공란으로 두어야 합니다). 에이전트가 SQL Server와 동일한 호스에 설치된 경우, 사용자 관점에서 볼 때 해당 호스트가 로컬 호스트가 아니더라도 호스트 옵션을 “127.0.0.1"로 설정하는 것이 적절할 수 있습니다. SQL 서버 연결 표준 포트는 1433입니다.
SQL 서버의 인증 모드를 설정하는 방법을 확신할 수 없다면 Microsoft의 인증 모드 선택 문서를 참조하세요.
참고: SQL 서버를 위와 같이 변경하는 경우 변경 사항을 적용하려면 SQL 서버를 재시작해야 합니다.
다음은 Datadog 테스트 환경(윈도우즈(Windows) 2012 R2, SQL 서버 2014 익스프레스) 중 하나에서 동작하는 일부 SQL 서버 IP/TCP 설정의 예시입니다.
Datadog SQL 서버 점검은 adodbapi 파이썬(Python) 라이브러리를 사용합니다. 이 때문에 SQL 서버에 연결할 시 생성되는 연결 스트링에 사용할 수 있는 문자가 제한적입니다. 에이전트가 SQL 서버에 연결할 때 문제가 발생하고 에이전트 collector.logs에 다음과 같은 오류가 표시되면 sqlserver.yaml
에 문제의 원인이 되는 문자가 포함되어 있을 수도 있습니다.
OperationalError: (KeyError('Python string format error in connection string->',), 'Error opening connection to ""')
현재까지 이 연결 문제를 일으키는 문자는 %
뿐입니다. sqlserver.yaml
파일에 문자 “%“를 사용해야 하는 경우( Datadog SQL 서버 사용자 암호에 %
가 포함된 경우), %
문자를 하나만 사용하지 않고 %%
로 두 번 사용하여 문제를 해결할 수 있습니다.
SQL Server(Linux나 Windows에서 호스팅)를 Linux 호스트에 연결하려면:
Linux 배포용 Microsoft ODBC 드라이버를 설치합니다.
사용할 드라이버 이름이 무엇인지 잘 모르겠다면 /etc/odbcinst.ini
상단에 괄호로 표시되어 있습니다.
$ cat /etc/odbcinst.ini
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.7.0
UsageCount=1
odbc.ini
과 odbcinst.ini
파일을 /opt/datadog-agent/embedded/etc
폴더에 복사합니다.
필요할 경우 pyodbc 모듈을 설치합니다. 에이전트의 Python 환경에서 pip install pyodbc를 실행해 설치할 수 있습니다. 다음 예시를 참고하세요.
$ sudo /opt/datadog-agent/embedded/bin/pip install pyodbc
odbc 커넥터를 사용하도록 SQL Server conf.yaml
을 구성하고 odbcinst.ini
파일에 명시된 대로 적절한 드라이버를 지정합니다.
init_config:
instances:
- host: <HOST>,<PORT>
# enable the odbc connector
connector: odbc
# enable the ODBC driver
driver: ODBC Driver 13 for SQL Server
username: <USERNAME>
password: <PASSWORD>