RaspberryPi에서 WiFi의 RSSI를 얻고 Mackerel에 보내기

소개



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에서는 다음과 같이 표시됩니다.


참고 사이트



다음 사이트를 참고로 했습니다. 고마워요.
신호 강도 획득 - 주스 밥
스트림을 행별로 처리 ~readline편~ - Qiita

좋은 웹페이지 즐겨찾기