본 제품에 대한 문서 세트는 편견 없는 언어를 사용하기 위해 노력합니다. 본 설명서 세트의 목적상, 편견 없는 언어는 나이, 장애, 성별, 인종 정체성, 민족 정체성, 성적 지향성, 사회 경제적 지위 및 교차성에 기초한 차별을 의미하지 않는 언어로 정의됩니다. 제품 소프트웨어의 사용자 인터페이스에서 하드코딩된 언어, RFP 설명서에 기초한 언어 또는 참조된 서드파티 제품에서 사용하는 언어로 인해 설명서에 예외가 있을 수 있습니다. 시스코에서 어떤 방식으로 포용적인 언어를 사용하고 있는지 자세히 알아보세요.
Cisco는 전 세계 사용자에게 다양한 언어로 지원 콘텐츠를 제공하기 위해 기계 번역 기술과 수작업 번역을 병행하여 이 문서를 번역했습니다. 아무리 품질이 높은 기계 번역이라도 전문 번역가의 번역 결과물만큼 정확하지는 않습니다. Cisco Systems, Inc.는 이 같은 번역에 대해 어떠한 책임도 지지 않으며 항상 원본 영문 문서(링크 제공됨)를 참조할 것을 권장합니다.
이 문서에서는 Telegraf, IntrusionDB 및 TIG(Grafana) 스택을 구축하고 Catalyst 9800과 상호 연결하는 방법에 대해 설명합니다.
이 문서에서는 복잡한 통합을 통해 Catalyst 9800의 프로그래밍 인터페이스 용량을 보여 줍니다. 이 문서에서는 이러한 기능을 필요에 따라 완벽하게 사용자 정의할 수 있고 매일 시간을 절약할 수 있는 방법을 보여 줍니다. 여기에 소개된 구축은 gRPC를 기반으로 하며 텔레메트리 컨피그레이션을 통해 Catalyst 9800의 무선 데이터를 모든 Telegraf, IntrusionDB, TIG(Grafana) 관측 가능 스택에서 사용할 수 있도록 합니다.
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
이 예에서는 gRPC 다이얼아웃을 사용하여 9800-CL에서 텔레메트리를 구성하여 텔레그래프 애플리케이션에 대한 정보를 IntrusionDB 데이터베이스에 푸시합니다. 여기에서는 두 개의 디바이스가 사용되었고
이 컨피그레이션 가이드는 이러한 디바이스의 전체 구축에 초점을 맞추는 것이 아니라 9800 정보를 적절하게 보내고 받고 제공하기 위해 각 애플리케이션에 필요한 컨피그레이션에 중점을 둡니다.
컨피그레이션 부분으로 들어가기 전에 Intrusion 인스턴스가 제대로 실행되고 있는지 확인하십시오. 이 작업은 Linux 배포판을 사용하는 systemctl status
경우 명령을 사용하여 쉽게 수행할 수 있습니다.
admin@tig:~$ systemctl status influxd
● influxdb.service - InfluxDB is an open-source, distributed, time series database
Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2023-06-14 13:06:18 UTC; 2 weeks 5 days ago
Docs: https://docs.influxdata.com/influxdb/
Main PID: 733 (influxd)
Tasks: 15 (limit: 19180)
Memory: 4.2G
CPU: 1h 28min 47.366s
CGroup: /system.slice/influxdb.service
└─733 /usr/bin/influxd -config /etc/influxdb/influxdb.conf
예를 들어, Telegraf는 메트릭을 저장할 데이터베이스뿐만 아니라 이 메트릭에 연결할 사용자도 필요합니다. 이러한 파일은 IntrusionDB CLI에서 다음 명령을 사용하여 쉽게 생성할 수 있습니다.
admin@tig:~$ influx
Connected to http://localhost:8086 version 1.8.10
InfluxDB shell version: 1.8.10
> create database TELEGRAF
> create user telegraf with password 'YOUR_PASSWORD'
이제 데이터베이스가 생성되면 메트릭을 올바르게 저장하도록 Telegraf를 구성할 수 있습니다.
이 예에서는 두 가지 Telegraf 컨피그레이션만 가능합니다. 이러한 파일은 구성 파일에서 만들 수 있습니다(Unix에서 실행 중인 응용 프로그램의 경우 일반적으로 /etc/telegraf/telegraf.conf
사용).
첫 번째 명령은 Telegraf에서 사용되는 출력을 선언합니다. 앞에서 설명한 대로 InfluenceDB는 여기에서 사용되며 다음과 같이 파일의 출력 섹션에서 telegraf.conf
구성됩니다.
###############################################################################
# OUTPUT PLUGINS #
###############################################################################
# Output Plugin InfluxDB
[[outputs.influxdb]]
## The full HTTP or UDP URL for your InfluxDB instance.
# ##
# ## Multiple URLs can be specified for a single cluster, only ONE of the
# ## urls will be written to each interval.
urls = [ "http://127.0.0.1:8086" ]
# ## The target database for metrics; will be created as needed.
# ## For UDP url endpoint database needs to be configured on server side.
database = "TELEGRAF"
# ## HTTP Basic Auth
username = "telegraf"
password = "YOUR_PASSWORD"
이렇게 하면 Telegraf 프로세스가 수신 데이터를 포트 8086의 동일한 호스트에서 실행 중인 IntrusionDB에 저장하고 "TELEGRAF"라는 데이터베이스(및 이 데이터베이스에 액세스하기 위한 자격 증명 telegraf/YOUR_PASSWORD)를 사용하도록 지시합니다.
선언된 첫 번째 것이 출력 형식이었다면 두 번째 것은 물론 입력 형식입니다. Telegraf에서 수신하는 데이터가 텔레메트리를 사용하는 Cisco 디바이스에서 온다는 것을 알려주기 위해 cisco_telemetry_mdt" 입력 모듈을 사용할 수 있습니다. 이 설정을 구성하려면 파일에 다음 행만 추가하면 /etc/telegraf/telegraf.conf
됩니다.
###############################################################################
# INPUT PLUGINS #
###############################################################################
# # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms
[[inputs.cisco_telemetry_mdt]]
# ## Telemetry transport can be "tcp" or "grpc". TLS is only supported when
# ## using the grpc transport.
transport = "grpc"
#
# ## Address and port to host telemetry listener
service_address = ":57000"
# ## Define aliases to map telemetry encoding paths to simple measurement names
[inputs.cisco_telemetry_mdt.aliases]
ifstats = "ietf-interfaces:interfaces-state/interface/statistics"
이렇게 하면 호스트에서 실행 중인 Telegraf 애플리케이션(기본 포트 57000)이 WLC에서 수신되는 데이터를 디코딩할 수 있습니다.
컨피그레이션이 저장되면 Telegraf를 다시 시작하여 서비스에 적용해야 합니다. 또한 서비스가 올바르게 다시 시작되었는지 확인하십시오.
admin@tig:~$ sudo systemctl restart telegraf
admin@tig:~$ systemctl status telegraf.service
● telegraf.service - Telegraf
Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-07-03 17:12:49 UTC; 2min 18s ago
Docs: https://github.com/influxdata/telegraf
Main PID: 110182 (telegraf)
Tasks: 10 (limit: 19180)
Memory: 47.6M
CPU: 614ms
CGroup: /system.slice/telegraf.service
└─110182 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
앞서 언급했듯이 다른 많은 Cisco 디바이스에서와 마찬가지로 메트릭은 YANG 모델에 따라 구성됩니다. IOS XE(9800에서 사용)의 각 버전에 대한 특정 Cisco YANG 모델은 여기에서 확인할 수 있습니다. 특히 이 예에서 사용된 IOS XE Dublin 17.12.03에 대한 모델은 여기에 나와 있습니다.
이 예에서는 사용된 9800-CL 인스턴스에서 CPU 사용률 메트릭을 수집하는 데 중점을 둡니다. Cisco IOS XE Dublin 17.12.03용 YANG 모델을 검사하여 어떤 모듈에 컨트롤러의 CPU 사용률이 포함되어 있는지, 특히 최근 5초 동안 확인할 수 있습니다. 이는 Cisco-IOS-XE-process-cpu-oper 모듈의 일부로서 cpu-utilization 그룹화(리프 5초) 아래에 있습니다.
gRPC 다이얼아웃 프레임워크는 NETCONF를 사용하여 동일하게 작동합니다. 따라서 9800에서 이 기능을 활성화해야 하며, 이 작업은 다음 명령을 실행하여 수행됩니다.
WLC(config)#netconf ssh
WLC(config)#netconf-yang
YANG 모델에서 결정된 메트릭의 XPaths(즉, XML Paths Language)가 되면 9800 CLI에서 텔레메트리 서브스크립션을 쉽게 구성하여 2단계에서 구성한 텔레그라프 인스턴스로 스트리밍을 시작할 수 있습니다. 이 작업은 다음 명령을 실행하여 수행합니다.
WLC(config)#telemetry ietf subscription 101
WLC(config-mdt-subs)#encoding encode-kvgpb
WLC(config-mdt-subs)#filter xpath /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization/five-seconds
WLC(config-mdt-subs)#source-address 10.48.39.130
WLC(config-mdt-subs)#stream yang-push
WLC(config-mdt-subs)#update-policy periodic 100
WLC(config-mdt-subs)#receiver ip address 10.48.39.98 57000 protocol grpc-tcp
이 코드 블록에서, 먼저 식별자 101을 갖는 텔레메트리 서브스크립션이 정의된다. 구독 식별자는 다른 구독과 겹치지 않는 한 <0-2147483647> 사이의 숫자일 수 있습니다. 이 서브스크립션은 다음 순서로 구성됩니다.
/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization/five-seconds
서브스크립션에서 보낸 메트릭에 대한 필터로, XPath는 관심 있는 메트릭을 정의합니다(알아야 함).이제 컨트롤러가 Telegraf에 데이터를 전송하기 시작하고 이러한 데이터가 TELEGRAF IntrusionDB 데이터베이스에 저장되므로 Grafana에서 이러한 메트릭을 찾아보도록 구성해야 합니다.
Grafana GUI에서 Home(홈) > Connections(연결) > Connect data(데이터 연결)로 이동하고 검색 막대를 사용하여 IntrusionDB 데이터 소스를 찾습니다.
이 데이터 소스 유형을 선택하고 "IntrusionDB 데이터 소스 생성" 단추를 사용하여 1단계에서 생성한 TELEGRAPH 데이터베이스와 Grafana를 연결합니다.
화면에 나타나는 양식을 작성하며, 특히 다음을 제공합니다.
Grafana 시각화는 대시보드로 구성됩니다. Catalyst 9800 메트릭스 시각화가 포함된 대시보드를 생성하려면 Home(홈) > Dashboards(대시보드)로 이동하고 "New dashboard(새 대시보드)" 버튼을 사용합니다
그러면 생성된 새 대시보드가 열립니다. 기어 아이콘을 클릭하여 대시보드 매개변수에 액세스하고 이름을 변경합니다. 이 예에서는 "Catalyst 9800 Telemetry"가 사용됩니다. 이 작업을 수행한 후에는 "Save dashboard(대시보드 저장)" 버튼을 사용하여 대시보드를 저장합니다.
이제 데이터가 제대로 전송, 수신 및 저장되었고 Grafana가 이 저장 위치에 액세스할 수 있게 되었으므로 데이터를 시각화할 차례입니다.
Grafana 대시보드에서 "Add(추가)" 버튼을 사용하고 표시되는 메뉴에서 "Visualization(시각화)"을 선택하여 메트릭의 시각화를 생성합니다.
이렇게 하면 생성된 시각 형상의 [편집] 패널이 열립니다.
이 패널에서
이전 그림의 "Save/Apply(저장/적용)" 버튼을 누르면 시간 경과에 따른 Catalyst 9800 컨트롤러의 CPU 사용량을 보여주는 시각화가 대시보드에 추가됩니다. 대시보드의 변경 사항은 플로피 디스크 아이콘 버튼을 사용하여 저장할 수 있습니다.
Building configuration...
Current configuration : 112215 bytes
!
! Last configuration change at 14:28:36 UTC Thu May 23 2024 by admin
! NVRAM config last updated at 14:28:23 UTC Thu May 23 2024 by admin
!
version 17.12
[...]
aaa new-model
!
!
aaa authentication login default local
aaa authentication login local-auth local
aaa authentication dot1x default group radius
aaa authorization exec default local
aaa authorization network default group radius
[...]
vlan internal allocation policy ascending
!
vlan 39
!
vlan 1413
name VLAN_1413
!
!
interface GigabitEthernet1
switchport access vlan 1413
negotiation auto
no mop enabled
no mop sysid
!
interface GigabitEthernet2
switchport trunk allowed vlan 39,1413
switchport mode trunk
negotiation auto
no mop enabled
no mop sysid
!
interface Vlan1
no ip address
no ip proxy-arp
no mop enabled
no mop sysid
!
interface Vlan39
ip address 10.48.39.130 255.255.255.0
no ip proxy-arp
no mop enabled
no mop sysid
[...]
telemetry ietf subscription 101
encoding encode-kvgpb
filter xpath /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization
source-address 10.48.39.130
stream yang-push
update-policy periodic 1000
receiver ip address 10.48.39.98 57000 protocol grpc-tcp
[...]
netconf-yang
# Configuration for telegraf agent
[agent]
metric_buffer_limit = 10000
collection_jitter = "0s"
debug = true
quiet = false
flush_jitter = "0s"
hostname = ""
omit_hostname = false
###############################################################################
# OUTPUT PLUGINS #
###############################################################################
# Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]
urls = ["http://127.0.0.1:8086"]
database = "TELEGRAF"
username = "telegraf"
password = "Wireless123#"
###############################################################################
# INPUT PLUGINS #
###############################################################################
###############################################################################
# SERVICE INPUT PLUGINS #
###############################################################################
# # Cisco model-driven telemetry (MDT) input plugin for IOS XR, IOS XE and NX-OS platforms
[[inputs.cisco_telemetry_mdt]]
transport = "grpc"
service_address = "10.48.39.98:57000"
[inputs.cisco_telemetry_mdt.aliases]
ifstats = "ietf-interfaces:interfaces-state/interface/statistics"
### Welcome to the InfluxDB configuration file.
reporting-enabled = false
[meta]
dir = "/var/lib/influxdb/meta"
[data]
dir = "/var/lib/influxdb/data"
wal-dir = "/var/lib/influxdb/wal"
[retention]
enabled = true
check-interval = "30m"
#################################### Server ####################################
[server]
http_addr = 10.48.39.98
domain = 10.48.39.98
WLC 측에서 가장 먼저 확인해야 할 것은 프로그래밍 인터페이스와 관련된 프로세스가 실행 중이라는 것입니다.
#show platform software yang-management process
confd : Running
nesd : Running
syncfd : Running
ncsshd : Running <-- NETCONF / gRPC Dial-Out
dmiauthd : Running <-- For all of them, Device Managment Interface needs to be up.
nginx : Running <-- RESTCONF
ndbmand : Running
pubd : Running
gnmib : Running <-- gNMI
NETCONF(gRPC 다이얼아웃에서 사용)의 경우 이 명령은 프로세스의 상태를 확인하는 데에도 도움이 됩니다.
WLC#show netconf-yang status
netconf-yang: enabled
netconf-yang candidate-datastore: disabled
netconf-yang side-effect-sync: enabled
netconf-yang ssh port: 830
netconf-yang turbocli: disabled
netconf-yang ssh hostkey algorithms: rsa-sha2-256,rsa-sha2-512,ssh-rsa
netconf-yang ssh encryption algorithms: aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,aes256-cbc
netconf-yang ssh MAC algorithms: hmac-sha2-256,hmac-sha2-512,hmac-sha1
netconf-yang ssh KEX algorithms: diffie-hellman-group14-sha1,diffie-hellman-group14-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group16-sha512
프로세스 상태를 확인했으면 또 다른 중요한 확인은 Catalyst 9800과 Telegraf 수신기 간의 텔레메트리 연결 상태입니다. "show telemetry connection all" 명령을 사용하여 볼 수 있습니다.
WLC#show telemetry connection all
Telemetry connections
Index Peer Address Port VRF Source Address State State Description
----- -------------------------- ----- --- -------------------------- ---------- --------------------
28851 10.48.39.98 57000 0 10.48.39.130 Active Connection up
WLC와 수신기 간에 텔레메트리 연결이 설정된 경우 명령을 사용하여 구성된 서브스크립션이 유효한지 확인할 수도 show telemetry ietf subscription all brief
있습니다.
WLC#show telemetry ietf subscription all brief
ID Type State State Description
101 Configured Valid Subscription validated
이 명령의 세부 버전에서는 서브스크립션에 show telemetry ietf subscription all detail
대한 자세한 정보를 제공하며 컨피그레이션에서 문제를 지적하는 데 도움이 될 수 있습니다.
WLC#show telemetry ietf subscription all detail
Telemetry subscription detail:
Subscription ID: 101
Type: Configured
State: Valid
Stream: yang-push
Filter:
Filter type: xpath
XPath: /process-cpu-ios-xe-oper:cpu-usage/cpu-utilization
Update policy:
Update Trigger: periodic
Period: 1000
Encoding: encode-kvgpb
Source VRF:
Source Address: 10.48.39.130
Notes: Subscription validated
Named Receivers:
Name Last State Change State Explanation
-------------------------------------------------------------------------------------------------------------------------------------------------------
grpc-tcp://10.48.39.98:57000 05/23/24 08:00:25 Connected
Catalyst 9800 컨트롤러는 각 텔레메트리 서브스크립션에 대해 구성된 수신기 포트로 gRPC 데이터를 전송합니다.
WLC#show run | include receiver ip address
receiver ip address 10.48.39.98 57000 protocol grpc-tcp
이 구성된 포트에서 WLC와 수신기 간의 네트워크 연결을 확인하기 위해 몇 가지 도구를 사용할 수 있습니다.
WLC에서 구성된 수신기 IP/포트(여기서는 10.48.39.98:57000)에서 텔넷을 사용하여 이 디바이스가 열려 있고 컨트롤러 자체에서 연결 가능한지 확인할 수 있습니다. 트래픽이 차단되고 있지 않으면 포트가 출력에 open으로 표시되어야 합니다.
WLC#telnet 10.48.39.98 57000
Trying 10.48.39.98, 57000 ... Open <-------
또는 모든 호스트에서 Nmap을 사용하여 수신기가 구성된 포트에서 올바르게 표시되도록 할 수 있습니다.
$ sudo nmap -sU -p 57000 10.48.39.98
Starting Nmap 7.95 ( https://nmap.org ) at 2024-05-17 13:12 CEST
Nmap scan report for air-1852e-i-1.cisco.com (10.48.39.98)
Host is up (0.020s latency).
PORT STATE SERVICE
57000/udp open|filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds
2024/05/23 14:40:36.566486156 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): **** Event Entry: Configured legacy receiver creation/modification of subscription 101 receiver 'grpc-tcp://10.48.39.98:57000'
2024/05/23 14:40:36.566598609 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): Use count for named receiver 'grpc-tcp://10.48.39.98:57000' set to 46.
2024/05/23 14:40:36.566600301 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='configuration created'} received for subscription 101 receiver 'grpc-tcp://10.48.39.98:57000'
[...]
2024/05/23 14:40:36.572402901 {pubd_R0-0}{2}: [pubd] [30214]: (info): Collated data collector filters for subscription 101.
2024/05/23 14:40:36.572405081 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating periodic sensor for subscription 101.
2024/05/23 14:40:36.572670046 {pubd_R0-0}{2}: [pubd] [30214]: (info): Creating data collector type 'ei_do periodic' for subscription 101 using filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'.
2024/05/23 14:40:36.572670761 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating crimson data collector for filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization' (1 subfilters) with cap 0x0001.
2024/05/23 14:40:36.572671763 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Need new data collector instance 0 for subfilter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'.
2024/05/23 14:40:36.572675434 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating CRIMSON periodic data collector for filter '/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization'.
2024/05/23 14:40:36.572688399 {pubd_R0-0}{2}: [pubd] [30214]: (debug): tree rooted at cpu-usage
2024/05/23 14:40:36.572715384 {pubd_R0-0}{2}: [pubd] [30214]: (debug): last container/list node 0
2024/05/23 14:40:36.572740734 {pubd_R0-0}{2}: [pubd] [30214]: (debug): 1 non leaf children to render from cpu-usage down
2024/05/23 14:40:36.573135594 {pubd_R0-0}{2}: [pubd] [30214]: (debug): URI:/cpu_usage;singleton_id=0 SINGLETON
2024/05/23 14:40:36.573147953 {pubd_R0-0}{2}: [pubd] [30214]: (debug): 0 non leaf children to render from cpu-utilization down
2024/05/23 14:40:36.573159482 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Timer created for subscription 101, sensor 0x62551136f0e8
2024/05/23 14:40:36.573166451 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='receiver connected'} received with peer (10.48.39.98:57000) for subscription 101 receiver 'grpc-tcp://10.48.39.98:57000'
2024/05/23 14:40:36.573197750 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Starting batch from periodic collector 'ei_do periodic'.
2024/05/23 14:40:36.573198408 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Building from the template
2024/05/23 14:40:36.575467870 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Created dbal batch:133, for crimson subscription
2024/05/23 14:40:36.575470867 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Done building from the template
2024/05/23 14:40:36.575481078 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Executing batch:133 for periodic subscription
2024/05/23 14:40:36.575539723 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription id=101 receiver name='grpc-tcp://10.48.39.98:57000', state='connecting'} handling 'receiver connected' event with result 'e_mdt_rc_ok'
2024/05/23 14:40:36.575558274 {pubd_R0-0}{2}: [mdt-ctrl] [30214]: (note): {subscription receiver event='receiver connected'} subscription 101 receiver 'grpc-tcp://10.48.39.98:57000' changed
2024/05/23 14:40:36.577274757 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (info): get__next_table reached the end of table for /services;serviceName=ewlc_oper/capwap_data@23
2024/05/23 14:40:36.577279206 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (debug): Cleanup table for /services;serviceName=ewlc_oper/capwap_data cursor=0x57672da538b0
2024/05/23 14:40:36.577314397 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (info): get__next_object cp=ewlc-oper-db exit return CONFD_OK
2024/05/23 14:40:36.577326609 {ndbmand_R0-0}{2}: [ndbmand] [30690]: (debug): yield ewlc-oper-db
2024/05/23 14:40:36.579099782 {iosrp_R0-0}{1}: [parser_cmd] [26295]: (note): id= A.B.C.D@vty0:user= cmd: 'receiver ip address 10.48.39.98 57000 protocol grpc-tcp' SUCCESS 2024/05/23 14:40:36.578 UTC
2024/05/23 14:40:36.580979429 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Batch response received for crimson sensor, batch:133
2024/05/23 14:40:36.580988867 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Green response: Result rc 0, Length: 360, num_records 1
2024/05/23 14:40:36.581175013 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Green Resp cursor len 63
2024/05/23 14:40:36.581176173 {pubd_R0-0}{2}: [pubd] [30214]: (debug): There is no more data left to be retrieved from batch 133.
2024/05/23 14:40:36.581504331 {iosrp_R0-0}{2}: [parser_cmd] [24367]: (note): id= 10.227.65.133@vty1:user=admin cmd: 'receiver ip address 10.48.39.98 57000 protocol grpc-tcp' SUCCESS 2024/05/23 14:40:36.553 UTC
[...]
2024/05/23 14:40:37.173223406 {pubd_R0-0}{2}: [pubd] [30214]: (info): Added queue (wq: tc_inst 60293411, 101) to be monitored (mqid: 470)
2024/05/23 14:40:37.173226005 {pubd_R0-0}{2}: [pubd] [30214]: (debug): New subscription (subscription 101) monitoring object stored at id 19
2024/05/23 14:40:37.173226315 {pubd_R0-0}{2}: [pubd] [30214]: (note): Added subscription for monitoring (subscription 101, msid 19)
2024/05/23 14:40:37.173230769 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Stats updated for Q (wq: tc_inst 60293411, 101), total_enqueue: 1
2024/05/23 14:40:37.173235969 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q
2024/05/23 14:40:37.173241290 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector update data for subscription 101, period 1 (first: true)
2024/05/23 14:40:37.173257944 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Encoding path is Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
2024/05/23 14:40:37.173289128 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating kvgpb encoder
2024/05/23 14:40:37.173307771 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Creating combined parser
2024/05/23 14:40:37.173310050 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Beginning MDT yang container walk for record 0
2024/05/23 14:40:37.173329761 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new container [data_node: name=Cisco-IOS-XE-process-cpu-oper:cpu-usage, type=container, parent=n/a, key=false]
2024/05/23 14:40:37.173334681 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Container 'Cisco-IOS-XE-process-cpu-oper:cpu-usage' started successfully
2024/05/23 14:40:37.173340313 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress
2024/05/23 14:40:37.173343079 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector continue data for subscription 101, period 1 (first: true)
2024/05/23 14:40:37.173345689 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q
2024/05/23 14:40:37.173350431 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new container [data_node: name=cpu-utilization, type=container, parent=Cisco-IOS-XE-process-cpu-oper:cpu-usage, key=false]
2024/05/23 14:40:37.173353194 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Deferred container cpu-utilization
2024/05/23 14:40:37.173355275 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Container 'cpu-utilization' started successfully
2024/05/23 14:40:37.173380121 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new leaf [name=five-seconds, value=3, parent=cpu-utilization, key=false]
2024/05/23 14:40:37.173390655 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Leaf 'five-seconds' added successfully
2024/05/23 14:40:37.173393529 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress
2024/05/23 14:40:37.173395693 {pubd_R0-0}{2}: [pubd] [30214]: (debug): GRPC telemetry connector continue data for subscription 101, period 1 (first: true)
2024/05/23 14:40:37.173397974 {pubd_R0-0}{2}: [pubd] [30214]: (debug): (grpc::events) Processing event Q
2024/05/23 14:40:37.173406311 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Dispatching new leaf [name=five-seconds-intr, value=0, parent=cpu-utilization, key=false]
2024/05/23 14:40:37.173408937 {pubd_R0-0}{2}: [pubd] [30214]: (debug): Leaf 'five-seconds-intr' added successfully
2024/05/23 14:40:37.173411575 {pubd_R0-0}{2}: [pubd] [30214]: (debug): add data in progress
[...]
다른 데이터베이스 시스템과 마찬가지로 IntrusionDB에는 Telegraf에서 올바르게 수신한 메트릭을 확인하고 정의된 데이터베이스에 저장하는 데 사용할 수 있는 CLI가 포함되어 있습니다. IntrusionDB는 점이라고 하는 메트릭을 시리즈로 구성된 측정 단위로 구성합니다. 여기에 나와 있는 몇 가지 기본 명령을 사용하여 IntrusionDB 측의 데이터 체계를 확인하고 데이터가 이 애플리케이션에 도착하는지 확인할 수 있습니다.
먼저 계열, 측정 및 그 구조(키)가 제대로 생성되었는지 확인할 수 있다. 이는 사용된 RPC의 구조를 기반으로 Telegraf 및 IntrusionDB에 의해 자동으로 생성됩니다.
참고: 물론 이 구조는 Telegraf 및 IntrusionDB 구성에서 완벽하게 사용자 정의할 수 있습니다. 그러나 이는 이 컨피그레이션 가이드의 범위를 벗어나는 것입니다.
$ influx
Connected to http://localhost:8086 version 1.6.7~rc0
InfluxDB shell version: 1.6.7~rc0
> USE TELEGRAF
Using database TELEGRAF
> SHOW SERIES
key
---
Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization,host=ubuntu-virtual-machine,path=Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization,source=WLC,subscription=101
> SHOW MEASUREMENTS
name: measurements
name
----
Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
> SHOW FIELD KEYS FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization"
name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
fieldKey fieldType
-------- ---------
cpu_usage_processes/cpu_usage_process/avg_run_time integer
cpu_usage_processes/cpu_usage_process/five_minutes float
cpu_usage_processes/cpu_usage_process/five_seconds float
cpu_usage_processes/cpu_usage_process/invocation_count integer
cpu_usage_processes/cpu_usage_process/name string
cpu_usage_processes/cpu_usage_process/one_minute float
cpu_usage_processes/cpu_usage_process/pid integer
cpu_usage_processes/cpu_usage_process/total_run_time integer
cpu_usage_processes/cpu_usage_process/tty integer
five_minutes integer
five_seconds integer
five_seconds_intr integer
one_minute integer
데이터 구조가 명확해지면(정수, 문자열, 부울, ...), 특정 필드에 따라 이러한 측정값에 저장되는 데이터 포인트의 수를 가져올 수 있습니다.
# Get the number of points from "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" for the field "five_seconds".
> SELECT COUNT(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization"
name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
time count
---- -----
0 1170
> SELECT COUNT(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization"
name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
time count
---- -----
0 1171
# Fix timestamp display
> precision rfc3339
# Get the last point stored in "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization" for the field "five_seconds".
> SELECT LAST(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization"
name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
time last
---- ----
2024-05-23T13:18:53.51Z 0
> SELECT LAST(five_seconds) FROM "Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization"
name: Cisco-IOS-XE-process-cpu-oper:cpu-usage/cpu-utilization
time last
---- ----
2024-05-23T13:19:03.589Z 2
특정 필드의 포인트 수와 마지막 발생의 타임스탬프가 증가하면 TIG 스택이 WLC에서 전송한 데이터를 올바르게 수신하여 저장하는 것이 좋습니다.
Telegraf 수신기가 실제로 컨트롤러에서 일부 메트릭을 가져오고 해당 형식을 확인하는지 확인하기 위해 Telegraf 메트릭을 호스트의 출력 파일로 리디렉션할 수 있습니다. 이는 장치 상호 연결 문제 해결에 있어 매우 편리할 수 있습니다. 이를 실현하려면 Telegraf에서 구성 가능한 "file" 출력 플러그인을 사용하면 됩니다/etc/telegraf/telegraf.conf
.
# Send telegraf metrics to file(s)
[[outputs.file]]
# ## Files to write to, "stdout" is a specially handled file.
files = ["stdout", "/tmp/metrics.out", "other/path/to/the/file"]
#
# ## Use batch serialization format instead of line based delimiting. The
# ## batch format allows for the production of non line based output formats and
# ## may more efficiently encode metric groups.
# # use_batch_format = false
#
# ## The file will be rotated after the time interval specified. When set
# ## to 0 no time based rotation is performed.
# # rotation_interval = "0d"
#
# ## The logfile will be rotated when it becomes larger than the specified
# ## size. When set to 0 no size based rotation is performed.
# # rotation_max_size = "0MB"
#
# ## Maximum number of rotated archives to keep, any older logs are deleted.
# ## If set to -1, no archives are removed.
# # rotation_max_archives = 5
#
# ## Data format to output.
# ## Each data format has its own unique set of configuration options, read
# ## more about them here:
# ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
data_format = "influx"
개정 | 게시 날짜 | 의견 |
---|---|---|
1.0 |
10-Jun-2024 |
최초 릴리스 |