LoginSignup
3
1

More than 5 years have passed since last update.

RaspberryPiでWiFiのRSSIを取得してMackerelに送信する

Posted at

はじめに

RaspberryPiを自宅サーバとして運用していますが、構造上の都合で無線LANでインターネットに接続しています。
そのため、WiFiの電波強度をMackerelに送信するプラグインを作りました。

コード

私はNode.jsが好きなので、Nodeで作りました。
ソースはgithubにあります。
mackerel-rssi-notifier github

main.js
const fs = require('fs');
const readline = require('readline');
const rs = fs.createReadStream('/proc/net/wireless');
const rl = readline.createInterface(rs, {});

let lineNo = 0;
rl.on('line', (line) => {
    lineNo++;
    if (lineNo === 3) {
        let data = line.split('.');
        let rssi = data[1].trim();

        const epoch = new Date();

        console.log('wifi.rssi\t' + rssi + '\t' + epoch.getTime());
    }
});

/proc/net/wireless にWiFi関係の情報が含まれているので、これを読み込んで、文字列解析しています。
あとは、Mackerelの設定ファイルにプラグインの情報を記述します。

mackerel-agent.conf
# 略
[plugin.metrics.wifi]
command = ["node","/hoge/mackerel-rssi-notifier/main.js"]

最後に、Mackerelを再起動すれば完了です。
Mackerelでは以下のように表示されます。
image.png

参考サイト

以下のサイトを参考にしました。ありがとうございました。
信号強度の取得 - 汁ごはん
ストリームを行ごとに処理~readline編~ - Qiita

3
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
3
1