UNPKG

cloud-log-collector

Version:

Collect log from mutiple servers

69 lines (53 loc) 1.83 kB
#!/usr/bin/env node var WebSocketClient = require('websocket').client; var Tail = require('tail-file'); var fs = require('fs'); // Load config var conf=JSON.parse(fs.readFileSync('/etc/clc/client.conf')); // log function logClient (data) { try { console.log((new Date()) + " - GetToken - " + data ); fs.appendFileSync('/var/clclog/gettoken.log', (new Date()) + " - GetToken - " + data + "\n"); } catch (err) { console.log(err); } } logClient('GetToken start'); // Websocket part var client = new WebSocketClient(); var connection={}; connection.connected=false; client.on('connectFailed', function(error) { logClient('Connect Error: ' + error.toString()); }); client.on('connect', function(connection2) { connection=connection2; logClient('WebSocket Client Connected'); connection.on('error', function(error) { logClient("Connection Error: " + error.toString()); }); connection.on('close', function() { logClient('echo-protocol Connection Closed'); }); connection.on('message', function(message) { if (message.type === 'utf8') { var tempo=JSON.parse(message.utf8Data); if ('error' in tempo) { logClient("remote error : "+tempo['error']); connection.close(); } if ('token' in tempo) { conf['client']['SecretClientKey']=tempo['token']; var config_client=JSON.stringify(conf,null,4); fs.writeFileSync("/etc/clc/client.conf",config_client); console.log('Token saved in config file'); connection.close(); require('child_process').execSync('systemctl restart CLCClient').toString(); } return; } }); connection.sendUTF("{\"magickey\":\""+process.env.CLCMagicToken+"\",\"hostname\":\""+process.env.CLCHostname+"\"}"); }); client.connect('wss://'+conf['server']['hostname']+':'+conf['server']['port']+'/', 'echo-protocol');