Cisco Meraki モニタリング
最終更新日: 17 年 2023 月 XNUMX 日LogicMonitor Cisco Meraki スイートを使用して、ハイブリッド API/SNMP データ収集アプローチを使用して、ネットワークごとのレベルで Meraki デバイスを監視します。 組織ごとのレベルで、API の使用状況とデバイス数を監視できます。
Requirements
- インポートする
LogicMonitor_Collector_Snippets
DataSource を収集し、それを監視対象のコレクター リソースに適用して、コレクターがこの監視スイートのコードをサポートしていることを確認するか、EA コレクター 32.100 以降に更新します。 - Meraki ダッシュボード API へのアクセスを有効にします。
- Meraki環境で、次の場所に移動します 組織 > 設定 > ダッシュボードAPIアクセス.
- 次の項目を選択します。: CiscoMerakiダッシュボードAPIへのアクセスを有効にする.
- から API キーを生成します。 私のプロフィール ページ。 API キーは、LogicMonitor 内のプロパティに割り当てられます。 生成されたら、API キーを安全な場所にコピーします。 詳細については、次を参照してください。 Cisco Meraki ダッシュボード API.
- Meraki クラウド コントローラで SNMP v2c または v3 を有効にします。 詳細については、次を参照してください。 SNMP の概要と構成.
Meraki デバイス グループの作成
[LogicMonitor リソース] ページから、次のプロパティを使用して Meraki デバイス グループを作成します。 詳細については、次を参照してください。 デバイスグループの追加.
プロパティ | 商品説明 |
meraki.api.key | Meraki APIキー(前のセクションで説明したように、キーを生成し、APIを有効にする必要があります) |
snmp.port | 16100 |
snmp.バージョン | LogicMonitorはデバイス自体ではなく、クラウドコントローラーにクエリを実行するため、SNMPを利用する他の監視操作の場合のように、SNMPバージョンをこのプロパティに自動的に割り当てることはできません。 対応するSNMPバージョン(「v2c」または「v3」のいずれか)をこのプロパティに手動で割り当てるようにしてください。 |
snmp.community(v2cのみ) snmp.security(v3のみ) | これらの値はMerakiによって生成され、「o /」で始まります。 |
その他のSNMPクレデンシャル | 残りのSNMPクレデンシャルを確立するために必要なプロパティは、使用されているSNMPバージョンによって異なります。 詳細については、を参照してください。 認証資格情報の定義. |
モニタリングへのリソースの追加
Advanced NetScan を使用して、関連するすべてのデバイスを監視に自動的に追加します (また、いくつかの必要なデバイス プロパティを自動的に割り当てます)。 または、手動でデバイスを監視対象に追加できます。
NetScan を使用したリソースの追加
Advanced NetScan を作成するには、 を参照してください。 高度なNetScanの作成. Advanced NetScan に次の設定を適用します。
- 次の項目を選択します。: スクリプトまたは csv をアップロードしてデバイスを検出する メソッドとして。
- 次の項目を選択します。: Groovyスクリプトを埋め込む スクリプト オプションとして。
- 次の Groovy スクリプトをコピーして、表示されたフィールドに貼り付けます。
- API トークンを次の行に挿入します。
def token = ""
/*******************************************************************************
* © 2007-2023 - LogicMonitor, Inc. All rights reserved.
******************************************************************************/
import com.santaba.agent.util.GroovyScriptShell
import com.logicmonitor.mod.Snippets
modLoader = GroovyScriptShell.getInstance().getScript("Snippets", Snippets.getLoader()).withBinding(getBinding())
meraki = modLoader.load("cisco.meraki", "0")
// Set this variable to meraki API token.
def token = ''
def urlList = [['https://api.meraki.com/api/v1', 'snmp.meraki.com'], ['https://api.meraki.cn/api/v1', 'snmp.meraki.cn']]
def serviceUrl, snmpUrl
// Optionally, create a list of organizations (e.g. [1243,2343,3564,4355])
// Setting this variable will only discover networks on those orgs.
List<Long> orgsAllowed = null
orgsAllowed = orgsAllowed?.collect{ it.toLong() }
Boolean debug = false
def orgs
urlList.find{ urls ->
try {
orgs = meraki.cachedHttpGet(token, "/organizations", [:], urls[0])
serviceUrl = urls[0]
snmpUrl = urls[1]
}
catch(java.net.ProtocolException ignored){ } //service url didn't work, trying next one
}
orgs.each { org ->
def orgId = org.id
// Filter in only allowed orgs if it's defined.
if (orgsAllowed != null) {
if (!orgsAllowed.contains(orgId.toLong())) {
return
}
}
def orgName = org.name
def networks = []
def devices = []
try {
networks = meraki.cachedHttpGet(token, "/organizations/${orgId}/networks", [:], serviceUrl)
devices = meraki.cachedHttpGet(token, "/organizations/${orgId}/devices", [:], serviceUrl)
} catch (Exception error) {
if (debug) println error.message
return
}
networks.each { network ->
def networkId = network.id
// Check if this network has any devices and avoid reporting deviceless networks.
def networkDevices = devices.findAll{it.networkId == networkId}
if (networkDevices.size() == 0) {
return
}
def networkName = network.name
def networkTags = network.tags.join(",")
def hostName = "${orgName.replaceAll('\\W', '')}.${networkName.replaceAll('\\W', '')}.invalid"
def displayName = "Meraki Network: ${networkName}"
println "${hostName}##${displayName}##meraki.org.name=${orgName}##meraki.org.id=${orgId}##meraki.api.key=${token}##meraki.network.id=${networkId}##meraki.network.name=${networkName}##meraki.network.tags=${networkTags}##meraki.service.url=${serviceUrl}##meraki.snmp.url=${snmpUrl}"
}
// Only add orgs if they have networks.
if (networks.size() > 0) {
println "${orgName.replaceAll('\\W', '')}.invalid##Meraki Org: ${orgName}##meraki.org.name=${orgName}##meraki.org.id=${orgId}##meraki.api.key=${token}##meraki.service.url=${serviceUrl}##meraki.snmp.url=${snmpUrl}"
}
}
def domain = (serviceUrl.split(/\/+/) as List<String>)?.get(1)
apiDevice = [domain, domain, "meraki.api.key=${token}", "meraki.service.url=${serviceUrl}", "meraki.snmp.url=${snmpUrl}"].join("##")
println apiDevice
return 0
- [Default Group] フィールドに、作成した Cisco Meraki デバイス グループを入力します。
注意: NetScan を実行する前に、SNMP クレデンシャルと Meraki キーをこのグループのプロパティとして設定する必要があります。 詳細については、次を参照してください。 Merakiデバイスグループを作成する.
- 次の項目を選択します。: セールで節約 or 保存して実行.
監視にデバイスを手動で追加する
Merakiデバイスを手動で監視に追加できます。 追加できるMerakiデバイスには次のXNUMXつのタイプがあります。
- ネットワークデバイス
- 組織デバイス
- MerakiAPIデバイス
これらのデバイスを追加するときは、前に作成したデバイスグループにそれらを割り当てます。 監視にリソースを手動で追加する手順については、を参照してください。 デバイスの追加.
ネットワークデバイス
ネットワークデバイスは、特定のネットワークのデバイスごとおよびインターフェイスごとのデータを報告します。
- ネットワークデバイスのホスト名( IPアドレス/ DNS名 フィールド) で終わる必要があります
.invalid
. - ネットワーク固有のプロパティをデバイスに割り当てる必要があります。 詳細については、次を参照してください。 リソースへのプロパティの割り当て.
組織デバイス
組織デバイスは、特定の組織のネットワークごとのデバイス数とAPI使用統計を報告します。
- 組織デバイスのホスト名( IPアドレス/ DNS名 フィールド) で終わる必要があります
.invalid
. - 組織固有のプロパティをデバイスに割り当てる必要があります。 詳細については、次を参照してください。 リソースへのプロパティの割り当て.
MerakiAPIデバイス
Meraki APIデバイスは、アカウント上のすべての組織のネットワークごとのデバイス数とAPI使用統計を報告します。
- Meraki APIデバイスのホスト名( IPアドレス/ DNS名 フィールド) である必要があります
api.meraki.com
.
リソースへのプロパティの割り当て
に加え グループレベルのプロパティ 構成したら、LogicMonitor で次のデバイス レベルのプロパティも設定する必要があります。 NetScan を使用してこれらのリソースを監視に追加した場合、プロパティは自動的に割り当てられます。
プロパティ | 商品説明 |
meraki.org.id | このプロパティは、組織のデバイスでのみ設定してください。 組織とそれぞれの ID のリストについては、次の Web サイトをご覧ください。 https://developer.cisco.com/meraki/api-v1/#!get-organizations. |
meraki.network.id | このプロパティは、ネットワーク デバイスでのみ設定してください。 ネットワークを表示する組織の組織 ID を入力します。 ネットワークとそれぞれの ID のリストについては、次の URL をご覧ください。 https://developer.cisco.com/meraki/api-v1/#!get-organization-networks. |
meraki.service.url | サービス URL https://api.meraki.com/api/v1 がデフォルトで使用されます。 https://api.meraki.cn/api/v1 などの代替サービス URL を指定できます。 |
meraki.snmp.url | SNMP URL snmp.meraki.com がデフォルトで使用されます。 snmp.meraki.cn などの代替 SNMP URL を指定できます。 |
注意: https://developer.cisco.com/meraki/api から API 要求を実行するときに、X-Cisco-Meraki-API-Key ヘッダーを API キーに設定します。
複数の組織
一部のMeraki構成には、SNMPクレデンシャルが異なる複数の組織を含めることができます。 このような場合、組織に属するリソースは、組織ごとに動的グループを作成し、そこに特定のプロパティを割り当てることでグループ化できます。
LogicModulesのインポート
LogicMonitorパブリックリポジトリから、にリストされているすべてのCisco MerakiLogicModuleをインポートします。 パッケージ内のLogicModules このサポート記事のセクション。 これらのLogicModuleがすでに存在する場合は、最新バージョンであることを確認してください。
LogicModuleがインポートされると(以前のセットアップ要件がすべて満たされていると仮定して)、Merakiデータソースのスイートが自動的にデータの収集を開始します。
パッケージ内のLogicModules
Cisco Meraki用のLogicMonitorのパッケージは、次のLogicModuleで構成されています。 完全にカバーするには、これらのLogicModuleがすべてLogicMonitorプラットフォームにインポートされていることを確認してください。
表示名 | 種類 | 商品説明 |
アクセスポイントインターフェイス | データソース | ネットワークごとのレベルで、Merakiアクセスポイントインターフェイスのデータスループットとパケット送信を監視します。 |
アクセスポイント | データソース | Merakiアクセスポイントのクライアント接続と動作ステータスを監視します。 |
ゲートウェイインターフェイス | データソース | ネットワークごとのレベルで、Meraki TeleworkerGatewayインターフェイスのデータスループットとパケット送信を監視します。 |
ゲートウェイ | データソース | Meraki TeleworkerGatewayクライアントの接続と動作ステータスを監視します。 |
MerakiAPIの使用法 | データソース | 組織ごとにMerakiAPIの使用状況をカウントします。 |
Merakiデバイス数 | データソース | ネットワークごとのレベルでの組織ごとのMerakiデバイスの数と合計数。 |
Merakiデバイス数 | データソース | 組織別のMerakiデバイスの数。 |
Merakiライセンスステータス | データソース | Merakiの特定の組織のライセンスステータスを報告します。 |
Meraki ライセンス | データソース | v1 API を使用して、Meraki の特定の組織のライセンス ステータスを報告します。 このバージョンは、デバイスごとのライセンスをサポートしています。 |
Meraki トラブルシューター | データソース | CiscoMerakiデバイスの構成を検証します。 |
セキュリティアプライアンスのインターフェイス | データソース | ネットワークごとのレベルで、Meraki SecurityApplianceインターフェイスのデータスループットとパケット送信を監視します。 |
セキュリティ機器 | データソース | Meraki SecurityApplianceクライアントの接続と動作ステータスを監視します。 |
スイッチ | データソース | MerakiSwitchクライアントの接続と動作ステータスを監視します。 |
アップリンク アプライアンスのステータス | データソース | 組織内のすべてのMerakiMXおよびZシリーズアプライアンスのアップリンクステータスを一覧表示します。 |
アップリンクの損失と遅延 | データソース | 組織内のすべてのMXのアップリンク損失と遅延を返します。 |
addCategory_Meraki_API | プロパティソース | ホストが Meraki API アクセス用に設定されているかどうかを識別し、さまざまなシステム自動プロパティと、それが組織デバイスかネットワーク デバイスかに基づいて適切なシステム カテゴリを追加します。 – サポートページ: https://www.logicmonitor.com/support/monitoring/networking-firewalls/meraki-cloud-wireless-access-controllers |
addERI_メラキ | プロパティソース | Meraki ホストの ERI を追加します。 – サポートページ: https://www.logicmonitor.com/support/monitoring/networking-firewalls/meraki-cloud-wireless-access-controllers. コレクター バージョン 30.000 以降が必要です。 |
addERI_Meraki_Device | プロパティソース | Meraki リソースの Meraki 固有の ERI を検出して追加する |
addERI_Meraki_Org | プロパティソース | Meraki 組織の ERI を追加します。 – サポートページ: https://www.logicmonitor.com/support/monitoring/networking-firewalls/meraki-cloud-wireless-access-controllers. コレクター バージョン 30.000 以降が必要です。 |
Meraki_Cloud_Topology | トポロジーソース | MerakiCloudトポロジをマップします。 |
Meraki_Org_Topology | トポロジーソース | MerakiOrgトポロジをマップします。 |
このパッケージのデータソースによって追跡されるさまざまなメトリックに静的データポイントのしきい値を設定する場合、LogicMonitorはテクノロジ所有者のベストプラクティスのKPI推奨事項に従います。 必要に応じて、これらの事前定義されたしきい値を調整して、環境固有のニーズを満たすことをお勧めします。 データポイントのしきい値の調整の詳細については、を参照してください。 データポイントの静的しきい値の調整.
レガシーデータソースからの移行
6月2022で、LogicMonitorは、Meraki API v1を使用し、Merakiデバイスを識別するためのトポロジサポートを拡張するようにCiscoMerakiスイートを更新しました。 このアップデートの一環として、Cisco_Meraki_Switch_InterfacesDataSourceは非推奨になりました。 Cisco_Meraki_Switches DataSourceを使用して、スイッチの接続ステータスとクライアント数を引き続き監視できます。 詳細については、を参照してください。 非推奨のLogicModules.
6月2020で、LogicMonitor は Cisco Meraki DataSources の新しいスイートをリリースして、監視範囲を拡大し、将来のスケーラビリティとサポートのために効率を改善しました。 これらの新しい DataSource のリリースは、次のレガシー Meraki DataSource を廃止するのに役立ちます。
- Meraki_CloudController_DeviceInventory
- Meraki_MR_インターフェイス
- Meraki_MR_Stats
- Meraki_MS_Stats
- Meraki_MX_Interfaces
- Meraki_MX_Stats
- Meraki_Z_Interfaces
- Meraki_Z_Stats
これらのレガシーデータソースのいずれかを使用して現在Merakiデバイスを監視している場合、新しいデータソースをインポートしてもデータが失われることはありません。 これは、モジュールの上書きを排除するためにデータソース名が変更されたためです。
ただし、データソースの両方のセットがアクティブである限り、重複データを収集し、重複アラートを受信します。 このため、新しいデータソースのセットをインポートし、環境で意図したとおりに機能していることを確認した後、上記のデータソースを無効にすることをお勧めします。
データソースを無効にすると、ホストへのクエリとアラートの生成が停止しますが、すべての履歴データは保持されます。 ある時点で、レガシーデータソースを完全に削除したい場合がありますが、削除するとすべての履歴データが失われるため、この移動を慎重に検討してください。 データソースの無効化の詳細については、を参照してください。 データソースまたはインスタンスの監視を無効にする.