New Relicでお家ネットワークを監視する
はじめに
家のネットワークはRTX830でGMOのV6プラスを利用している。
ネットワーク監視には興味があったものの、やる必要性がそこまで感じられなかったので放置していたが、一日の通信量が気になったり、仕事で使っているNew RelicがSNMPに対応しているということで、この際New Relicとお友達になろうと少しずつ触ったので備忘録。
環境
色々試した結果、家に転がっていたRaspberry Pi 3 B+にManjaroを入れて運用していく方針にした。
検証中はWindowsだったりCentosだったり色々試した。
- Windows(メインPC)
- 常時稼働するわけじゃないから
- New Relic SNMPエージェントが上手く動かなかった。
-
- apt-get が動かなかった。
apt-get install unclear and not working · Issue #26 · newrelic/nri-snmp
-
- 動いたけど、メインPCのHyper-vじゃ常時稼働問題
- サーバー増やしたくない
- Raspberry Pi OS
- apt-get 問題+バイナリ落としても動かなかった。
New Relic
New Relicとお友達になろうと思ったきっかけは、個人で使用する分には無料枠で収まると知ったから。 New RelicでSNMPのデータを扱うには、New RelicエージェントとSNMPアドオンをインストールする必要がある。
インストール
wget https://download.newrelic.com/infrastructure_agent/binaries/linux/arm/newrelic-infra_linux_1.17.1_arm.tar.gz tar xvzf newrelic-infra_linux_1.17.1_arm.tar.gz sudo ./installer.sh
サービスが立ち上がっているか確認する。
$ systemctl status newrelic-infra.service ● newrelic-infra.service - New Relic Infrastructure Agent Loaded: loaded (/etc/systemd/system/newrelic-infra.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2021-05-16 02:20:07 JST; 23s ago Main PID: 4600 (newrelic-infra-) Tasks: 18 (limit: 783) CPU: 2.982s CGroup: /system.slice/newrelic-infra.service ├─4600 /usr/local/bin/newrelic-infra-service -config=/etc/newrelic-infra.yml └─4606 /usr/local/bin/newrelic-infra -config=/etc/newrelic-infra.yml
nri-snmp
をインストール&エージェントの設定の為に一旦サービスを停止する。
sudo systemctl stop newrelic-infra.service
nri-snmp のインストール
mkdir nri-snmp cd nri-snmp wget https://github.com/newrelic/nri-snmp/releases/download/v1.3.0/nri-snmp_linux_1.3.0_arm64.tar.gz tar xvzf nri-snmp_linux_1.3.0_arm64.tar.gz
シンボリックリンクを張る。
cd /var/db/newrelic-infra/newrelic-integrations sudo ln -s ~/nri-snmp/var/db/newrelic-infra/newrelic-integrations/newrelic-integrations sudo ln -s ~/nri-snmp/var/db/newrelic-infra/newrelic-integrations/bin/ sudo ln -s ~/nri-snmp/var/db/newrelic-infra/newrelic-integrations/snmp-definition.yml cd /etc/newrelic-infra/integrations.d/ sudo ln -s ~/nri-snmp/etc/newrelic-infra/integrations.d/ sudo ln -s ~/nri-snmp/etc/newrelic-infra/integrations.d/snmp-config.yml sudo ln -s ~/nri-snmp/etc/newrelic-infra/integrations.d/snmp-metrics.yml
設定
nri-snmp
を動かすには3つの設定ファイルが必要。
- newrelic-infra.yml // New Relic定義ファイル
- snmp-config.yml // SNMPインテグレーション定義ファイル
- snmp-metrics.yml // SNMPメトリクス定義ファイル
newrelic-infra.yml
/etc/newrelic-infra.yml
にある。
license_key
を設定する必要がある。
New Relicの API keys
より INGEST - LICENSE
の値を取得し貼り付ける。
# /etc/newrelic-infra.yml pid_file: /var/run/newrelic-infra/newrelic-infra.pid plugin_dir: /etc/newrelic-infra/integrations.d/ agent_dir: /var/db/newrelic-infra/ log_file: /var/log/newrelic-infra/newrelic-infra.log license_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
snmp-config.yml
~/nri-snmp/etc/newrelic-infra/integrations.d/snmp-config.yml
SNMPの設定を定義する。
instances: - name: snmp command: all_data arguments: snmp_host: 192.168.x.x snmp_port: 161 community: public collection_files: "/etc/newrelic-infra/integrations.d/snmp-metrics.yml"
snmp-metrics.yml
~/nri-snmp/etc/newrelic-infra/integrations.d/snmp-metrics.yml
New Relicに送信するメトリクスを定義する。
event_type
、 metric_name
はNew Relicのクエリで使用するのでよしなに。
ifHCxxOctets(Counter64)は metric_type
を指定しないとNew Relic側でGaugeとして処理されてしまったので明示的に定義した。
collect: - device: RTX830-MIB metric_sets: - name: RTX830 metric type: scalar event_type: Rtx830Metric metrics: - metric_name: ifHCInOctets_1 #LAN oid: .1.3.6.1.2.1.31.1.1.1.6.1 metric_type: pdelta - metric_name: ifHCInOctets_2 #WAN oid: .1.3.6.1.2.1.31.1.1.1.6.2 metric_type: pdelta - metric_name: ifHCOutOctets_1 oid: .1.3.6.1.2.1.31.1.1.1.10.1 metric_type: pdelta - metric_name: ifHCOutOctets_2 oid: .1.3.6.1.2.1.31.1.1.1.10.2 metric_type: pdelta - metric_name: yrhMultiCpuUtil5sec_1 oid: .1.3.6.1.4.1.1182.2.1.18.1.3.1 - metric_name: yrhMultiCpuUtil1min_1 oid: .1.3.6.1.4.1.1182.2.1.18.1.4.1 - metric_name: yrhMultiCpuUtil5min_1 oid: .1.3.6.1.4.1.1182.2.1.18.1.5.1 - metric_name: yrhMultiCpuUtil5sec_2 oid: .1.3.6.1.4.1.1182.2.1.18.1.3.2 - metric_name: yrhMultiCpuUtil1min_2 oid: .1.3.6.1.4.1.1182.2.1.18.1.4.2 - metric_name: yrhMultiCpuUtil5min_2 oid: .1.3.6.1.4.1.1182.2.1.18.1.5.2
起動
sudo systemctl start newrelic-infra.service
設定が正しければNew Relicの管理画面でグラフが見えるようになる。
Infrastructure>Hosts
SNMPメトリクスが取得できているか確認。
Browse data>Data explorer に Rtx830Metric
があればOK。なければ何かしらのエラーが出ている。
ダッシュボードの作成
NRQLというSQLライクな構文で簡単にグラフが作成できる。ぬるくるぬるくる。
例えば
- 一日の通信量を
- 5分刻みで
- 上りと下りのそれぞれをグラフ化
をNRQLで書くとこうなる。
FROMのRtx830Metric はsnmp-metrics.yml のevent_type、SELECTのifHCInOctets_2などはmetric_nameになる。
SELECT average(ifHCInOctets_2) as downstream, average(ifHCOutOctets_2) as upstream FROM Rtx830Metric TIMESERIES 5 minutes SINCE 1 day ago
まとめ
New RelicでSNMPのデータを扱ってみた。日本語ソースどころか英語でもあまり取り扱われていなかったのでなかなか苦労した。
今後はSyslogもダッシュボードに入れてみたい。
RTX830を買った
My new gear...
Aterm WG1900HP2 が熱暴走で使い物にならないのでYamahaのRTX830を買った。
RTX830にした理由は、契約しているプロバイダのGMOがV6プラスでRTXをサポートと謳っていたから。 NECのUNIVERGE IX2106にしようか悩んだけど、設定でうんうん唸るのも面倒だし、会社でYamahaのルータ触ってるから勉強がてらってのもある。
設定はほぼ公式の設定でいけた。
# 管理設定 login password * administrator password login user --- * sshd service on sshd host any sshd host key generate *
# LANインターフェースの設定(LAN1ポートを使用) ip lan1 address 192.168.100.1/24 ipv6 prefix 1 ra-prefix@lan2::/64 ipv6 lan1 address ra-prefix@lan2::1/64 ipv6 lan1 rtadv send 1 o_flag=on
# WANインターフェースの設定(LAN2ポートを使用) tunnel select 1 tunnel encapsulation map-e ip tunnel mtu 1460 ip tunnel secure filter in 200030 200039 ip tunnel secure filter out 200099 dynamic 200080 200082 200083 200084 200098 200099 ip tunnel nat descriptor 1000 tunnel enable 1 ipv6 lan2 secure filter in 200030 200031 200038 200039 ipv6 lan2 secure filter out 200099 dynamic 200080 200081 200082 200083 200084 200098 200099
# フィルターの設定 ip filter 200030 pass * 192.168.100.0/24 icmp * * ip filter 200039 reject * * ip filter 200099 pass * * * * * ip filter dynamic 200080 * * ftp ip filter dynamic 200082 * * www ip filter dynamic 200083 * * smtp ip filter dynamic 200084 * * pop3 ip filter dynamic 200098 * * tcp ip filter dynamic 200099 * * udp ipv6 filter 200030 pass * * icmp6 * * ipv6 filter 200031 pass * * 4 ipv6 filter 200038 pass * * udp * 546 ipv6 filter 200039 reject * * ipv6 filter 200099 pass * * * * * ipv6 filter dynamic 200080 * * ftp ipv6 filter dynamic 200081 * * domain ipv6 filter dynamic 200082 * * www ipv6 filter dynamic 200083 * * smtp ipv6 filter dynamic 200084 * * pop3 ipv6 filter dynamic 200098 * * tcp ipv6 filter dynamic 200099 * * udp
# NATの設定 nat descriptor type 1000 masquerade nat descriptor address outer 1000 map-e
# DHCPの設定 dhcp service server dhcp server rfc2131 compliant except remain-silent dhcp scope 1 192.168.xxx.xxx-192.168.xxx.xxx/24 ipv6 lan1 dhcp service server ipv6 lan2 dhcp service client ir=on
# DNSの設定 dns server dhcp lan2 dns host lan1
タイゴーストザリガニが☆になりました
なりました。
Microsoft 365に移行するためにmover.ioを使ってみる
mover.io
Microsoft 365(法人版)の管理画面にmover.ioという移行ツールがあったので使ってみた。 どうやら色々なサービスのデータをOne DriveやSharepointに移行できるツールらしい
さっそく試してみる。
今回は個人版Google DriveからOne Drive for Businessに移行を行ってみる。
https://app.mover.io/ にアクセスすると以下の様な画面がでてくる。
Step.1をクリックする。 接続元の選択が出来る。思ったより色々な場所を接続元にできる様子。
今回は Google Driveを選択
表示名を入力する画面。デフォルトで入力されているのでそのまま認可画面へ。
よく見る画面。
次。移行先のサービスを選択する。 今回はOne Drive for Businessを選択。
同じく表示名を。デフォルトでOK。
Microsoft側も認証・認可を行う。
移行元・移行先の設定ができたらこの様にそれぞれのフォルダーの中身が閲覧できるようになっている。 移行先がごっちゃにならないようにフォルダーを作成したりもできる。 準備がOKなら「Start Copy」をクリック。
転送処理結果の画面が表示される。 どうやらディレクトリを掘ってはくれない様子。
まとめ
ポチポチでファイルの移行が出来るのはいいなと思いました。 仕事でも使えたら使えそうですね。
とくにWebDav等が使えるのは嬉しいかも。でも家のサーバー外部公開していないしな。。。
Power AutomateとTeamsで承認フローを作ってみる
Power Automate
Microsoft 製の自動化ツールです。
巷で広がっているMicrosoft Teamsと組み合わせて承認フローを作ってみようと思います。
Power Automate の設定
手動ボタンの設定
トリガーとなる部分ですが、今回はココが目的では無いので手動ボタンを使います。 何も入力が無いのも寂しいので、理由を入れるフォームを用意しました。
開始して承認を待機
承認してもらう側の設定をします。 応答オプションで選択肢を作成します。 担当者に承認してもらう対象のIDを設定します。
Teamsに投稿
コネクタのプロパティをメッセージに添える程度。
動作
スマートフォンから承認依頼を実行します。
すると、承認者側のTeamsで以下の様な応答画面が表示されます。
これに応答することで、依頼者側で以下の様な通知がTeamsに届きます。
おわりに
調べても記事が出てこなかったので書いてみました。 今回は依頼して可否をする程度のフローですが、Sharepointを間に挟んだりするとそれなりの承認フローができるのではないでしょうか。
久しぶりの投稿です。アクアリウムの記事もサボっていますね、、、 最近コーヒーにはまっています。近所のコーヒー屋さんの豆が美味しい。