LoginSignup
0
1

ネットワークトラフィックの可視化

Last updated at Posted at 2023-02-26

めも;書きかけ

前提

  • バージョン v2c
  • Community abc-abc

snmp のインストール

net-snmp のインストール

# apt install snmp

mib ファイルのインストール

/etc/apt/sources.listnon-free があることを確認してから snmp-mibs-downloader をインストール。

# apt -y install snmp-mibs-downloader
# download-mibs

これで /etc/snmp-mibs-downloader/snmp-mibs-downloader.conf に定義されている mib ファイルがインストールされます。
/etc/snmp-mibs-downloader の下に他の定義ファイルもありますので、必要に応じて追加可能です。

Net-SNMP のページから追加 mib ファイルをダウンロード

Net-SNMP のページに mib ファイルがありますので Net-SNMP Distributed MIBs からダウンロード。

# cd /usr/share/snmp
# mkdir netsnmp-mibs && cd netsnmp-mibs
# wget -r -N -nH -nd -A txt -np -l 2 http://www.net-snmp.org/docs/mibs/

これらの mib ファイルを読み込むように設定

download-mibs でインストールされたディレクトリは追加されていますが /usr/share/snmp/netsnmp-mibs がないので追加します。
mib ファイルを入れたディレクトリを mibdirs の行に 「:」 で繋いで書きます。
行を分けるときは mibdirs の後の +を忘れると最後の行しか有効になりません注意。

/etc/snmp/snmp.conf
mibs all

mibdirs /usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf
mibdirs +/usr/share/snmp/netsnmp-mibs
mibdirs +/usr/share/snmp/Aruba-mibs
mibdirs +/usr/share/snmp/FortiGate-mibs

# デフォルトのバージョンと、コミュニティー名 (いちいちコマンドラインで指定しなくて良くなる)
defVersion v2c
defCommunity abc-abc
strictCommentTerm false

grafana, telegraf, influxdb のインストール

リポジトリと、その PGP 署名キーの追加

Grafana

apt install -y apt-transport-https
apt install -y software-properties-common wget

wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | tee /etc/apt/sources.list.d/grafana.list

telegraf, influxdb

wget -q -O /usr/share/keyrings/influxdata.key https://repos.influxdata.com/influxdata-archive_compat.key
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/influxdata.key] https://repos.influxdata.com/debian stable main" | tee /etc/apt/sources.list.d/influxdb.list

grafana telegraf influxdb のインストール

apt update
apt install grafana telegraf influxdb2

バージョン確認

# grafana -v
Incorrect Usage: flag provided but not defined: -homepath
...(略)
VERSION:
   10.0.1
...(略)

# telegraf --version
Telegraf 1.27.1 (git: HEAD@a830df8f)

# influx version
Influx CLI dev (git: none) build_date: 2023-04-28T14:24:14Z

取りあえず無事にインストール完了

telegraf のデフォルトの config ファイルを生成する

telegraf.conf の生成
% telegraf config > /etc/telegraf/telegraf.conf

% telegraf config --input-filter cpu:mem:net:swap --output-filter influxdb_v2 > /etc/telegraf/telegraf.conf

基本的には config は、これで生成するより Telegraf の Web 画面から作成するのが良いように思える。

複数の機器を監視する場合 /etc/telegraf/telegraf.conf に全て書くことも出来るが、/etc/telegraf/telegraf.conf を空にして /etc/telegraf/telegraf.d/ の下に機器ごとにファイルを作成するとよい。
ただ、ファイル毎に独立している訳ではなく cat で繋げて読み込まれるようなものなので、無理に分割する必要は無い。

/etc/telegraf/telegraf.conf 起動時に指定されているファイル。無いとエラーになる。
/etc/telegraf/telegraf.d/*.conf あると追加で読み込まれるファイル。拡張子は .conf。
agent部分 (google 翻訳)
[agent]
  ## デフォルトの収集間隔
  interval = "60s"
  ## 収集間隔の丸め
  ## 例えば、interval="10s" とした場合、:00、:10、:20 に収集します。
  ## 0 秒, 0分から interval の計算をします。
  round_interval = true

  ## Telegraf は、最大で metric_batch_size メトリックのバッチでメトリックを出力に送信します。
  ## Telegraf が出力プラグインに送信する書き込みのサイズの指定です。
  metric_batch_size = 1000

  ## 出力あたりの未書き込みメトリックの最大数。この値を大きくすると、
  ## 最大メモリ使用量が増えるという犠牲を払ってメトリックをドロップすることなく、
  ## 出力のダウンタイムを長くすることができます。
  metric_buffer_limit = 10000

  ## コレクションのジッターは、ランダムな量でコレクションをジッターするために使用されます。
  ## 各プラグインは、収集する前にジッター内でランダムな時間スリープします。
  ## これは、多くのプラグインが sysfs のようなものをクエリするのを避けるために使用できます。
  ## 同時に、システムに測定可能な影響を与える可能性があります。
  collection_jitter = "0s"

  ## すべての出力のデフォルトのフラッシング間隔。最大 flush_interval は、
  ## flush_interval + flush_jitter になります
  flush_interval = "60 秒"
  ## ランダムな量だけフラッシュ間隔を揺らします。これは主に、多数の
  ## Telegraf インスタンスを実行しているユーザーの大きな書き込みスパイクを回避するためです。
  ## つまり、5 秒のジッターと 10 秒の間隔は、フラッシュが 10 ~ 15 秒ごとに発生することを意味します
  flush_jitter = "0s"

  ## デフォルトまたは「0s」に設定されている場合、精度は収集間隔と同じ
  ## タイムスタンプの順序に設定され、最大値は 1 秒です。
  ##   例えば, interval = "10s" の場合、精度は "1s" になります。
  ##          interval = "250ms" の場合、精度は "1ms" になります。
  ## 精度はサービス入力には使用されません。適切な精度でタイムスタンプを
  ## 設定するのは、個々のサービス入力次第です。
  ## 有効な時間単位は、「ns」、「us」(または「µs」)、「ms」、「s」です。
  precision = ""

  ## デバッグレベルのログを記録するか。
  debug = true
  ## エラー レベルのメッセージのみをログに記録するか。
  quiet = false

  ## ログ ターゲットはログの宛先を制御し、「file」、「stderr」、
  ## または Windows では「eventlog」のいずれかになります。
  ## 「file」に設定すると、出力ファイルは「logfile」設定によって決定されます。
  # logtarget = "file"

  ## "file" ログターゲットを使用する場合にログに記録されるファイルの名前。
  ## 空の文字列に設定すると、ログは stderr に書き込まれます。
  # logfile = ""

  ## ログファイルは、指定された時間間隔の後にローテーションされます。
  ## 0 に設定すると、時間ベースのローテーションは実行されません。
  ## ログは書き込まれたときにのみローテーションされます。
  ## ログ アクティビティがない場合、ローテーションが遅れる可能性があります。
  # logfile_rotation_interval = "0d"

  ## 指定したサイズよりも大きくなると、ログファイルはローテーションされます。
  ## 0 に設定すると、サイズ ベースのローテーションは実行されません。
  logfile_rotation_max_size = "100MB"

  ## 保持するローテーション アーカイブの最大数。古いログは削除されます。
  ## -1 に設定すると、アーカイブは削除されません。
  logfile_rotation_max_archives = 30

  ## ログ記録時に使用するタイムゾーンを選択するか、現地時間に「local」と入力します。
  ## 例: アメリカ/シカゴ
  # log_with_timezone = ""

  ## デフォルトのホスト名をオーバーライドします。空の場合は os.Hostname() を使用します
  hostname = ""
  ## true に設定すると、telegraf エージェントに「host」タグを設定しません。
  omit_hostname = false

各社のプライベート mib の入手先

wget -O- <URL> | sed -ne 's/.*"\([^"]*.my\)".*/\1/p' | xargs -n 1 wget

で取ってくることができます。

Kapacitor を telegraf と influxdb の間に挟むとデータの前処理ができるらしい。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1