New Relic 네트워크 모니터링을 위해 KTranslate Docker 컨테이너를 실행하는 동안 잠재적인 문제를 사전에 감지하기 위해 컨테이너의 상태를 모니터링할 수 있습니다.
KTranslate 컨테이너 이미지에는 런타임 중에 사용할 수 있는 -tee_logs=true
및 -metrics=jchf
설정이 있어 상태 측정항목을 New Relic에 직접 보낼 수 있습니다. New Relic 안내 설치를 통해 네트워크 모니터링을 설치할 때 기본적으로 활성화됩니다. 네트워크 모니터링을 수동으로 설치할 때 설정하는 것이 좋습니다.
KTranslate의 로그 팁 Docker 호스트에서 로컬로 로그를 확인하려면 docker logs $CONTAINER_NAME
을 실행합니다. 예: docker logs ktranslate-snmp
.
-tee_logs=true
옵션은 기기를 폴링할 때 New Relic에 로그를 보냅니다. 그것들을 보려면 다음을 수행하십시오.
one.newrelic.com > All capabilities > Logs 으)로 이동합니다.Find logs where 에 collector.name:"ktranslate"
입력하고 Query logs 클릭합니다.일반적인 로그 검색 다음은 문제 해결 중에 지원을 위해 데이터를 수집하는 데 사용할 수 있는 몇 가지 일반적인 검색입니다.
어떤 버전의 KTranslate를 실행하고 있습니까? 로그 UI:
$ collector.name: "ktranslate" message: "*KTranslate Running -- Version*"
NRQL:
FROM Log SELECT * WHERE ` collector.name ` = 'ktranslate' AND ` message ` LIKE '%KTranslate Running -- Version%'
예상 결과:
$ KTranslate Running -- Version kt-2021-12-06-1546870234 ; Build Mon Dec 6 22 :22:56 UTC 2021
런타임에 Docker에 어떤 인수가 전달되었습니까? 로그 UI:
$ collector.name: "ktranslate" message: "*KTranslate CLI:*"
NRQL:
FROM Log SELECT * WHERE ` collector.name ` = 'ktranslate' AND ` message ` LIKE '%KTranslate CLI:%'
예상 결과:
$ KTranslate CLI: [ ktranslate -listen off -mapping /etc/ktranslate/config.json -geo /etc/ktranslate/GeoLite2-Country.mmdb -udrs /etc/ktranslate/udr.csv -api_devices /etc/ktranslate/devices.json -asn /etc/ktranslate/GeoLite2-ASN.mmdb -log_level info -snmp /snmp-base.yaml -nr_account_id = 2583772 -log_level = info -metrics = jchf -tee_logs = true -service_name = snmp nr1.snmp ]
어떤 오류가 발생합니까? 로그에 구문 분석 규칙이 적용되지 않은 경우
로그 UI:
$ collector.name: "ktranslate" message:-* \ [ Info \ ] *
NRQL:
FROM Log SELECT * WHERE ` collector.name ` = 'ktranslate' AND ` message ` NOT LIKE '%[Info]%'
로그에 파싱 규칙이 적용된 경우
로그 UI:
$ collector.name: "ktranslate" severity:- "Info"
NRQL:
FROM Log SELECT * WHERE ` collector.name ` = 'ktranslate' AND ` severity ` != 'Info'
예상 결과:
$ KTranslate > cisco-7513 There was an SNMP polling error with the CustomDeviceMetrics walking OID .1.3.6.1.2.1.4.31.1.1.21 after 0 retries: request timeout ( after 0 retries ) .
팁 KTranslate에는 다음과 같은 로그 심각도 수준이 있습니다: Info
, Warn
, Error
.
내 match_attributes 필터가 내 기기에서 작동합니까? 로그 UI:
$ collector.name: "ktranslate" message: "*Match Attribute*"
NRQL:
FROM Log SELECT * WHERE ` collector.name ` = 'ktranslate' AND ` message ` LIKE '%Match Attribute%'
예상 결과:
$ KTranslate > cisco-7513 Added 1 Match Attribute ( s )
모든 기기에는 기본 monitor_admin_shut: true
구성에서 상속된 일치 속성이 1개 이상 있어야 합니다. 단일 일치 속성을 추가한 기기에 대해 2
값이 표시될 것으로 예상해야 합니다.
팁 기기 이름을 쿼리에 추가하여 이러한 결과를 추가로 필터링할 수 있습니다. collector.name:"ktranslate" message:"*$DEVICE_NAME*Match Attribute*"
.
KTranslate의 지표 -metrics
옵션은 기기를 폴링할 때 다음 성능 측정항목을 캡처합니다.
미터법
세분성
설명
baseserver_healthcheck_execution_total
최상위 레벨
내부 상태 확인 비율입니다. 대부분 사물이 교착 상태가 아니며 항상 0보다 커야 함을 나타냅니다.
inputq
최상위 레벨
모든 SNMP, Flow 및 VPC 입력에서 지난 60초 동안 수신된 초당 메시지(msg/sec)입니다.
jchfq
최상위 레벨
사용 가능한 사전 할당된 버퍼 수로 속도를 측정합니다. 약 8,000개 정도는 되어야 합니다.
delivery_metrics_nr
New Relic로 배달
모든 지표에 대해 지난 60초 동안 New Relic에 보낸 초당 배치(배치/초)입니다.
delivery_logs_nr
New Relic로 배달
New Relic에 대한 모든 로그에 대해 지난 60초 동안 전송된 초당 로그(logs/sec)입니다.
delivery_wins_nr
New Relic로 배달
지난 60초 동안 New Relic에 메트릭 및 이벤트를 전송하여 수신한 HTTP 코드 200개의 초당 승수(초당 승수)입니다.
device_metrics
SNMP
장치 수준 메트릭에 대한 지난 60초 동안의 SNMP 폴링 초당 폴링(폴링/초)입니다.
interface_metrics
SNMP
인터페이스 수준 메트릭에 대한 지난 60초 동안 SNMP 폴링의 초당 폴링(폴링/초)입니다.
snmp_fail
SNMP
SNMP 폴링이 device_name
패싯으로 작동하는지 모니터링하는 게이지입니다. 여기서 1은 양호, 2는 실패를 의미합니다.
netflow.flows
넷플로우
모든 장치 흐름 데이터(IPFIX, NetFlow 또는 sFlow)에 대해 지난 60초 동안 수신된 초당 흐름(fps)입니다.
syslog_queue
시스템 로그
처리 대기 중인 syslog 메시지의 게이지입니다.
syslog_errors
시스템 로그
syslog 메시지를 처리하는 동안 지난 60초 동안의 초당 오류(오류/초)입니다.
syslog_messages
시스템 로그
모든 syslog 데이터에 대해 지난 60초 동안 수신된 초당 메시지(msg/sec)입니다.
일반적인 측정항목 검색 New Relic에서 이러한 측정항목을 보려면:
one.newrelic.com > All capabilities > Query your data 으)로 이동합니다.다음 NRQL 쿼리 중 하나를 입력합니다. 내 KTranslate 애플리케이션의 현재 버전은 무엇입니까? latest ( ver ) AS 'image_version'
FACET host AS 'docker_host' , svc AS 'container_service'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
내 KTranslate 애플리케이션의 상태는 어떻습니까? latest ( kentik . ktranslate . chf . kkc . baseserver_healthcheck_execution_total ) AS 'healthcheck_total' ,
latest ( kentik . ktranslate . chf . kkc . inputq ) AS 'input_per_second' ,
latest ( kentik . ktranslate . chf . kkc . jchfq ) AS 'buffer'
FACET host AS 'docker_host' , svc AS 'container_service'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
New Relic으로 배송된 상품의 상태는 어떻습니까? latest ( kentik . ktranslate . chf . kkc . delivery_metrics_nr ) AS 'delivery_metric_batches_per_second' ,
latest ( kentik . ktranslate . chf . kkc . delivery_logs_nr ) AS 'delivery_logs_per_second' ,
latest ( kentik . ktranslate . chf . kkc . delivery_wins_nr ) AS 'delivery_wins_per_second'
FACET host AS 'docker_host' , svc AS 'container_service'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
내 SNMP 컬렉션의 전반적인 상태는 어떻습니까? latest ( kentik . ktranslate . chf . kkc . device_metrics ) AS 'device_polls_per_second' ,
latest ( kentik . ktranslate . chf . kkc . interface_metrics ) AS 'interface_polls_per_second'
FACET host AS 'docker_host' , svc AS 'container_service'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
SNMP 수집에 실패한 장치는 무엇입니까? latest ( kentik . ktranslate . chf . kkc . snmp_fail ) AS 'snmp_fail'
FACET host AS 'docker_host' , svc AS 'container_service' , device_name AS 'snmp_device'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
FACET docker_host , container_service , snmp_device
내 흐름 데이터 수집의 상태는 어떻습니까? max ( kentik . ktranslate . chf . kkc . netflow ) AS 'flows_per_second'
FACET host AS 'docker_host' , svc AS 'container_service' , device_name AS 'flow_device'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'
내 syslog 컬렉션의 상태는 어떻습니까? latest ( kentik . ktranslate . chf . kkc . syslog_queue ) AS 'syslog_queue_total' ,
latest ( kentik . ktranslate . chf . kkc . syslog_errors ) AS 'syslog_errors_per_second' ,
latest ( kentik . ktranslate . chf . kkc . syslog_messages ) AS 'syslog_messages_per_second'
FACET host AS 'docker_host' , svc AS 'container_service'
WHERE provider = 'kentik-agent'
AND instrumentation . name = 'heartbeat'