• English日本語한국어
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

SNMP 모니터링 결과에 메트릭이 누락됨

문제

SNMP 모니터링 중에는 장치에 대해 예상되는 모든 메트릭이 표시되지 않습니다.

솔루션

다음 NRQL 쿼리를 실행하여 New Relic에 어떤 메트릭이 있는지 식별합니다.

FROM Metric SELECT
uniques(metricName)
WHERE instrumentation.provider = 'kentik'
AND device_name = '$DEVICE_NAME'
SINCE 1 HOUR AGO LIMIT MAX

중요

$DEVICE_NAME 을 기기 이름으로 바꿉니다.

이 쿼리는 지난 1시간 동안 장치에서 수집된 모든 차원 메트릭 목록을 제공합니다. 측정항목이 목록에 없으면 다음을 시도해야 합니다.

장치가 대상 OID에 응답하는지 확인

snmpwalk 유틸리티 를 사용하여 snmp-base.yaml 구성 파일에서 구성한 SNMP 자격 증명을 사용하여 Docker 호스트에서 측정항목을 수집합니다.

테스트가 실패하면 장치가 수집하려는 OID를 지원하지 않을 가능성이 큽니다. 이는 공급업체가 제어하는 장치 자체의 제한 사항입니다.

SNMPv3을 사용하는 경우 장치에서 v3 사용자의 구성을 확인하십시오. 대부분의 경우 장치 관리자는 v3 사용자 계정에 대해 MIB에 대한 액세스 권한을 명시적으로 부여해야 합니다.

장치가 올바른 프로필과 일치하는지 확인하십시오.

이전 테스트를 통과하면 snmp-base.yaml 파일의 mib_profile 에 대해 구성된 값이 올바른 프로필 파일 이름과 일치하는지 확인합니다. 예를 들어:

devices:
deviceOne:
...
mib_profile: cisco-catalyst.yml
...

다음 NRQL 쿼리를 사용하여 New Relic에서 이를 확인할 수 있습니다.

FROM Metric SELECT
latest(instrumentation.name)
WHERE instrumentation.provider = 'kentik'
AND device_name = '$DEVICE_NAME'

중요

$DEVICE_NAME 을 기기 이름으로 바꿉니다.

SNMP 프로필 라이브러리는 지속적으로 업데이트되고 있으며 사용 중인 컨테이너 이미지에 원하는 프로필 설정이 없는 경우가 있습니다. mib_profile 이(가) 예상 프로필과 일치하지 않으면 구성 파일을 수동으로 업데이트하거나 새 검색을 실행할 수 있습니다.

docker pull kentik/ktranslate:v2 을 실행하여 변경하기 전에 항상 컨테이너의 최신 이미지를 가져와야 합니다.

KTranslate가 예상대로 장치를 폴링하는지 확인하십시오.

이전 테스트에 통과했다면 계정에서 Warn - ktranslate 가 기기에서 특정 측정항목을 수집하는 데 문제가 있음을 나타내는 심각도 오류를 확인해야 합니다.

로그 UI:

bash
$
collector.name:"ktranslate" message:"*OID failed to return results*"

NRQL:

FROM Log SELECT * WHERE `collector.name` = 'ktranslate' AND `message` LIKE '%OID failed to return results%'

예상 결과:

KTranslate>cisco-7513 OID failed to return results, Metric Name: ipIfStatsHCInOctets, Profile: cisco-asr

이 예에서 대상 기기 cisco-7513 이(가) cisco-asr SNMP 프로필에 있는 ipIfStatsHCInOctets OID에 대한 측정항목을 반환하지 않는다는 것을 알 수 있습니다.

다음으로, 제공된 구성을 사용하여 ktranslate 가 요청에서 수신하는 것을 정확히 보기 위해 장치에 대해 단일 SNMP 폴링을 실행해야 합니다.

이렇게 하려면 -snmp_poll_now 플래그를 사용하여 snmp-base.yaml 구성 파일의 이름을 기반으로 기기를 대상으로 지정하여 ktranslate 를 단기 컨테이너로 실행할 수 있습니다. 예를 들어:

bash
$
docker run -d --name ktranslate-poll_now --rm --net=host \
>
-v `pwd`/snmp-base.yaml:/snmp-base.yaml \
>
-e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
>
kentik/ktranslate:v2 \
>
-snmp /snmp-base.yaml \
>
-nr_account_id=$YOUR_NR_ACCOUNT_ID \
>
-tee_logs=true \
>
-service_name=poll_now \
>
-snmp_poll_now=$TARGET_DEVICE_NAME \
>
-format=new_relic_metric

이 폴링의 결과는 다음을 사용하여 컨테이너 로그에서 볼 수 있습니다. docker logs --follow ktranslate-poll_now

기기 메타데이터 폴링 성공 사례:

2022-01-03T23:08:50.583 ktranslate/poll_now [Info] KTranslate SNMP Device Metadata: Data received: {SysName:router123 SysObjectID:.1.3.6.1.4.1.9.1.46 SysDescr:Cisco Internetwork Operating System Software ...}
2022-01-03T23:08:50.585 ktranslate/poll_now [Info] nrmFormat New Metadata for router123

기기 통계 폴링 성공 사례:

[{"metrics":[{"name":"kentik.snmp.ifInErrors","type":"count","value":0,"attributes":{"if_Speed":2,"mib-name":"IF-MIB","poll_duration_sec":60,"if_Type":"proppointtopointserial","if_AdminStatus":"up","objectIdentifier":".1.3.6.1.2.1.2.2.1.14","mib-table":"if","if_OperStatus":"up","device_name":"router123","provider":"kentik-router","if_interface_name":"Se11/0/0:16","instrumentation.name":"cisco-asr","if_Index":"63","if_Address":"10.201.0.65","eventType":"KSnmpInterfaceMetric","if_Netmask":"255.255.255.252","if_Alias":"pkt.ds1"}}]...}]

"정화된 " JSON을 보면 이 장치에 대해 폴링이 예상대로 작동하고 있음을 알 수 있습니다.

[
{
"metrics": [
{
"name": "kentik.snmp.ifInErrors",
"type": "count",
"value": 0,
"attributes": {
"if_Speed": 2,
"mib-name": "IF-MIB",
"poll_duration_sec": 60,
"if_Type": "proppointtopointserial",
"if_AdminStatus": "up",
"objectIdentifier": ".1.3.6.1.2.1.2.2.1.14",
"mib-table": "if",
"if_OperStatus": "up",
"device_name": "router123",
"provider": "kentik-router",
"if_interface_name": "Se11/0/0:16",
"instrumentation.name": "cisco-asr",
"if_Index": "63",
"if_Address": "10.201.0.65",
"eventType": "KSnmpInterfaceMetric",
"if_Netmask": "255.255.255.252",
"if_Alias": "pkt.ds1"
}
}
]
}
]

OID가 장치 프로필에 나열되어 있는지 확인합니다.

이전 테스트를 모두 통과하면 장치 프로필 자체에 OID가 있는지 확인합니다. OID가 나열되고 예상대로 작동하지 않거나 프로필에 OID를 추가해야 하는 경우 GitHub 문제를 열어 저장소 유지 관리자에게 연락하여 해결 방법을 찾을 수 있도록 합니다.

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.