Raspberry PiにUbuntu Serverを入れてNew Relicで監視する
手間なくRaspberry Piで動くUbuntu Serverを監視したいのでNew Relic Infrastructureを入れる[1]事にしました
- Raspberry Piの設定
- New Relic Infrastrucutre導入
- New Relic UI上で動作確認
何が実現できるのか
- ヘッドレスで動いているRaspberry Piを監視できます
- RPiで動かしている何かしらに問題があれば、ありそうであればSlack通知ができたりします
- APMの研究が手元でできます
- こんなカンジでRPiの状況を監視できます!
前提とか
Raspberry Pi
今回利用するRPiは3B(ARMv8 64bit)です
Wi-Fiも内蔵しているのでケーブル1本でNew Relicで観測できそうです
必要なハードウェア/アカウントなど
- ARMv8 64bitで動いているRPi[2]と電源[3]
- 4GB以上のSDカードとリーダライタ
- Keyboard / HDMIモニタ (初期設定用)
- ログイン可能で自由に使えるNew Relicアカウント
OSイメージ
今回は一度構築したら放置する可能性が高いので2024年くらいまで安心できそうなUbuntu Server LTS 20.04 64bitを使います
Raspberry Piの設定
OSイメージの書き込み
Raspberry Pi Imagerのインストール
2021年3月現在とても簡単になっていますね
公式サイトからRaspberry Pi Imagerをダウンロードしてインストールするだけで下準備はOKです
OSの選択
[Operating System] から [Other general purpose OS] - [Ubuntu] - [Ubuntu Server 20.04.2 LTS]を選択します
SDカードリーダーにSDカードを入れてポチっとしたらイメージ焼き込み完了です いい時代です(SDの中身は消えるので注意しましょう)
この画面になったらいよいよSDをRPiに入れて電源を入れましょう、キーボード/HDMIの接続をお忘れなく
初期設定
まずは何より初期パスワードとWiFi設定
デフォルトアカウントのパスワード設定
公式を確認し初期パスワードを入力、自分のものに変更します
無線LAN設定
ここはお好みですが今回は私の環境的にIP固定にしたいので以下のようにしました
- デフォルトゲートウェイ/ルーターアドレス : 192.168.1.1
- 希望する固定IP : 192.168.1.25
wlanを設定します
ubuntu@ubuntu:~$ sudo vi /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
eth0:
dhcp4: true
optional: true
version: 2
# ここから追記
wifis:
wlan0:
optional: true
dhcp4: false
addresses: [192.168.1.25/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1, 8.8.8.8]
access-points:
“あくせすぽいんと名”:
password: “ぱすわーど”
アクセスポイントとパスワードを書いたら適用し、結果を確認します
ubuntu@ubuntu:~$ sudo netplan apply
ubuntu@ubuntu:~$ ip a
(略)
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:eb:67:de:d1 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.25/24 brd 192.168.1.255 scope global wlan0
valid_lft forever preferred_lft forever
inet6 fe80::ba27:ebff:fe67:ded1/64 scope link
valid_lft forever preferred_lft forever
無事 192.168.1.25になってますね
Macが好きすぎるのでここからはterminalから作業します
rootで作業開始
ssh 192.168.1.25 -l ubuntu
ログインし、インストール作業用にroot用パスワードを一時的に設定します
ubuntu@ubuntu:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
ubuntu@ubuntu:~$ su
New Relic Infrastrucutre導入
New Relicでおおまかな手順を確認
公式Docを見るとどうやらLicense Keyを作成しておく必要がありそうです、 作りましょう
License Keyの作成
New RelicにログインしKey作成画面にいきます
[Create Key]をクリックして
- Account : データ送信先のアカウント(複数運用している場合)
- Key type : Ingest - License (そのアカウントにデータを送信するためのキー[4])
- Name : わかりやすい名前をつけましょう
を入力しCreate Keyをクリック
最後に作成したキーの ... をクリックしてCopyすればKeyをゲットできます
Newrelic-infra.ymlへの設定
ライセンスキーをnewrelic-infra設定ファイルへ書き込んでおきましょう。
echo "license_key: さっき取得したライセンスキー” | sudo tee -a /etc/newrelic-infra.yml
root@ubuntu: echo "license_key: 〜〜〜” | sudo tee -a /etc/newrelic-infra.yml
license_key: 〜〜〜
ubuntu@ubuntu:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.2 LTS"
GPG keyの設定
curl -s https://download.newrelic.com/infrastructure_agent/gpg/newrelic-infra.gpg | sudo apt-key add -
OK
手動なのでいらないかも?とりあえず設定します
New Relic Infrastructure Agentのインストール
Infrastructure AgentのArm64版を探しにNew Relicにいきます
1.15.2がありましたのでURLをコピーしておきます
wget http://download.newrelic.com/infrastructure_agent/binaries/linux/arm64/newrelic-infra_linux_1.15.2_arm64.tar.gz
root@ubuntu: wget http://download.newrelic.com/infrastructure_agent/binaries/linux/arm64/newrelic-infra_linux_1.15.2_arm64.tar.gz
--2021-03-13 15:57:35-- http://download.newrelic.com/infrastructure_agent/binaries/linux/arm64/newrelic-infra_linux_1.15.2_arm64.tar.gz
(略)
newrelic-infra_linux_1.15.2_arm64.tar.gz 100%[==========================================================================================================>] 19.55M 5.75MB/s in 3.5s
2021-03-13 15:57:42 (5.62 MB/s) - ‘newrelic-infra_linux_1.15.2_arm64.tar.gz’ saved [20496095/20496095]
レンチンします
tar xvzf newrelic-infra_linux_1.15.2_arm64.tar.gz
root@ubuntu: tar xvzf newrelic-infra_linux_1.15.2_arm64.tar.gz
newrelic-infra/
newrelic-infra/etc/
(略)
newrelic-infra/installer.sh
configにライセンスキーを入れます
vi config_defaults.sh
(略)
# New Relic Infrastructure license key.
# Corresponding env var: '$NRIA_LICENSE_KEY'
#
license_key="取得したライセンスキー"
コメントアウトを外してNew Relicで取得したライセンスキーを入れます
インストールスクリプトを流します
root@ubuntu: ./install.sh
New Relic UI上で動作確認
New Relic UIでチェック
New Relicにログインし、ExplorerからHostsをみてみます
バッチリ取れています
全てデフォルトの状態で何が取れているかみてみましょう
[Explorer] から [Infrastructure]を選ぶと基本的なメトリクスがみられます
[Events]ではホストに対して行われた構成変更やサービス起動停止イベントなどが見られます
青が濃いほどその時間枠で多くのイベントが発生しています
[Inventory]タブからは構成情報が詳細に見られます
[Network]タブでインターフェース毎の詳細が把握できます
[Processes]タブで「プロセス毎!!」の詳細情報が観測できます
Next Steps
普通にRPiで遊んでいるとなかなか構成状況やリソース、プロセスなど見えなくなりがちなので常に観測できるのは気持ちいいですね
次は実際にアラートを仕込んでみたいと思います
あとUbuntu Server on RPi 3BでNew Relicを入れてもかなりリソースに余裕はありそうです
Discussion