おちゃぬこさいさい

アクアリウムとIT技術のお話しとか

New Relicでお家ネットワークを監視する

はじめに

RTX830を買った - おちゃぬこさいさい

家のネットワークはRTX830でGMOのV6プラスを利用している。

ネットワーク監視には興味があったものの、やる必要性がそこまで感じられなかったので放置していたが、一日の通信量が気になったり、仕事で使っているNew RelicがSNMPに対応しているということで、この際New Relicとお友達になろうと少しずつ触ったので備忘録。

環境

色々試した結果、家に転がっていたRaspberry Pi 3 B+にManjaroを入れて運用していく方針にした。

検証中はWindowsだったりCentosだったり色々試した。

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_typemetric_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

f:id:chanuko:20210530012737p:plain

SNMPメトリクスが取得できているか確認。

Browse data>Data explorerRtx830Metric があればOK。なければ何かしらのエラーが出ている。

f:id:chanuko:20210530012759p:plain

ダッシュボードの作成

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

f:id:chanuko:20210530012817p:plain

まとめ

New RelicでSNMPのデータを扱ってみた。日本語ソースどころか英語でもあまり取り扱われていなかったのでなかなか苦労した。

今後はSyslogもダッシュボードに入れてみたい。

痛風になった

辛い!

歩くと痛い!歩きにくい!

でも、元々尿酸値が高いのでついに来たか、、という感想。

知人からは「小指を角でぶつける痛みがずっと続く」と聞いていたけど、捻挫程度の痛みで思ったほど痛くない(しょっちゅう捻挫していたので感覚がずれているかもしれない)

生活習慣見直そう

RTX830を買った

My new gear... f:id:chanuko:20200801164938j:plain

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に移行できるツールらしい

app.mover.io

さっそく試してみる。

今回は個人版Google DriveからOne Drive for Businessに移行を行ってみる。

https://app.mover.io/ にアクセスすると以下の様な画面がでてくる。

f:id:chanuko:20200523005658p:plain

Step.1をクリックする。 接続元の選択が出来る。思ったより色々な場所を接続元にできる様子。

f:id:chanuko:20200523005755p:plain

今回は Google Driveを選択 f:id:chanuko:20200523005844p:plain

表示名を入力する画面。デフォルトで入力されているのでそのまま認可画面へ。 f:id:chanuko:20200523005907p:plain

よく見る画面。 f:id:chanuko:20200523010003p:plain

次。移行先のサービスを選択する。 今回はOne Drive for Businessを選択。 f:id:chanuko:20200523010020p:plain

同じく表示名を。デフォルトでOK。 f:id:chanuko:20200523010100p:plain

Microsoft側も認証・認可を行う。 f:id:chanuko:20200523010121p:plain

移行元・移行先の設定ができたらこの様にそれぞれのフォルダーの中身が閲覧できるようになっている。 移行先がごっちゃにならないようにフォルダーを作成したりもできる。 準備がOKなら「Start Copy」をクリック。 f:id:chanuko:20200523010146p:plain

転送処理結果の画面が表示される。 どうやらディレクトリを掘ってはくれない様子。 f:id:chanuko:20200523010326p:plain

まとめ

ポチポチでファイルの移行が出来るのはいいなと思いました。 仕事でも使えたら使えそうですね。

とくにWebDav等が使えるのは嬉しいかも。でも家のサーバー外部公開していないしな。。。

Power AutomateとTeamsで承認フローを作ってみる

Power Automate

Microsoft 製の自動化ツールです。

巷で広がっているMicrosoft Teamsと組み合わせて承認フローを作ってみようと思います。

f:id:chanuko:20200519215108p:plain

Power Automate の設定

手動ボタンの設定

トリガーとなる部分ですが、今回はココが目的では無いので手動ボタンを使います。 何も入力が無いのも寂しいので、理由を入れるフォームを用意しました。 f:id:chanuko:20200519215213p:plain

開始して承認を待機

承認してもらう側の設定をします。 応答オプションで選択肢を作成します。 担当者に承認してもらう対象のIDを設定します。 f:id:chanuko:20200519215702p:plain

Teamsに投稿

コネクタのプロパティをメッセージに添える程度。 f:id:chanuko:20200519220846p:plain

動作

スマートフォンから承認依頼を実行します。 f:id:chanuko:20200519220208p:plain

すると、承認者側のTeamsで以下の様な応答画面が表示されます。 f:id:chanuko:20200519220333p:plain

これに応答することで、依頼者側で以下の様な通知がTeamsに届きます。 f:id:chanuko:20200519220421p:plain

おわりに

調べても記事が出てこなかったので書いてみました。 今回は依頼して可否をする程度のフローですが、Sharepointを間に挟んだりするとそれなりの承認フローができるのではないでしょうか。

久しぶりの投稿です。アクアリウムの記事もサボっていますね、、、 最近コーヒーにはまっています。近所のコーヒー屋さんの豆が美味しい。