/** * required variables for credentials * file: credentials.js * imagedir: the directory where required image files exist * token: Token for LINE Notification API * url: Access URI for LINE Notification API */
/** * for monitored nodes * file: servers.js * * servers = [ * { * host:'192.168.1.1', //host address [editable] * threshold: 1, //counter triggered if 'count' exceeded the value [editable] * count: 0, //icmp req-timed-out counter * status: false, //current status (true:alive|false:dead) * needtosend: false, //boolean trigger for sending message * hasdead: false //whether the host has already dead (true:already dead|false:still alive) * }, * { * ... * }, ... * ] */ let servers=monitor.servers; let timer1=monitor.interval; //interval of ping execution let imageArray=['alive.jpg','dead.jpg']; //0:alive, 1:dead
letsendMessage=async (msg, imagefile)=>{ let message='テストメッセージ'; let imageFile=imageArray[0]; if(msg) message=msg; if(imagefile) imageFile=imagefile; let form=newformdata(); form.append('imageFile', fs.createReadStream(cred.imagedir + '/' + imageFile)); form.append('message', message); let headers = { 'Authorization': 'Bearer ' + cred.token, ...form.getHeaders(), }
//filename: credentials.js exports.token='XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; //LINE notification API exports.url='https://notify-api.line.me/api/notify'; //LIVE Notification API URI exports.imagedir='/tmp';
LINE側の設定は適宜行っていただきたい。
あとは監視する機器の設定
//filename: servers.js //modify below let monitored_servers = [ { host:'192.168.1.1', //host address [editable] threshold: 1, //counter triggered if 'count' exceeded the value [editable] }, { host:'192.168.1.2', threshold: 1, }, { host:'8.8.4.4', threshold: 1, } ]; let timer=5000; //interval for alive monitoring //modify above
let props={ count: 0, status: false, needtosend: false, hasdead: false }; let servers=[];