네트워크 모니터링을 구성할 때 사용할 수 있는 모든 옵션을 살펴보려면 다음 섹션을 참조하세요.
snmp-base.yaml
다음은 SNMP 및 플로우 데이터 장치를 폴링하기 위해 ktranslate Docker 이미지에서 사용하는 snmp-base.yaml 파일에서 사용할 수 있는 다양한 설정 옵션의 예입니다. 또한 GitHub의 KTranslate 저장소 에서 주석이 많이 달린 샘플을 볼 수도 있습니다.
# Configuration of every device monitored by this container
SNMP 폴링 중에 디버그 수준 로깅을 활성화할지 여부를 나타냅니다. 기본적으로 false 으로 설정됩니다.
포트
SNMP 쿼리를 보낼 포트입니다. 기본적으로 포트 161 로 설정됩니다.
이드
✓ (SNMP 폴링에 필요)
기기에 대해 검색된 systemObjectID | sysObjectID | sysOID 입니다. 이것은 기기를 알려진 SNMP 프로필과 일치시키고 provider 속성을 설정하는 데 사용됩니다. 일치하는 항목이 없으면 provider 를 kentik 기본 장치로 설정합니다.
description
기기의 검색된 sysDescr 입니다. 이 필드는 정보용입니다.
last_checked
타임스탬프는 이 장치가 ktranslate Docker 이미지에 의해 마지막으로 발견된 시간입니다. 이 필드는 정보 제공용입니다.
mib_profile
✓ (SNMP 폴링에 필요)
sysOID 을(를) 기반으로 검색 실행 중에 이 장치와 연결된 SNMP 프로필 파일입니다. If this starts with a bang (!) token, it will override the automatic matching from the sysOID and use a manual override. 예: "!cisco-asa.yml" (따옴표가 필요함).
공급자
✓ (New Relic에 필요)
New Relic의 엔티티 합성 시 사용되는 값입니다. 이는 일치하는 mib_profile 을 기반으로 자동 생성되며 엔터티가 생성되려면 엔터티 정의 저장소의 규칙 중 하나와 일치해야 합니다. 장치를 수동으로 추가하는 경우 이 값이 유효한지 주의해야 합니다.
poll_time_sec
SNMP 폴링 빈도를 초 단위로 나타냅니다. 이 설정은 global.poll_time_sec 속성을 재정의하는 데 사용됩니다.
재시도
SNMP OID 폴링 재시도 횟수를 나타냅니다. 이 설정은 global.retries 속성을 재정의하는 데 사용됩니다.
timeout_ms
SNMP 폴링 시간 초과를 밀리초 단위로 나타냅니다. 이 설정은 global.timeout_ms 속성을 재정의하는 데 사용됩니다.
user_tags
key:value 장치에 더 많은 컨텍스트를 제공하기 위해 속성을 쌍으로 구성합니다. 이 수준의 태그는 global.user_tags 속성에 적용된 모든 태그에 추가됩니다.
발견된_mibs
이 기기가 응답할 수 있는 일치하는 mib_profile 에서 가져온 MIB 목록입니다. 이 필드는 정보용입니다.
engine_id
이 장치의 SNMP 에이전트에 대해 검색된 고유 엔진 ID입니다. 일반적으로 SNMP v3 검색 중에 발견됩니다. 이 필드는 정보용입니다.
match_attributes
attribute:regex 허용 목록에 메트릭을 추가하는 쌍입니다. 이 수준의 쌍은 global.match_attributes 속성에 적용된 모든 쌍에 추가됩니다. RE2 구문을 사용하고 기본 OR 연산자가 있습니다. AND 연산자를 강제 실행하려면 접두사 키에 ! 를 붙입니다.
monitor_admin_shut
Administratively Shutdown 상태의 인터페이스를 모니터링할지 여부를 나타냅니다. 기본적으로 false 로 설정됩니다.
no_use_bulkwalkall
true 때 SNMP GETBULK 요청 작업을 비활성화합니다. 기본적으로 false 로 설정됩니다.
응답 시간
이 장치에 대해 응답 시간 폴링이 활성화되었는지 여부를 나타냅니다. 기본적으로 false 으로 설정됩니다.
ping_only
모든 SNMP 폴링을 비활성화하고 true일 때 이 장치에 대한 응답 시간 폴링을 활성화합니다. 이 설정은 global.response_time 속성을 재정의합니다. 기본적으로 false로 설정되어 있습니다. 각 ping_only 장치에 대해 provider: kentik_ping 행을 포함했는지 확인하고 싶을 것입니다.
ping_interval_sec
이 설정은 ping_only | response_time 폴링.
flow_only
true 일 때 모든 SNMP 폴링을 비활성화합니다. 기본적으로 false 로 설정됩니다.
purge_after_num
X개의 예약된 검색 작업이 실패한 후 구성 파일에서 장치를 제거합니다. This setting overrides the global purge_devices_after_num setting. 기기를 영구적으로 유지하려면 이를 -1 로 설정하고, 퍼지 레버 값을 설정하려면 정수 >= 1 로 설정하세요. (기본값: 0)
이 device_name 구성에 대한 모든 SNMP 폴링을 비활성화합니다. 기본값: false.
키 이름
필수의
설명
듣다
✓
SNMP 트랩을 수신하기 위한 수신 IP 포트입니다. 기본적으로 0.0.0.0:1620 으로 설정되어 있으며 docker run ... 명령에서 리디렉션을 사용하여 호스트의 보다 일반적인 UDP 162를 컨테이너의 UDP 1620으로 리디렉션합니다. 리디렉션은 이 플래그로 수행됩니다. -p 162:1620/udp
지역 사회
SNMP 트랩을 수신하기 위한 SNMPv1/v2c 커뮤니티 문자열입니다. 기본적으로 우리는 들어오는 트랩이 이 커뮤니티와 일치하지 않더라도 계속 처리합니다.
버전
사용할 SNMP 버전입니다. 옵션은 v1 , v2c 및 v3 입니다. 기본적으로 v2c 으로 설정됩니다.
수송
사용할 SNMP 전송 프로토콜입니다. 옵션은 TCP 및 UDP 입니다. 기본적으로 다음으로 설정되어 있습니다. UDP
SNMP 폴링 중에 검색할 다중 SNMPv3 설정 . Use this option OR default_v3, not both
add_devices
✓
검색된 기기를 snmp-base.yaml 파일의 devices 섹션에 추가할지 여부를 나타냅니다. 기본적으로 true 로 설정됩니다.
add_mibs
✓
검색된 MIB를 snmp-base.yaml 파일의 global.mibs_enabled 섹션에 추가할지 여부를 나타냅니다. 기본적으로 true 로 설정됩니다.
스레드
✓
검색 중에 사용할 스레드의 정수 제한입니다. 컨테이너에서 사용할 수 있는 코어 수보다 작아야 합니다. 기본적으로 4 으로 설정됩니다.
replace_devices
✓
검색된 기기가 snmp-base.yaml 파일의 devices 섹션에 이미 있는 경우 교체할지 여부를 나타냅니다. 기본적으로 true 로 설정됩니다.
no_dedup_engine_id
true 으로 설정하면 보고된 SNMP 엔진 ID를 기반으로 검색된 장치가 동일한 장치로 표시되는 경우 해당 장치의 중복 제거가 비활성화됩니다. 기본적으로 다음으로 설정되어 있습니다. false
check_all_ips
true 으로 설정하면 검색 작업이 TCP 포트 스캔을 통해 활성 상태를 먼저 확인하지 않고 cidrs 배열의 모든 대상 IP 주소에 대해 SNMP 연결을 시도하도록 합니다. 이 설정은 검색 작업의 속도를 늦추지만 /32 재정의를 사용하여 cidrs 어레이에 나열되지 않은 기기에 대해 검색이 실패하는 문제를 우회하는 데 도움이 될 수 있습니다. 기본적으로 다음으로 설정되어 있습니다. false
키 이름
필수의
설명
poll_time_sec
✓
장치를 폴링하는 시간(초)입니다. devices.<deviceName>.poll_time_sec 속성을 사용하여 기기별로 재정의할 수 있습니다. 기본적으로 60 로 설정됩니다.
drop_if_outside_poll
폴링이 poll_time_sec 에 설정된 값보다 오래 걸리는 경우 이 주기에서 모든 값을 삭제할지 여부를 나타냅니다. 기본적으로는 false 으로 설정됩니다.
mib_profile_dir
선별된 MIB 프로필을 찾기 위한 디렉터리입니다. 이는 Kentik의 snmp-profiles 저장소에서 자동으로 ktranslate 이미지로 가져오며 Docker 런타임에 프로필의 로컬 디렉터리에 대한 볼륨 마운트를 만들어 재정의할 수 있습니다.
mibs_db
mibs_enabled
✓
모든 활성 MIB 중 ktranslate Docker 이미지가 폴링됩니다. 이 목록은 discovery_add_mibs 속성이 true 인 경우 검색 중에 자동으로 생성됩니다. 여기에 나열되지 않은 MIB는 설정 파일의 어떤 장치에서도 폴링되지 않습니다. MIB-NAME.tableName 구문을 사용하여 MIB 파일에서 직접 SNMP 테이블을 지정할 수 있습니다. 예: HOST-RESOURCES-MIB.hrProcessorTable.
timeout_ms
✓
SNMP 쿼리 시간 초과 시간(밀리초)입니다. 이는 devices.<deviceName>.timeout_ms 속성을 사용하여 기기별로 재정의할 수 있습니다. 기본적으로는 3000 으로 설정됩니다.
재시도
✓
실패한 SNMP 폴링을 재시도하려는 시도 횟수입니다. 이는 devices.<deviceName>.retries 속성을 사용하여 기기별로 재정의할 수 있습니다. 기본적으로는 0 으로 설정됩니다.
user_tags
key:value 장치에 더 많은 컨텍스트를 제공하기 위해 속성을 쌍으로 구성합니다. 이 수준의 태그는 구성 파일의 모든 장치에 적용됩니다.
match_attributes
attribute:regex 허용 목록에 메트릭을 추가하는 쌍입니다. 이 수준의 쌍은 구성 파일의 모든 장치와 일치합니다. RE2 구문을 사용하고 기본 OR 연산자가 있습니다. AND 연산자를 강제 실행하려면 접두사 키 ! .
응답 시간
구성 파일의 모든 장치에 대해 응답 시간 폴링이 활성화되었는지 여부를 나타냅니다. 기본적으로 false 으로 설정됩니다.
purge_devices_after_num
X개의 예약된 검색 작업이 실패한 후 구성 파일에서 장치를 제거합니다. 기기를 영구적으로 보관하려면 이를 -1 로 설정하고, 삭제 청년 값을 설정하려면 정수 >= 1 로 설정하세요. 기본적으로는 0 으로 설정됩니다.
Azure Key Vault를 사용하려면 다음 5가지 환경 변수를 설정하고 런타임 시 docker 에 제공해야 합니다.
팁
KT_AZURE_KEY_VAULT_NAME 또는 KT_AZURE_KEY_VAULT_URL 중 하나를 설정해야 하며 둘 다 설정할 필요는 없습니다. 기본값은 KT_AZURE_KEY_VAULT_NAME 사용하는 것이며 에이전트는 공통 URL 패턴을 사용합니다. https://$KT_AZURE_KEY_VAULT_NAME.vault.azure.net/
Arista eAPI 통합은 일반적으로 SNMP 폴링을 통해 사용할 수 없는 추가 BGP 및 MLAG 원격 측정을 수집합니다.
BGP 세부정보는 다음 명령에서 수집됩니다. show ip bgp summary vrf all
BGP 원격 측정을 찾기 위한 NRQL:
FROM Metric SELECT
max(kentik.eapi.bgp.InMsgQueue)AS'InQ',// Messages Queued from the Neighbor
max(kentik.eapi.bgp.MsgReceived)AS'MsgSent',// Messages Received from the Neighbor
max(kentik.eapi.bgp.MsgSent)AS'MsgRcvd',// Messages Sent to the Neighbor
latest(peer_state)AS'State',// State of the BGP session
latest(kentik.eapi.bgp.UpDownTime)AS'Up/Down',// Period the BGP session has been in current state
latest(kentik.eapi.bgp.Version)AS'V'// BGP version number
FACET
entity.name AS'Device',
router_id AS'Device IP',
peer AS'BGP Peer',
peer_asn AS'BGP Peer ASN',
vrf AS'VRF Name'
MLAG 세부정보는 다음 명령에서 수집됩니다. show mlag detail
MLAG 원격 측정을 찾는 NRQL:
FROM Metric SELECT
latest(kentik.eapi.mlag.PortsConfigured)AS'Ports Configured',// Count of MLAG ports currently configured
latest(kentik.eapi.mlag.PortsDisabled)AS'Ports Disabled',// Count of MLAG ports in 'Disabled' state
latest(kentik.eapi.mlag.PortsActivePartial)AS'Ports Active-partial',// Count of MLAG ports in 'Active-partial' state
latest(kentik.eapi.mlag.PortsInactive)AS'Ports Inactive',// Count of MLAG ports in 'Inactive' state
latest(kentik.eapi.mlag.PortsActiveFull)AS'Ports Active-full',// Count of MLAG ports in 'Active-full' state
latest(kentik.eapi.mlag.PortsErrdisabled)AS'Ports Err-disabled',// Count of MLAG ports in 'Err-disabled' state
latest(config_sanity)AS'Config-Sanity',// Current result of 'config-sanity' check
latest(state)AS'State',// Current MLAG state
latest(neg_status)AS'Negotiation Status',// Current negotiation status between switches
latest(peer_address)AS'Peer Address',// Address of MLAG peer
latest(peer_link)AS'Peer Link',// Link name for MLAG peer
latest(peer_link_status)AS'Peer Link Status',// Status of MLAG peer
latest(local_interface)AS'Local Interface',// Local interface used for MLAG configuration
latest(local_intf_status)AS'Local Interface Status'// Status of local interface used for MLAG configuration
FACET
entity.name AS'Device',
domain_id AS'MLAG Domain ID'
구성 옵션
키 이름
필수의
설명
eapi_config.사용자 이름
✓
eAPI 인증을 인증하기 위해 장치에 전달할 사용자 이름입니다.
eapi_config.password
✓
eAPI 인증을 인증하기 위해 장치에 전달할 비밀번호입니다.
eapi_config.transport
사용할 연결 전송 유형을 지정합니다. 가능한 값은 https 및 http 입니다. 기본값: https.
eapi_config.port
✓
eAPI 연결을 위한 끝점의 TCP 포트입니다.
Meraki 대시보드 API 통합은 Meraki 환경의 상태와 관련된 다양한 지표를 가져옵니다. 설정 옵션을 조합하면 필요에 맞게 다양한 모니터링 시나리오를 설정하고 뉴렐릭 계정에 엔터티를 생성할 수 있습니다.
조직 지표는 기본적으로 Meraki Organization 부문을 생성하는 데만 사용되는 kentik.meraki.organization.Count 지표 아래에 수집됩니다. 이는 주로 Meraki 계층 구조를 시각화하여 네트워크와 장치를 상위 조직에 정렬하기 위한 것입니다.
meraki_config.monitor_org_changes: true: 조직 설정 변경 끝점 가져오기 를 사용하여 조직의 변경 로그를 볼 수 있습니다.
조직 구성 변경 원격 분석을 찾는 NRQL:
FROM KExtEvent SELECT*
meraki_config.preferences.show_network_attr: true
네트워크 지표는 Meraki Network 부문을 생성하는 데만 사용되는 kentik.meraki.network.Count 지표 아래에 수집됩니다. 이는 주로 Meraki 계층 구조를 시각화하고 장치를 구성원인 네트워크에 정렬하기 위한 것입니다.
meraki_config.monitor_devices: true && meraki_config.preferences.device_status_only: true: 조직 장치 상태 가져오기 엔드포인트를 사용하여 조직에 있는 모든 Meraki 장치의 상태를 나열합니다.
장치 상태 원격 분석을 찾기 위한 NRQL:
FROM Metric SELECT
latest(status)AS'Device Status'// Current status of this device
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
src_addr AS'Device Public IP',
mac AS'Device MAC',
model AS'Device Model',
serialAS'Device Serial',
address AS'Device Address',
lat AS'Device Latitude',
lng AS'Device Longitude',
notes AS'Device Notes'
WHERE instrumentation.name ='meraki.device_status'
meraki_config.monitor_uplinks: true && meraki_config.preferences.hide_uplink_usage: false: 조직 업링크 상태 가져오기 및 네트워크별 조직 기기 업링크 사용량 가져오기를 모두 사용하여 조직의 모든 Meraki MX, MG 및 Z 시리즈 장치의 업링크 상태 및 성능을 나열합니다.
장치 업링크 원격 측정을 찾기 위한 NRQL:
FROM Metric SELECT
max(kentik.meraki.uplinks.LatencyMS)AS'Uplink Latency',// Uplink measured latency in milliseconds
max(kentik.meraki.uplinks.LossPct)AS'Uplink Loss %',// Uplink measured loss percentage
max(kentik.meraki.uplinks.Recv)AS'Uplink Receive Bytes',// Uplink bytes received
max(kentik.meraki.uplinks.Sent)AS'Uplink Transmit Bytes',// Uplink bytes sent
latest(status)AS'Uplink Status'// Latest status of the uplink
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
interface AS'Device Uplink Interface',
model AS'Device Model',
serialAS'Device Serial'
WHERE org_id ISNOTNULL
meraki_config.monitor_uplinks: true && meraki_config.preferences.hide_uplink_usage: true: Get Organization Uplinks Statuses 크기를 사용하여 조직의 모든 Meraki MX, MG 및 Z 시리즈 장치의 업링크 상태만 나열합니다.
장치 업링크 상태 원격 측정을 찾기 위한 NRQL:
FROM Metric SELECT
latest(status)AS'Uplink Status'// Latest status of the uplink
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
interface AS'Device Uplink Interface',
model AS'Device Model',
serialAS'Device Serial'
WHERE org_id ISNOTNULL
meraki_config.monitor_vpn_status: true && meraki_config.preferences.show_vpn_peers: false: Get Organ Appliance VPN Statuses 엔드포인트를 사용하여 조직의 네트워크 전반에 걸쳐 VPN 상태를 표시합니다.
VPN 상태 원격 측정을 찾기 위한 NRQL:
FROM Metric SELECT
latest(status)AS'VPN Status'// Latest status of this VPN
FACET
org_id AS'Organization ID',
org_name AS'Organization Name',
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
serialAS'Device Serial',
vpn_mode AS'VPN Mode',
wan1 OR wan2 AS'WAN Interface IP'
WHERE instrumentation.name ='meraki.vpn_status'
AND org_id ISNOTNULL
meraki_config.monitor_vpn_status: true && meraki_config.preferences.show_vpn_peers: true: 조직 내 네트워크 전반에 걸쳐 VPN 피어에 대한 정보를 추가하려면 Get Organ Appliance VPN Statuses 엔드포인트를 사용합니다.
VPN 피어 원격 측정을 찾기 위한 NRQL:
FROM Metric SELECT
latest(status)AS'Peer Status'// Current status of this VPN peer
FACET
network_id AS'Network ID',
network AS'Network Name',
device_name AS'Device Name',
serialAS'Device Serial',
vpn_mode AS'VPN Mode',
wan1 AS'WAN 1 IP',
wan2 AS'WAN 2 IP',
peer_name AS'Peer Name',// Name of this peer
peer_reachability AS'Peer Reachability',// Latest results of reachability test for this peer
peer_network_id AS'Peer Network ID',// Network ID for this peer
peer_type AS'Peer Type'// Type of Peer (Meraki vs Third-party)
WHERE metricName ='kentik.meraki.vpn_status.PeerStatus'
팁
API 환경 변수를 사용하면 API 키를 설정 파일에 일반 텍스트로 저장하지 않고 Meraki 통합에 전달할 수 있습니다.
이러한 옵션을 사용하면 기본 구성 옵션에서 수집된 데이터를 추가로 정의할 수 있습니다. 위의 예시 섹션에는 다양한 조합이 설명되어 있습니다.
키 이름
필수의
입력
설명
meraki_config.preferences.device_status_only
사실 | 거짓(기본값: 거짓)
폴링을 상태 정보로만 제한하기 위해 monitor_devices: true 사용할 때 필요합니다 . (This is used to prevent timeout issues.)
meraki_config.preferences.hide_uplink_usage
사실 | 거짓(기본값: 거짓)
성능 측정항목을 제거하고 업링크에 대한 상태 정보만 반환하기 위해 monitor_uplinks 와 함께 사용됩니다.
meraki_config.preferences.show_vpn_peers
사실 | 거짓(기본값: 거짓)
VPN 피어에 원격 분석을 추가하기 위해 monitor_vpn_status 과 함께 사용됩니다.
meraki_config.preferences.show_network_attr
사실 | 거짓(기본값: 거짓)
네트워크에 텔레메트리를 추가하는 데 사용됩니다. Meraki Network 부분을 생성하는 데 필요합니다.
최소 구성 예
# This represents the minimal configuration required for a container that only performs Meraki API polling.
# By default we only monitor uplinks. All other items are optional.
---
devices:
meraki_cloud_controller:
device_name: meraki_cloud_controller
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY"
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
전체 설정 예시 [#meraki-full-config]
Meraki Organization, Meraki Network 및 Meraki Device 부문을 생성하는 데 필요한 모든 옵션입니다.
devices:
meraki_dashboard_api:
device_name: meraki_controller
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key: $YOUR_MERAKI_API_KEY
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
hide_uplink_usage:false
show_vpn_peers:true
show_network_attr:true
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
여러 Meraki 대시보드 API 키 타겟팅
devices:
# Entity 1 - monitor everything this API key has access to
meraki_all:
device_name: meraki_all
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_1"
max_http_retry:8
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
show_vpn_peers:true
hide_uplink_usage:false
# Entity 2 - Monitor these specific organizations under this API key
meraki_single_org:
device_name: meraki_single_org
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_2"
monitor_devices:true
monitor_org_changes:true
monitor_uplinks:true
monitor_vpn_status:true
preferences:
device_status_only:true
show_vpn_peers:true
hide_uplink_usage:false
organizations:
-"Org 1 - Prod.*"
-"Org 2 - Staging"
# Entity 3 - Monitor specific devices filtered by organization, network, and product types; using the same API key from Entity 2
meraki_filtered:
device_name: meraki_filtered
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only:true
meraki_config:
api_key:"$YOUR_API_KEY_2"
monitor_devices:true
monitor_uplinks:false
preferences:
device_status_only:true
organizations:
-"Org 3 - Remote Sites"
networks:
-"Corp.*99"
-"Retail.*"
product_types:
- wireless
- appliance
trap:{}
discovery:{}
global:
poll_time_sec:300
timeout_ms:30000
외부 구성 파일
다양한 설정 및 자동화 요구 사항을 지원하기 위해 docker 컨테이너에 볼륨 마운트하는 외부 파일을 사용하여 표준 설정 파일의 특정 요소를 분리할 수 있습니다. 외부 설정 파일당 하나의 인수와 함께 docker run 명령에 아래 마운트 인수를 포함해야 합니다.
-v `pwd`/fileName.yaml:/fileName.yaml \
이러한 파일의 구문은 큰따옴표를 포함하여 "@fileName.yaml" 입니다.
예시:
discovery:
cidrs:"@cidrs.yaml"
CIDR 파일은 다음과 같은 YAML 목록 구문을 사용해야 합니다.
- 10.10.0.0/24
- 10.20.0.0/24
- 192.168.0.21/32
예시:
devices:
"@neteng-devices.yaml"
기기 파일은 기본 구성 파일의 표준 devices 섹션과 동일한 구문을 사용해야 하며 검색 중에 생성되는 선택적 필드는 생략해야 합니다.
devices:
# Sample of SNMP v2c device
ups_snmpv2c__10.10.0.201:
device_name: ups_snmpv2c
device_ip: 10.10.0.201
snmp_comm: $YOUR_COMMUNITY_STRING
oid: .1.3.6.1.4.1.318.1.3.27
mib_profile: apc_ups.yml
provider: kentik-ups
poll_time_sec:300
retries:1
timeout_ms:5000
user_tags:
owning_team: dc_ops
그만큼 match_attributes
관찰 가능성 요구 사항에 대한 값을 생성하지 않는 데이터 필터링을 지원하기 위해 global.match_attributes.{} 및/또는 devices.[].match_attributes.{} 속성 맵을 설정할 수 있습니다.
이는 데이터를 New Relic으로 전달하기 전에 ktranslate 수준에서 필터링을 제공하여 인터페이스와 같은 항목의 모니터링을 세부적으로 제어할 수 있게 해줍니다.
이 맵의 기본 동작은 OR 조건이지만 키 이름에 ! 접두사를 추가하여 이 조건을 재정의하고 AND 연산자를 강제 실행할 수 있습니다. 이는 일치하는 항목만 반환하고 모든 null 및 "" (빈) 결과를 생략하는 데에도 유용합니다.
if_AliasUplink 로 시작할 때 일치합니다. ORif_interface_nameGig 로 시작할 때 모든 null 및 "" 값을 유지합니다.
devices:
deviceName:
...
match_attributes:
if_Alias:"^Uplink.*"
if_interface_name:"^Gig.*"
if_AliasUplink 로 시작하는 경우 일치 ANDif_interface_nameGig 로 시작하는 경우 모든 null 및 "" 값을 삭제합니다.
devices:
deviceName:
...
match_attributes:
if_Alias:"^Uplink.*"
"!if_interface_name":"^Gig.*"
if_Alias 이 Uplink 로 시작하는 경우 일치하고 모든 null 및 "" 값을 삭제합니다.
devices:
deviceName:
...
match_attributes:
"!if_Alias":"^Uplink.*"
Golang의 정규식 패키지는 기본적으로 부정 예측 패턴(q(?!u))을 지원하지 않습니다. 이 문제를 해결하려면 DOES_NOT_MATCH 토큰을 속성 맵에 추가하여 일치 패턴의 반대 결과를 효과적으로 제공할 수 있습니다.
예를 들어 Uplink 문자열을 포함 하지 않는 모든 인터페이스를 일치시키려면 다음과 같이 하십시오. 다음과 같은 설정을 사용할 수 있습니다.
devices:
deviceName:
...
match_attributes:
"!if_Alias":"^Uplink.*"
DOES_NOT_MATCH:true
response_time 과 ping_only
성능 통계에 액세스할 수 없거나 사용할 수 없는 기기의 모니터링을 지원하거나 기본 RTT(왕복 시간) 모니터링이 필요한 간단한 경우에 global.response_time 또는 devices.[].ping_only 속성을 true 로 설정할 수 있습니다.
이 기능은 go-ping 패키지를 사용하여 ICMP(기본값) 또는 권한이 없는 UDP 패킷을 장치에 전송하여 평균, 최소, 최대 및 표준 편차 왕복 시간(RTT)을 수집합니다. 이 패키지는 ktranslate 에서 장치 IP 주소로 초당 1개의 패킷을 보내는 경우의 엔드포인트 패킷 손실 비율도 보여주는데, 이는 devices.[].ping_interval_sec 속성을 설정하여 재정의할 수 있습니다. docker 런타임 중에 KENTIK_PING_PRIV=false 환경 변수를 설정하면 기본적으로 권한이 있는 ICMP 패킷을 UDP로 사용하도록 전환할 수 있습니다.
global.response_time 속성을 true 로 설정하면 기존 SNMP 폴링 위에 RTT 모니터링이 추가됩니다. RTT용 UDP|ICMP 패킷만 있고 SNMP 폴링이 없는 장치를 모니터링하려면 devices.[].ping_only: true 를 사용합니다.
New Relic에서 다음 지표를 조사하여 이 폴링의 결과를 볼 수 있습니다.
FROM Metric SELECT
average(kentik.ping.AvgRttMs)AS'Average',
max(kentik.ping.MaxRttMs)AS'Max',
min(kentik.ping.MinRttMs)AS'Min',
average(kentik.ping.StdDevRtt)AS'StdDev',
latest(kentik.ping.PacketLossPct)AS'Packet Loss %'
FACET device_name
팁
흐름 기기에서 RTT 측정항목을 수집하려는 경우 flow_only 속성 대신 ping_only 속성을 사용할 수 있습니다. ping_only 및 flow_only 이 모두 true 이면 기기는 flow_only 기기로 처리됩니다.
그만큼 flow_only
흐름 데이터만 수집하려는 기기의 모니터링을 지원하려면 devices.<deviceName>.flow_only 속성을 true 로 설정할 수 있습니다.
그러면 KFlow 이벤트 네임스페이스에 텔넷리만 포함하는 Flow Device 부분이 생성됩니다. 또는 설정 파일에 있는 장치에서 SNMP 장치로 흐름 텔레메트리를 수집하면 Router 또는 Firewall 와 같은 기존 구성요소에 KFlow 데이터 장식이 추가됩니다.
New Relic에서 다음 이벤트를 조사하여 이 폴링의 결과를 볼 수 있습니다.
FROM KFlow SELECT*
WHERE instrumentation.name ='netflow-events'
플로우 데이터 애플리케이션 매핑
기본적으로 흐름 원격 분석은 특정 흐름 대화에서 사용 중인 계층 4 포트의 평가를 기반으로 알려진 애플리케이션에 매핑됩니다. 필요한 경우 Docker 런타임 중에 -application_map 플래그에 YAML 파일을 제공하여 기본 매핑을 재정의할 수 있습니다. 이렇게 하면 식별한 포트를 기반으로 애플리케이션 이름을 지정할 수 있습니다.
구문 예:
applications:
-ports:[9092,9093]
name: kafka
-ports:[80,8080]
name: http
-ports:[443,8443]
name: https
플로우 데이터 입력 필터링
기본적으로 흐름 데이터 컨테이너는 수신하는 모든 흐름 패킷을 수집하고 처리합니다. 필요한 경우 -nf.source 플래그에 포함 필터를 추가하여 제공한 필터와 일치하지 않는 모든 트래픽을 무시할 수 있습니다.
통사론: --filters $TYPE,$FIELD,$FUNCTION,$MATCH
인수 이름
필수의
설명
$TYPE
✓
적용할 필터의 유형입니다. 가능한 값은 string , int 및 addr 입니다.
$필드
✓
일치 패턴을 평가할 필드의 이름입니다.
$FUNCTION
✓
평가 중에 사용할 함수 유형입니다. 가능한 값은 Equal: == , NotEqual: != , LessThan: < , GreaterThan: > , Contains: %
기본적으로 ktranslate docker mib_profile_dir 경로의 SNMP 프로필에 대한 변경 사항을 통합하려면 컨테이너를 수동으로 삭제하고 다시 빌드해야 합니다. docker 이미지가 공개 snmp-profiles 위치 에서 사용 가능한 최신 프로필을 가져오므로 이는 대부분의 배포에서 정상적인 동작입니다. 사용자 정의 프로필을 제공하는 상황에서는 watch_profile_changes 설정을 사용하여 컨테이너가 컨테이너의 기본 구성 및 SNMP 프로필을 자동으로 새로 고치도록 할 수 있습니다.
중요
이는 감시자 라이브러리 의 제한으로 인해 재귀적이지 않습니다. 따라서 하위 디렉터리에서 프로필이 변경되면 변경 사항을 트리거하기 위해 최상위 파일도 편집해야 합니다.
다음 디렉토리 구조를 가정하면:
.
└── /snmp-profiles/
└── profiles/
└── kentik-snmp/
├── 3com
├── _general
├── a10networks
└── ...
이 새로 고침 주기를 트리거하려면 디렉터리 루트에 새 파일을 배치하고 수동으로 변경해야 합니다. 이를 구현하는 쉬운 방법은 변경사항이 제출될 때 last_updated.txt 과 같은 파일에 타임스탬프를 작성하는 것입니다.