• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

ネットワーク監視の高度な構成

ネットワークパフォーマンスの監視を構成するときに使用できるすべてのオプションを調べたい場合は、次のセクションを参照してください。

SNMPベースのYAMLサンプルファイル

SNMP とフロー データ デバイスをポーリングするためにktranslate Docker イメージで使用されるsnmp-base.yamlファイルで使用できるさまざまな構成オプションの例を次に示します。GitHub の KTranslate リポジトリで、コメントの多いサンプルを確認することもできます。

devices:
# Sample of SNMP v2c device
ups_snmpv2c__10.10.0.201:
device_name: ups_snmpv2c
device_ip: 10.10.0.201
snmp_comm: public
oid: .1.3.6.1.4.1.318.1.3.27
description: "APC Web/SNMP Management Card (MB:v4.1.0 PF:v6.2.1 PN:apc_hw05_aos_621.bin AF1:v6.2.1 AN1:apc_hw05_sumx_621.bin MN:AP9537SUM HR:05 SN: ABC123DEF456 MD:05/21/2016) (Embedded PowerNet SNMP Agent SW v2.2 compatible)"
last_checked: 2021-11-09T18:14:59.907821489Z
mib_profile: apc_ups.yml
provider: kentik-ups
poll_time_sec: 300
retries: 1
timeout_ms: 5000
user_tags:
owning_team: dc_ops
discovered_mibs:
- PowerNet-MIB_UPS
- TCP-MIB
- UDP-MIB
# Sample of SNMP v3 device
router_snmpv3__10.10.0.202:
device_name: router_snmpv3
device_ip: 10.10.0.202
snmp_v3:
user_name: userNamev3
authentication_protocol: MD5
authentication_passphrase: authPassPrivacy
privacy_protocol: AES256
privacy_passphrase: passPrivacy
oid: .1.3.6.1.4.1.9.1.544
description: "Cisco IOS Software, 3800 Software (C3845-ADVENTERPRISEK9-M), Version
15.1(3)T4, RELEASE SOFTWARE (fc1)\r\nTechnical Support: http://www.cisco.com/techsupport\r\nCopyright
(c) 1986-2012 by Cisco Systems, Inc.\r\nCompiled Thu 24-May-12 04:27 by prod_rel_team"
last_checked: 2021-11-09T18:14:59.907821489Z
mib_profile: cisco-asr.yml
provider: kentik-router
user_tags:
owning_team: core-networking
discovered_mibs:
- BGP4-MIB
- CISCO-MEMORY-POOL-MIB
- CISCO-PROCESS-MIB
- IF-MIB
- OSPF-MIB
engine_id: "80:00:01:01:0a:14:1e:28"
match_attributes:
if_interface_name: "^Ten.*|^Gig.*"
"!if_Alias": "[Uu]plink"
# Sample of SNMP v1 device
netbotz_snmpv1__10.10.0.203:
device_name: netbotz_snmpv1
device_ip: 10.10.0.201
snmp_comm: public
use_snmp_v1: true
oid: .1.3.6.1.4.1.5528.100.20.10.2013
description: "Linux netbotz930A7A 2.6.12 #307 Wed Dec 29 15:25:32 EST 2010 ppc"
last_checked: 2021-11-09T18:14:59.907821489Z
mib_profile: apc-netbotz.yml
provider: kentik-netbotz
user_tags:
owning_team: sys_ops
discovered_mibs:
- IF-MIB
- IP-MIB
- TCP-MIB
- UDP-MIB
no_use_bulkwalkall: true
# Sample of "flow only" device
flow_only__10.10.0.210:
device_name: flow_only
device_ip: 10.10.0.210
user_tags:
owning_team: net_eng
flow_only: true
# Sample of "ping only" device
ping_only__10.10.0.220:
device_name: ping_only
device_ip: 10.10.0.220
user_tags:
owning_team: load_balancing
ping_only: true
ping_interval_sec: 5
# Sample of Arista eAPI device
arista_eapi_10.10.0.230:
device_name: arista_eapi
device_ip: 10.10.0.230
snmp_comm: public
oid: .1.3.6.1.4.1.30065.1.3011.7020.3735.24.2878.2
description: "Arista Networks EOS version 4.22.9M running on an Arista
Networks DCS-7020SR-24C2"
last_checked: 2021-11-09T18:14:59.907821489Z
mib_profile: arista-switch.yml
provider: kentik-switch
discovered_mibs:
- ARISTA-BGP4V2-MIB
- ARISTA-QUEUE-MIB
- BGP4-MIB
- HOST-RESOURCES-MIB
- IF-MIB
ext:
ext_only: false
eapi_config:
username: usernameAPI
password: passwordAPI
transport: https
port: 443
# Sample of Meraki Dashboard API device
meraki_dashboard_api:
device_name: meraki_controller
device_ip: snmp.meraki.com
provider: meraki-cloud-controller
ext:
ext_only: true
meraki_config:
api_key: APIKEY123ABC
monitor_uplinks: true
monitor_devices: true
monitor_org_changes: true
organizations:
- "Top Org.*"
networks:
- "Production"
- "Guest"
trap:
listen: 0.0.0.0:1620
community: public
version: ""
transport: ""
v3_config: null
discovery:
cidrs:
- 10.0.0.0/24
- 10.0.0.202/32
ignore_list:
- 10.0.0.98
- 10.0.0.99
debug: false
ports:
- 161
- 1161
default_communities:
- public
- public123
- Publ!cABC
use_snmp_v1: false
default_v3: null
add_mibs: true
threads: 4
add_devices: true
replace_devices: true
no_dedup_engine_id: false
check_all_ips: false
global:
poll_time_sec: 60
drop_if_outside_poll: false
mib_profile_dir: /etc/ktranslate/profiles
mibs_db: /etc/ktranslate/mibs.db
mibs_enabled:
- ARISTA-BGP4V2-MIB
- ARISTA-QUEUE-MIB
- BGP4-MIB
- CISCO-MEMORY-POOL-MIB
- CISCO-PROCESS-MIB
- HOST-RESOURCES-MIB
- IF-MIB
- OSPF-MIB
- PowerNet-MIB_UPS
timeout_ms: 3000
retries: 0
global_v3: null
response_time: false
user_tags:
environment: production
match_attributes:
if_Description: ".*WAN.*"

オプションの外部設定ファイル

さまざまな構成と自動化のニーズをサポートするために、Dockerコンテナーにボリュームマウントする外部ファイルを使用して、標準構成ファイルの特定の要素を分離できます。

これらのファイルの構文は、二重引用符を含めて"@fileName.extension"です。

ディスカバリーCIDR

例:

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"
- "@dc-ops.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: public
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

SNMPv3-AWSシークレット

ktranslateには、SNMPv3設定で使用するためにAWSSecretsManagerからキーを取得するためのサポートが組み込まれています。

この機能を使用するには、次の3つの環境変数を設定し、実行時にそれらをDockerに提供する必要があります。

名前

説明

AWS_ACCESS_KEY_ID

ユーザーを認証するためのクレデンシャルの一部として使用されるAWSアクセスキーを指定します。

AWS_SECRET_ACCESS_KEY

ユーザーを認証するための認証情報の一部として使用されるAWSシークレットキーを指定します。

AWS_REGION

このプロファイルを使用してリクエストされたコマンドのリクエストを送信するAWSリージョンを指定します。

Dockerランタイムの例:

bash
$
docker run -d --name ktranslate-snmp --restart unless-stopped --net=host \
>
-v `pwd`/snmp-base.yaml:/snmp-base.yaml \
>
-e NEW_RELIC_API_KEY=$YOUR_NR_LICENSE_KEY \
>
-e AWS_ACCESS_KEY_ID=$YOUR_AWS_ACCESS_KEY_ID \
>
-e AWS_SECRET_ACCESS_KEY=$YOUR_AWS_SECRET_ACCESS_KEY \
>
-e AWS_REGION=$YOUR_AWS_REGION \
>
kentik/ktranslate:v2 \
>
-snmp /snmp-base.yaml \
>
-nr_account_id=$YOUR_NR_ACCOUNT_ID \
>
-log_level=info \
>
-metrics=jchf \
>
-tee_logs=true \
>
nr1.snmp

関連する構成ファイル( snmp-base.yaml );次のようにSNMPv3構成スニペットを更新し、シークレット名の前にaws.sm.を付けます。

default_v3:
user_name: aws.sm.SECRET_NAME_1
authentication_protocol: MD5
authentication_passphrase: aws.sm.SECRET_NAME_2
privacy_protocol: AES256
privacy_passphrase: aws.sm.SECRET_NAME_3

ヒント

値ごとに専用のシークレットを作成する必要があります。上記の例では、3つの異なる秘密の名前が使用されていることに注意してください。

複数のSNMPv3プロファイルを使用した検出の実行

複数のSNMPv3プロファイルでの検出ジョブの実行をサポートするために、 discovery.default_v3キーをSNMPv3構成の配列を保持するdiscovery.other_v3sキーに置き換えることができます。

other_v3s:
- user_name: test1
authentication_protocol: MD5
authentication_passphrase: authPass1
privacy_protocol: AES256
privacy_passphrase: privacyPass1
context_engine_id: ""
context_name: ""
- user_name: test2
authentication_protocol: SHA
authentication_passphrase: authPass2
privacy_protocol: DES
privacy_passphrase: privacyPass2
context_engine_id: ""
context_name: ""

match_attributes属性

可観測性のニーズに見合う価値を生み出さないデータのフィルタリングをサポートするために、 global.match_attributes.{}またはdevices.<deviceName>.match_attributes.{}属性マップを設定できます。

これにより、New Relicにデータを送信する前に、 ktranslateレベルでフィルタリングが提供され、インターフェースなどの監視をきめ細かく制御できるようになります。

このマップのデフォルトの動作はOR条件ですが、これをオーバーライドして、キー名の前に!を付けることでAND演算子を強制することができます。これは、一致したアイテムのみを返し、すべてのnullおよび"" (空の)結果を省略する場合にも役立ちます。

flow_only属性

パフォーマンス統計にアクセスできない、利用できない、または必要とされないデバイスの監視をサポートするために、 devices.<deviceName>.flow_only属性をtrueに設定できます。

これにより、 KFlowイベント名前空間にのみテレメトリを持つフローデバイスエンティティが生成されます。または、構成ファイルにSNMPデバイスとして含まれているデバイスからフローテレメトリを収集すると、ルーターファイアウォールなどの既存のエンティティにKFlowデータの装飾が追加されます。

New Relicでは、次のイベントを調査することで、このポーリングの結果を確認できます。

FROM KFlow SELECT count(*) FACET device_name WHERE instrumentation.name = 'netflow-events' TIMESERIES

response_time属性とping_only属性

パフォーマンス統計にアクセスできない、または利用できないデバイスの監視をサポートするため、または基本的なラウンドトリップ時間(RTT)の監視が必要な単純な場合に、 global.response_timeまたはdevices.<deviceName>.ping_only属性をtrueに設定できます。

この機能は、平均、最小、最大、および stddev ラウンドトリップ時間 (RTT) を収集するために、 go-pingパッケージを使用して ICMP または非特権 UDP パケットをデバイスに送信します。このパッケージは、 ktranslateからデバイスの IP アドレスに 1 秒あたり 1 パケットを送信することに基づいて、エンドポイントのパケット損失率も示します。これは、 devices.<deviceName>.ping_interval_sec属性を設定することでオーバーライドできます。Docker ランタイム中にKENTIK_PING_PRIV=false環境変数を設定することにより、特権 ICMP パケットまたは UDP のデフォルトの使用から切り替えることができます。

global.response_time属性をtrueに設定すると、既存のSNMPポーリングに加えてRTT監視が追加されます。RTTのUDP|ICMPパケットのみを使用し、SNMPポーリングを使用しないデバイスを監視するには、 devices.<deviceName>.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_onlyflow_onlyの両方がtrueの場合、デバイスはflow_onlyデバイスとして扱われます。

フローデータアプリケーションマッピング

デフォルトでは、フローテレメトリは、特定のフロー会話で使用されているレイヤー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

✓✓

適用するフィルターのタイプ。可能な値は、 stringint 、およびaddrです。

$ FIELD

✓✓

一致パターンを評価するフィールドの名前。

$ FUNCTION

✓✓

評価中に使用する関数のタイプ。可能な値はEqual: ==NotEqual: !=LessThan: <GreaterThan: >Contains: %

$ MATCH

✓✓

一致パターンとして使用される値。

フィルタの例

  • 10.0.0.0/24 CIDR範囲の送信元アドレスからのみフローデータを収集します
-nf.source sflow --filters addr,src_addr,%,10.10.0.0/24
  • 宛先ポートがと等しくないフローデータのみを収集します 8531
-nf.source netflow5 --filters int,l4_dst_port,!=,8531

継承されたAND演算子を使用して複数のフィルターを追加することもできます

  • 10.0.0.0/24 CIDR範囲内で、宛先ポートがと等しくない送信元アドレスからのみフローデータを収集します 8531
--filters addr,src_addr,%,10.0.0.0/24 --filters int,l4_dst_port,!=,8531
Copyright © 2022 New Relic Inc.

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