プロファイルは、収集してNewRelicアカウントに送信するSNMPOIDを定義します。このドキュメントでは、既存のプロファイルを変更する方法、または新しいプロファイルを作成する方法について説明します。
始めましょう
カスタムプロファイルを作成するか、オープンソースプロファイルの1つを変更することにした場合は、いくつかの重要なツールが必要です。
- GitHubアカウント:これにより、問題を提起し、Kentikのオープンソースプロファイルに変更を加えることができます。
- プロファイルで作業するネットワークデバイスからのSNMPウォーク。詳細については、 SNMPの設定と
snmpwalk
の使用に関するドキュメントを参照してください。 ktranslate
コンテナをホストするサーバーでDockerプルを実行するための権限。
このドキュメントの内容は次のとおりです。
- メンテナが作業するGitHubを介して新しいプロファイルまたは変更されたプロファイルをリクエストする
- 独自のプロファイルと変更を公に提供する
- カスタムプロファイルを非公開で使用する
ヒント
kentik / snmp-profilesに関連するすべてのもののサポートは、GitHubの問題を通じて処理されます。New Relicのテクニカルサポートは、問題を提起するためにリダイレクトする以外に、追加のヘルプを提供することはできません。
GitHubを介してリクエストを行う
これは、SNMPに関する時間や専門知識がなく、自分でこれらを実行する場合の、最も一般的で単純なシナリオです。関連するデータを提供した後、私たちのチームがあなたのためにプロファイルを作成します。
- GitHubにログインし、 snmp-profilesリポジトリに移動します。
- 上部にある[問題]タブをクリックします。
- [新しい問題]をクリックします。
- 新しいプロファイルを要求するには、[ SNMPプロファイル要求]セクションを探して、[開始]をクリックします。デバイスベンダー、モデル、snmpオブジェクト識別子、サニタイズされたSNMPウォークなど、要求されたすべての情報をテンプレートに提供します。
- 他のすべてのリクエストについては、「空白の問題を開く」を使用してください。
ヒント
SNMPウォークを提供することは重要です。これがないと、プロファイルで作業を行うことができないためです。これはMIBファイルと同じではありません。
リポジトリの管理者は、提供された情報を確認し、不足している情報があれば、フォローアップします。必要なデータがすべて提供されると、作成するプロファイルのキューに追加されます。リポジトリに追加された後、問題はクローズされ、KTranslate docker コンテナーを更新するだけで、最新のプロファイルが自動的に読み込まれます。
プロファイルと変更を公に提供する
新しいプロファイルの作成または既存のプロファイルの改善を支援したい方からの寄稿を喜んで受け入れます。
- プロファイルの構造に慣れるために、GitHubでこのコメントの多いtemplate.ymlを確認してください。
- GitHubにログインし、 snmp-profilesリポジトリに移動します。
- アカウントに同じ情報のコピーを作成するには、上部にあるフォークボタンをクリックします。
- フォーク内で、ファイルに必要な変更を加えるか、必要に応じて新しいベンダーディレクトリとプロファイルを作成します。
- プルリクエストを送信する前に、必ずcodebeautifyなどのYAMLバリデーターを介してプロファイルを渡してください。
- 変更が完了したら、 プルリクエストをアップストリームリポジトリに送信します。
メンテナは変更を確認し、必要なフィードバックについて話し合います。全員が整列すると、マージされます。
マージの直後に、Dockerイメージの新しいバージョンをプルし、環境で新しいコンテナーを起動することにより、新しいSNMPプロファイルが自動的に使用可能になります。詳細については、 SNMPの手動セットアップに関するドキュメントを参照してください。
ヒント
フォークを定期的に同期して、アップストリームリポジトリの変更に合わせて最新の状態に保つようにしてください。
プロファイルには実際にどのような種類のOIDを含める必要がありますか?
多くの場合、SNMPは大量のデータを提供しますが、そのデータの多くは実用的な情報を提供しません。または、データが提供する価値は非常にまれで影響が少ないため、NewRelicアカウントに持ち込む価値がない可能性があります。
デバイスが期待する機能を実行できなくなる原因となるものがあるかどうかを知らせるデータの収集に焦点を当てたいと考えています。それを基に、これらの機能をどの程度実行しているかを示す測定値を収集する必要があります。
例1: VPNコンセントレーターとして動作しているデバイスの場合、次のような高レベルのシステムメトリックを収集します。
- CPUとメモリの使用率
- ファンの故障などが原因でデバイスがシャットダウンしないようにするためのハードウェアセンサー情報
- 集約された接続とスループットについて教えてくれるOID
例2:利用可能であるが価値が非常に低いデータの例は、ネットワークアプライアンスで実行中のすべてのプロセスを一覧表示するOIDテーブルです。サーバー管理者の観点からすると、これは便利に聞こえるかもしれませんが、これはアプライアンスであるため、通常、その内部で実行されるプロセスを処理する機能や必要はありません。実際には何もできない何百ものアイテムを含むテーブルをポーリングして保存するのは効率的ではありません。
カスタムプロファイルを非公開で使用する
プロファイルに変更を加えたいが、それが非常にユニークで他の顧客には適用されないシナリオであることがわかっている場合は、プロファイルをローカルで編集できます。
ヒント
devices.[deviceName].provider
の値は、NewRelicでのエンティティ合成にとって重要です。詳細については、デバイス構成に関するドキュメントを参照してください。
これを行う方法は、Docker のボリューム マウントを使用して、カスタマイズしたファイルをetc/ktranslate/profiles/
ディレクトリ内の KTranslate コンテナに渡すことです。これを実現する方法は他にもありますが、この例では、git のフォークとクローンを使用して説明します。
- ファイルを保持するディレクトリにいることを確認してから、GitHubリポジトリのフォークをDockerホストに複製します。
git clone https://github.com/<YourGitUser>/snmp-profiles.git
- SNMPコンテナを起動するために通常使用するコマンドを取得し、
snmp-base.yaml
で渡したものの後に2番目のボリュームマウント引数を追加します。
-v `pwd`/snmp-profiles/profiles:/etc/ktranslate/profiles \
mount
コマンドは、組み込みのプロファイルディレクトリをカスタマイズされたデータに置き換えます。
最終結果は次のようになります。
docker run -ti --name ktranslate-discovery --rm --net=host \--user `id -u`:`id -g` \-v `pwd`/snmp-base.yaml:/snmp-base.yaml \-v `pwd`/snmp-profiles/profiles:/etc/ktranslate/profiles \kentik/ktranslate:v2 \-snmp /snmp-base.yaml \-log_level info \-snmp_discovery=true
ヒント
検出コンテナまたはSNMPポーリングコンテナを起動するたびに、必ずカスタムバージョンのプロファイルを渡してください。すべてのSNMPインスタンスセットで一貫して使用しないと、信頼性の低い動作が発生する可能性があります。