この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、Telegraf、InfluxDB(ECD)、およびGrafana(TIG)スタックを導入し、Catalyst 9800と相互接続する方法について説明します。
このドキュメントでは、複雑な統合によるCatalyst 9800のプログラマチックインターフェイス機能について説明します。このドキュメントの目的は、これらをニーズに基づいて完全にカスタマイズし、毎日の時間を節約する方法を示すことです。ここに示す導入はgRPCに依存し、Catalyst 9800からのワイヤレスデータをTelegraf、InfluxDB、Grafana(TIG)監視可能スタックで使用できるようにするテレメトリ設定を提示します。
次の項目に関する知識があることが推奨されます。
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
この例では、9800-CLでgRPCダイヤルアウトを使用してテレメトリを設定し、Telegrafアプリケーションの情報をInfluxDBデータベースに格納します。ここでは、2つのデバイスが使用されています。
この設定ガイドでは、これらのデバイスの導入全体を扱うのではなく、9800情報の送信、受信、および表示を適切に行うために各アプリケーションで必要な設定を扱います。
設定部分に入る前に、Influxインスタンスが正しく動作していることを確認します。これは、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にメトリックを保存するデータベースと、このデータベースに接続するユーザが必要です。これらは、次のコマンドを使用して、InfluxDB 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にメトリックを適切に保存するように設定できます。
この例では、2つのTelegraf設定だけが動作します。これらの設定は、/etc/telegraf/telegraf.conf
設定ファイルから(Unixで実行されるアプリケーションの場合は通常どおり)行うことができます。
最初のコマンドは、Telegrafが使用する出力を宣言します。前述したように、ここではInfluxDBが使用されており、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"
これは、受信したデータをポート8086上の同じホスト上で実行されているInfluxDBに保存し、「TELEGRAF」と呼ばれるデータベース(およびアクセスするための資格情報telegraf/YOUR_PASSWORD)を使用するようにTelegrafプロセスに指示します。
最初に宣言されたものが出力フォーマットであった場合、2番目のフォーマットは当然、入力フォーマットです。テレメトリを使用するシスコデバイスから受信したデータであることをTelegrafに通知するには、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"
これにより、ホスト(デフォルトポート57000)で実行されているTelegrafアプリケーションは、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
前述のとおり、他の多くのシスコデバイスと同様に、メトリックはYANGモデルに従って編成されます。IOS XEの各バージョン(9800で使用)に対応する特定のCisco YANGモデルについては、ここを参照してください。この例で使用されているIOS XE Dublin 17.12.03に対応するモデルを参照してください。
この例では、使用されている9800-CLインスタンスからCPU使用率メトリックを収集することに焦点を当てます。Cisco IOS XEダブリン17.12.03のYANGモデルを調べることで、どのモジュールにコントローラのCPU使用率、特に最後の5秒間が含まれているかを確認できます。これらは、CPU使用率グループ(リーフ5秒)下のCisco-IOS-XE-process-cpu-operモジュールの一部です。
gRPCダイヤルアウトフレームワークは、NETCONFを使用して同じように動作します。したがって、この機能を9800で有効にする必要があります。有効にするには、次のコマンドを実行します。
WLC(config)#netconf ssh
WLC(config)#netconf-yang
YANGモデルから決定されたメトリックのXPaths(別名XMLパス言語)が終了したら、9800 CLIから簡単にテレメトリサブスクリプションを設定し、これらのサブスクリプションをステップ2で設定したTelegrafインスタンスにストリーミングできます。これを行うには、次のコマンドを実行します。
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のテレメトリサブスクリプションが定義されます。サブスクリプションIDは、別のサブスクリプションと重複しない限り、<0 ~ 2147483647>の任意の数字にすることができます。このサブスクリプションは、次の順序で設定します。
/process-cpu-ios-xe-oper:cpu-usage/cpu-utilization/five-seconds
)です。コントローラがTelegrafへのデータ送信を開始し、データがTELEGRAF InfluxDBデータベースに保存されました。次に、これらのメトリックを参照するようにGrafanaを設定します。
Grafana GUIからHome > Connections > Connect dataの順に移動し、検索バーを使用してInfluxDBデータソースを見つけます。
このデータソースタイプを選択し、「InfluxDBデータソースの作成」ボタンを使用してGrafanaとステップ1で作成したTELEGRAPHデータベースを接続します。
画面に表示されるフォームに入力します。特に、次の情報を入力します。
Grafanaのビジュアライゼーションは、ダッシュボードに整理されています。Catalyst 9800のメトリックの視覚化を含むダッシュボードを作成するには、ホーム>ダッシュボードに移動し、「新規ダッシュボード」ボタンを使用します
作成した新しいダッシュボードが開きます。歯車アイコンをクリックしてダッシュボードパラメータにアクセスし、その名前を変更します。この例では、「Catalyst 9800テレメトリ」が使用されています。これを実行したら、「ダッシュボードの保存」ボタンを使用してダッシュボードを保存します。
データが適切に送信、受信、保存され、Grafanaがこのストレージの場所にアクセスできるようになったので、次にビジュアライゼーションを作成します。
任意のGrafanaダッシュボードから「追加」ボタンを使用して、表示されるメニューから「可視化」を選択し、メトリクスの可視化を作成します。
作成したビジュアル化の編集パネルが開きます。
このパネルから、
前の図の「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
プロセスのステータスを確認した後、もう1つの重要な確認は、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)でTelnetを使用して、このIPアドレスが開いていて、コントローラ自体から到達可能であることを確認できます。トラフィックがブロックされていない場合、ポートは出力でオープンとして表示される必要があります。
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
[...]
他のデータベースシステムと同様に、InfluxDBにはCLIが付属しており、メトリクスがTelegrafによって正しく受信され、定義されたデータベースに保存されているかどうかを確認するために使用できます。InfluxDBは、ポイントと呼ばれるメトリックを、それ自体がシリーズとして編成された測定値に編成します。ここで説明する基本的なコマンドの一部は、InfluxDB側のデータスキームを検証し、データがこのアプリケーションに到達することを確認するために使用できます。
最初に、シリーズ、測定値、およびそれらの構造(キー)が正しく生成されていることを確認できます。これらは、使用されるRPCの構造に基づいて、TelegrafとInfluxDBによって自動的に生成されます。
注:この構造は、TelegrafおよびInfluxDBの設定から完全にカスタマイズできます。ただし、これはこの設定ガイドの対象範囲外です。
$ 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メトリックをホスト上の出力ファイルにリダイレクトします。これは、デバイスの相互接続のトラブルシューティングに非常に便利です。これを行うには、/etc/telegraf/telegraf.conf
から設定可能なTelegrafの「file」出力プラグインを使用します。
# 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 |
初版 |