$ ssh volumio@192.168.2.117 volumio@192.168.2.117's password: ___ /\_ \ __ __ __ ___\//\ \ __ __ ___ ___ /\_\ ___ /\ \/\ \ / __`\\ \ \ /\ \/\ \ /' __` __`\/\ \ / __`\ \ \ \_/ |/\ \L\ \\_\ \_\ \ \_\ \/\ \/\ \/\ \ \ \/\ \L\ \ \ \___/ \ \____//\____\\ \____/\ \_\ \_\ \_\ \_\ \____/ \/__/ \/___/ \/____/ \/___/ \/_/\/_/\/_/\/_/\/___/ Free Audiophile Linux Music Player - Version 2.0 C 2015 Michelangelo Guarise - Volumio Team - Volumio.org
以前にNanoPi NEO2用にFilebeatをビルドする記事を書いたが、同じやり方でMetricbeatをビルドできるかと思ったらNaniPi NEO2 (armbian)ではエラーが出てビルドできなかった。
Goに詳しくなくてエラーメッセージからは何が悪いのか推測できなかったのでNaniPi NEOではなくデスクトップPCとして常用している Gekko Linux (openSUSE亜種)でビルドすることにした。ビルドにあたりGo (golang)とgitをインストールした。
なお、記事の題名にはVolumioと書いているが実はMetricbeatがVolumioと関係する部分は全く無い。armまたはarm64のLinuxなら殆ど動くかと。(次のFilebeatの記事でVolumioが関係する予定)
$ printenv | grep GOPATH #環境変数を表示 $ export GOPATH=$HOME/go #GOPATHが未設定の場合に実行 #またはGOPATHが2つ以上のPathならホームディレクトリ下のgoを再指定 # arm用(RPi0Wなど)の作業ディレクトリの準備例 (ビルド環境が64bitのLinuxでgo1.9の場合) $ sudo mkdir /usr/lib64/go/1.9/pkg/linux_arm $ sudo chmod 777 /usr/lib64/go/1.9/pkg/linux_arm # arm64用 (NanoPi NEO2など)の作業ディレクトリの準備例 (ビルド環境が64bitのLinuxでgo1.9の場合) $ sudo mkdir /usr/lib64/go/1.9/pkg/linux_arm64 $ sudo chmod 777 /usr/lib64/go/1.9/pkg/linux_arm64 $ mkdir -p ${GOPATH}/src/github.com/elastic $ cd ${GOPATH}/src/github.com/elastic $ git clone https://github.com/elastic/beats.git $ cd ./beats/metricbeat #ビルド $ GOOS=linux GOARCH=arm make #arm用 (RPi0Wなど) # or $ GOOS=linux GOARCH=arm64 make #arm64用 (NanoPi NEO2)など #完成したmetricbeatをとりあえずホームディレクトリにコピー $ cp -p metricbeat ~/ $ cp metricbeat.yml ~/
ホームディレクトリに置いた2つのファイル(metricbeat.ymlは正直どうでもいい)をRPi0WやNanoPi NEO2などに何らかの方法でコピーする。
もしもvolumioからftpを使うなら先に apt-get install ftp しておく。
Volumioのホスト側の設定
ここからはMetricbeatをインストールするホスト、Volumio(Raspbian?)が動くRPi0Wやarmbianの動くNanoPi NEO2の側の設定。
metricbeatを /usr/local/bin/ に置く。この記事では /usr/local/bin/としたが、任意の場所で可。ただし、下のサービス設定ファイル内のpathもそれに合わせること。
# mv metricbeat /usr/local/bin/ # chmod +x /usr/local/bin/metricbeat #実行権限を付けるのを忘れずに # mv metricbeat.yml /etc/ #これはどうでもいい # mkdir /etc/beats # mkdir /var/lib/metricbeat # metricbeat version #バージョン確認 metricbeat version 7.0.0-alpha1 (arm), libbeat 7.0.0-alpha1 [5426852a0971bb148b6ca60590ee47f68e6eaf24 built 2018-03-16 02:37:25 +0000 UTC]
Metricbeatのサービス設定
/lib/systemd/system/metricbeat.service (新規作成)1 2 3 4 5 6 7 8 9 10 11 12 | [Unit]
Description=metricbeat
Documentation=https://www.elastic.co/guide/en/beats/metricbeat/6.2/index.html
Wants=userwork-online.target
After=network-online.target
[Service]
ExecStart=/usr/local/bin/metricbeat -path.home /var/db/beats/metricbeat -path.config /etc
Restart=always
[Install]
WantedBy=multi-user.target
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | metricbeat.config.modules:
path: ${path.config}/beats/metric_*.yml #標準的な構成と違うので注意
reload.enabled: false
processors:
- drop_fields:
fields: ["metricset.rtt", "beat.name", "beat.version"]
#全般の出力不要なフィールド名を指定
output.logstash:
hosts: ["192.168.2.24:5043"] #テスト用Logstash 192.168.2.24 ポート5043
# hosts: ["192.168.2.24:5044"] #本番用Logstash 192.168.2.24 ポート5044
logging.level: debug
logging.selectors: ["*"]
logging.to_syslog: false
logging.to_files: false #動作確認段階ではtrueにしておく
logging.files:
path: /var/log
name: #↑trueにすると/var/log/metricbeat.logにログ出力
|
ログの出力は動作確認時だけ。ファイルが肥大化するので通常稼働時には出力させない。
/etc/beats/metric_system.yml (新規作成)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | - module: system
metricsets: ["cpu"]
cpu.metrics: [percentages, normalized_percentages, ticks]
enabled: true
period: 60s
- module: system
metricsets: ["filesystem"]
enabled: true
period: 60s
- module: system
metricsets: ["fsstat"]
enabled: false #←無効にした
period: 60s
- module: system
metricsets: ["load"]
enabled: true
period: 60s
- module: system
metricsets: ["memory"]
enabled: true
period: 60s
- module: system
metricsets: ["network"]
enabled: true
period: 60s
- module: system
metricsets: ["process"]
enabled: true
period: 60s
processors:
- drop_fields: #↓(MetricSet別) processで出力しないフィールド名を指定
fields: ["system.process.cmdline", "system.process.cwd","system.process.cpu", "system.process.pid", "system.process.ppid", "system.process.pgid", "system.process.username", "system.process.fd"]
- module: system
metricsets: ["uptime"]
enabled: true
period: 60s
|
# systemctl enable metricbeat #サービス有効化 # service metricbeat start #サービス開始
Kibanaでグラフ化
Vilumioに仕掛けたMetricbeatから送信される情報をLogstashで受け取るが、Metricbeatのデータは加工無しでいける筈。
で、Kibanaの側だが、すでに作成済みの推移データを見るためのVisualizeはTimeLionあたりが使われているかと思われるので、既存の他のホストのVisualizeを開いてクエリーのホスト名だけあるいは単位周りを少し修正して新しいVisualizeとして保存すれば1つのVisualizeあたり1分もかからずに作成できる筈。まさか何でもかんでもSearchオブジェクトを保存してそれを使ってArea Chart等のVisualizeを作成してないよね?
ダッシュボードに貼り付けるとこんな感じ。
ということで、Volumioが動いているRaspberry Pi Zero WをELK Stackで監視できるようになった。
Metricbeatで1分に1度の頻度で情報を取得するように設定したが、Volumioで音楽再生中に1分ごとに音が途切れるとかそういうのは如何にRaspberry Pi Zero Wが非力とはいえどさすがに無いみたい。もしかしたら世の中にたくさんいらっしゃるらしい人の能力を遥かに超えた耳を持つオーディオマニアさんなら ゆらいでない音のゆらぎ、途切れてない音の途切れ、ありもしない音の違いをはっきり聞き分けられるのかもしれないけど。
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (後編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (中編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (前編)
- Metricbeatで収集したメトリクスデータをKibanaで可視化する
- Kibanaを操作する前にユーザーを作成する
- Metricbeat 8.6.0のインストールと設定
- Elastic Stack 8系をFreeBSDにインストール
- Volumioのライブラリ管理をメディアサーバに任せる
- Volumioでコンピレーションアルバムを増殖させないメタデータ
- Volumioにウェブラジオ局を登録
- Volumioのログをローテートする
- Prometheus2とGrafana6によるシステム監視 シングルボードコンピュータの温度表示
- Volumioでradio paradiseを高品質な音で聴く
- Volumioの時刻設定
- Elastic Stack 6.4.2への更新 FreeBSD ports用メモ
- WinlogbeatでWindowsイベントログを可視化 後編
- WinlogbeatでWindowsイベントログを可視化 中編
- WinlogbeatでWindowsイベントログを可視化 前編
- Elastic Stackを6.3.2に更新する
- Linuxでオーディオファイルにタグを付ける (ファイル名から)
- Elastic Stackでシステム監視 Heartbeatで収集した死活情報をKibanaで可視化
- Elastic Stackでシステム監視 Heartbeatを使う準備
- Elastic Stackでシステム監視 FreeBSDのportsで6.2.3に更新
- ELK Stackでシステム監視 Filebeatで収集したVolumioのログから時系列の再生曲名リストを表示
- VolumioのYoutubeプラグインを使ってみる
- VolumioのIPアドレスを調べて接続する
- ELK Stackでシステム監視 Rspamd 1.7系のElasticsearchモジュールを試す
- ELK Stackでシステム監視 FilebeatでNTP統計ログ取得 Logstashで加工
- ELK Stackでシステム監視 FilebeatでRaspberry Pi Zero WのVolumio楽曲再生ランキング
- ELK Stackでシステム監視 MeticbeatでRaspberry Pi Zero WのVolumioを監視