Merge branch 'release-2'
This commit is contained in:
		
						commit
						c97137f4a7
					
				@ -61,7 +61,7 @@ const AuthenticationType = {
 | 
				
			|||||||
    OpenSystem_1: "OpenSystem_1",
 | 
					    OpenSystem_1: "OpenSystem_1",
 | 
				
			||||||
    OpenSystem_2: "OpenSystem_2",
 | 
					    OpenSystem_2: "OpenSystem_2",
 | 
				
			||||||
    Unknown: "Unknown",
 | 
					    Unknown: "Unknown",
 | 
				
			||||||
}
 | 
					};
 | 
				
			||||||
class AuthenticationPacket extends Packet{
 | 
					class AuthenticationPacket extends Packet{
 | 
				
			||||||
    authenticationType;
 | 
					    authenticationType;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -81,7 +81,7 @@ const HandshakeStage = {
 | 
				
			|||||||
    2: "2",
 | 
					    2: "2",
 | 
				
			||||||
    3: "3",
 | 
					    3: "3",
 | 
				
			||||||
    4: "4"
 | 
					    4: "4"
 | 
				
			||||||
}
 | 
					};
 | 
				
			||||||
class HandshakePacket extends Packet{
 | 
					class HandshakePacket extends Packet{
 | 
				
			||||||
    handshakeStage;
 | 
					    handshakeStage;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@ const logger = logFactory("main");
 | 
				
			|||||||
const { requireEnvVars } = require("./helper/env.js");
 | 
					const { requireEnvVars } = require("./helper/env.js");
 | 
				
			||||||
const { exit } = require("process");
 | 
					const { exit } = require("process");
 | 
				
			||||||
const { exec } = require("./helper/exec.js");
 | 
					const { exec } = require("./helper/exec.js");
 | 
				
			||||||
 | 
					const Os = require("os");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const { InfluxDB } = require("@influxdata/influxdb-client");
 | 
					const { InfluxDB } = require("@influxdata/influxdb-client");
 | 
				
			||||||
const InfluxChecks = require("./helper/influx-checks.js");
 | 
					const InfluxChecks = require("./helper/influx-checks.js");
 | 
				
			||||||
@ -23,6 +24,7 @@ const env = process.env;
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    env.LOGLEVEL            ??= "INFO";
 | 
					    env.LOGLEVEL            ??= "INFO";
 | 
				
			||||||
    env.WIFI_INTERFACE      ??= "wlan0";
 | 
					    env.WIFI_INTERFACE      ??= "wlan0";
 | 
				
			||||||
 | 
					    env.HOSTNAME            ??= Os.hostname();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
// Required vars
 | 
					// Required vars
 | 
				
			||||||
let errorMsg = requireEnvVars([
 | 
					let errorMsg = requireEnvVars([
 | 
				
			||||||
@ -56,6 +58,9 @@ if(errorMsg){
 | 
				
			|||||||
            exit(1);
 | 
					            exit(1);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    logger.debug("Get WriteApi & set default-hostname to", `'${env.HOSTNAME}'`);
 | 
				
			||||||
 | 
					    const influxWriteApi = influxDb.getWriteApi(env.INFLUX_ORG, env.INFLUX_BUCKET, "us");
 | 
				
			||||||
 | 
					    influxWriteApi.useDefaultTags("hostname", env.HOSTNAME);
 | 
				
			||||||
    logger.info("Influx ok");
 | 
					    logger.info("Influx ok");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    logger.info("Starting tcpdump..");
 | 
					    logger.info("Starting tcpdump..");
 | 
				
			||||||
@ -67,7 +72,7 @@ if(errorMsg){
 | 
				
			|||||||
    let regexBlockStream = new RegexBlockStream(/^\d{2}:\d{2}:\d{2}.\d{6}.*(\n( {4,8}|\t\t?).*)+\n/gm);
 | 
					    let regexBlockStream = new RegexBlockStream(/^\d{2}:\d{2}:\d{2}.\d{6}.*(\n( {4,8}|\t\t?).*)+\n/gm);
 | 
				
			||||||
    let packetStreamFactory = new PacketStreamFactory();
 | 
					    let packetStreamFactory = new PacketStreamFactory();
 | 
				
			||||||
    let packetInfluxPointFactory = new PacketInfluxPointFactory();
 | 
					    let packetInfluxPointFactory = new PacketInfluxPointFactory();
 | 
				
			||||||
    let influxPointWriter = new InfluxPointWriter(influxDb, env.INFLUX_ORG, env.INFLUX_BUCKET);
 | 
					    let influxPointWriter = new InfluxPointWriter(influxWriteApi);
 | 
				
			||||||
    proc.stdout
 | 
					    proc.stdout
 | 
				
			||||||
        .setEncoding("utf8")
 | 
					        .setEncoding("utf8")
 | 
				
			||||||
        .pipe(regexBlockStream)
 | 
					        .pipe(regexBlockStream)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
const logger = require.main.require("./helper/logger.js")("InfluxPointWriter");
 | 
					const logger = require.main.require("./helper/logger.js")("InfluxPointWriter");
 | 
				
			||||||
const { Writable } = require("stream");
 | 
					const { Writable } = require("stream");
 | 
				
			||||||
const {InfluxDB, Point, HttpError} = require("@influxdata/influxdb-client");
 | 
					const { WriteApi } = require("@influxdata/influxdb-client");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Get points and write them into influx
 | 
					 * Get points and write them into influx
 | 
				
			||||||
@ -8,16 +8,13 @@ const {InfluxDB, Point, HttpError} = require("@influxdata/influxdb-client");
 | 
				
			|||||||
class InfluxPointWriter extends Writable{
 | 
					class InfluxPointWriter extends Writable{
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 
 | 
					     * 
 | 
				
			||||||
     * @param {InfluxDB} influxDb InfluxDb
 | 
					     * @param {WriteApi} writeApi WriteAPI from InfluxDB instance
 | 
				
			||||||
     * @param {string} org Organization to use
 | 
					 | 
				
			||||||
     * @param {string} bucket Bucket to use
 | 
					 | 
				
			||||||
     * @param {Partial<WriteOptions>} options Options for WriteApi
 | 
					 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    constructor(influxDb, org, bucket, options){
 | 
					    constructor(writeApi){
 | 
				
			||||||
        super({
 | 
					        super({
 | 
				
			||||||
            objectMode: true
 | 
					            objectMode: true
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        this._api = influxDb.getWriteApi(org, bucket, "us", options);
 | 
					        this._api = writeApi;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    _write(point, encoding, next){
 | 
					    _write(point, encoding, next){
 | 
				
			||||||
 | 
				
			|||||||
@ -4,24 +4,24 @@ const {Point} = require("@influxdata/influxdb-client");
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/** Keys to always use as tags */
 | 
					/** Keys to always use as tags */
 | 
				
			||||||
const TAG_LIST = [
 | 
					const TAG_LIST = [
 | 
				
			||||||
    "srcMac",
 | 
					    "srcmac",
 | 
				
			||||||
    "dstMac",
 | 
					    "dstmac",
 | 
				
			||||||
    "bssid",
 | 
					    "bssid",
 | 
				
			||||||
    "frequency",
 | 
					    "frequency",
 | 
				
			||||||
    "flags",
 | 
					    "flags",
 | 
				
			||||||
    "packetType",
 | 
					    "packettype",
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** Measurement-name and corresponding field-key */
 | 
					/** Measurement-name and corresponding field-key */
 | 
				
			||||||
const MEASUREMENT_MAP = new Map([
 | 
					const MEASUREMENT_MAP = new Map([
 | 
				
			||||||
    ["Signal", "signal"],
 | 
					    ["rfmon_signal_dbm", "signal"],
 | 
				
			||||||
    ["PayloadSize", "payloadSize"],
 | 
					    ["rfmon_payloadsize_bytes", "payloadSize"],
 | 
				
			||||||
    ["DataRate", "dataRate"],
 | 
					    ["rfmon_datarate_bytes", "dataRate"],
 | 
				
			||||||
    ["SSID", "ssid"],
 | 
					    ["rfmon_ssid_names", "ssid"],
 | 
				
			||||||
    ["AuthenticationType", "authenticationType"],
 | 
					    ["rfmon_authenticationtype_info", "authenticationType"],
 | 
				
			||||||
    ["AssociationSuccess", "associationIsSuccessful"],
 | 
					    ["rfmon_associationsuccess_bools", "associationIsSuccessful"],
 | 
				
			||||||
    ["DisassociationReason", "disassociationReason"],
 | 
					    ["rfmon_disassociationreason_info", "disassociationReason"],
 | 
				
			||||||
    ["HandshakeStage", "handshakeStage"],
 | 
					    ["rfmon_handshakestage_info", "handshakeStage"],
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user