用nodejs自创飞鱼星日志服务器记录日志
飞鱼星官方日志服务器为win软件,无法顺利在linux上运行,甚至在win7上运行也无法成功
废话少说,简单记录
0、选型:nodejs(dgram、mysql)、mysql、forever
1、安装nodejs、npm(win、linux),自行脑补
2、抓包udp,使用到了wireshark 下载地址https://1.na.dl.wireshark.org/win64/Wireshark-win64-2.2.4.exe
分析包内容 type1:4Byte,type2:4Byte,ip:32Byte,msg:剩余,端口:服务器20000,客户端2000
3、分析官方vls数据表结构得到基本元素(ip,type1,type2,msg)(最终没使用其官方表结构)
4、创建项目目录/path/to/vls,初始化项目,否则npm报错(win),npm init -f
5、npm安装dgram以处理UDP包npm install dgram -g
6、npm安装mysql以连接数据库npm install mysql -g
7、服务端代码后附
8、防火墙(如果有,请开放200000端口,请自行脑补)
9、安装forever npm install forever -g
10、创建自启动脚本/etc/init.d/vls并设置可执行权限,代码后附
11、启动service vls start
12、设置开机自启动chkconfig vls on
服务端代码
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
const mysql = require('mysql');var conn = mysql.createConnection({host:'localhost', user:'root', password:'', database:'vls', port:'3306'}//修改成自己的数据库信息
);
conn.connect();
server.on('error', function(err) {console.log('server error:\n'+$err.stack);server.close();
});server.on('message', function (msg, rinfo) {if(rinfo.address=='*.*.*.*' && rinfo.port=='2000'){//修改成设备ipvar s1 = msg.slice(0,4);var s2 = msg.slice(4,8);var s3 = msg.slice(8,40);var s4 = msg.slice(40);conn.query('insert into test (ip,type1,type2,msg) values(?, ?, ?, ?)',[s3.toString().replace(/\s+$/g,""),s1.readInt32BE(0),s2.toString('hex'),s4.toString().replace(/\s+$/g,"")],function(error,results,fields){});console.log('server got: %d from %s:%d',msg.length,rinfo.address,rinfo.port);}
});server.on('listening', function() {var address = server.address();console.log('server listening %s:%d',address.address,address.port);
});server.on('close', function(msg) {console.log('server has been closed %s',msg);
});server.bind(20000);
自启动脚本
#!/bin/bash
#
# node Start up node server daemon
#
# chkconfig: 345 85 15
# description: Forever for Node.js
#
PATH=/usr/bin
DEAMON=/path/to/vls/vls.js
LOG=/var/log/vls
PID=/var/run/vls.pidcase "$1" instart)forever start -l $LOG/vls.log -o $LOG/vls_out.log -e $LOG/vls_err.log --pidFile $PID -a $DEAMON;;stop)forever stop --pidFile $PID $DEAMON;;stopall)forever stopall --pidFile $PID;;restartall)forever restartall --pidFile $PID;;reload|restart)forever restart -l $LOG/vls.log -o $LOG/vls_out.log -e $LOG/vls_err.log --pidFile $PID -a $DEAMON;;list)forever list;;*)echo "Usage: /etc.init.d/vls {start|stop|restart|reload|stopall|restartall|list}"exit 1;;
esac
exit 0
数据库(索引自己加)
create table vls (id bigint(20) auto_increment primary key, ip char(15) not null default '',type1 int(8) not null default 0,type2 binary(8) not null default '\0\0\0\0\0\0\0\0',msg char(576) not null default '',dateline timestamp not null default CURRENT_TIMESTAMP);
更深入的分析请自行脑补
用nodejs自创飞鱼星日志服务器记录日志相关推荐
- nginx日志通过rsyslog传入到日志服务器指定目录
V5配置语法: 推送端设置 [root@nginx01 ~]# cat /etc/rsyslog.conf # rsyslog v5 configuration file # For more inf ...
- RHEL5 下使用syslog-ng构建集中型日志服务器
RHEL5 下使用syslog-ng构建集中型日志服务器 在生产环境中,存在一台日志服务器,专门用来记录其他服务器的日志信息是个很好的主意,不过用红帽自带的syslog,配置虽然简单,但是日志却没有办 ...
- Linux日志服务器的搭建
目录 一. 日志的简介及作用: 二.了解日志: (1)日志文件分类:/var/log/ (2)日志管理服务:管理和记录日志文件 vim /etc/rsyslog.conf (3) 日志记录的日志级别: ...
- 用freebsd搭建日志服务器
在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的日志进行记录分类并审核,默认情况下,每个系统会在本地硬盘上记录自己的日志,这样虽然也能有日志记录,但是有很多缺点:首先是管理不便,当 ...
- 网站用户行为日志采集和后台日志服务器搭建
原文地址: 网站用户行为日志采集和后台日志服务器搭建 1.简介 网站流量数据统计分析,可以帮助网站管理员.运营人员.推广人员等实时获取网站流量信息,并从流量来源.网站内容.网站访客特性等多方面提供网站 ...
- Linux日志选项详解及日志服务器的实现
Linux日志服务器的实现 一:基本概念 1: 软件包 syslogd 2: /etc/syslog.conf 配置文件 格式:facility.level action (设备. 优先级动作) ...
- 华为日志服务器文档,免费日志服务器
免费日志服务器 内容精选 换一换 主机和云服务的日志数据,不方便查阅并且会定期清空.云日志服务采集日志后,日志数据可以在云日志控制台以简单有序的方式展示.方便快捷的方式进行查询,并且可以长期存储.对采 ...
- nodejs php web,nodejs实现的简单web服务器功能示例
本文实例讲述了nodejs实现的简单web服务器功能.分享给大家供大家参考,具体如下: 前端js代码: $.ajax({ url:'http://192.168.0.114:3000',//服务器地址 ...
- 华为 日志服务器 配置文件,配置日志服务器
配置日志服务器 内容精选 换一换 您可以通过云日志服务,查看访问七层共享型负载均衡请求的详细日志记录,分析负载均衡的响应状态码,快速定位异常的后端服务器.您已经创建了七层负载均衡.您已经开通了云日志服 ...
最新文章
- TensorFlow优化器及用法
- NGS的测序仪和相关技术时间轴 NGS相关数据库和项目时间轴
- 《战狼2》电影观后感
- mysql悲观锁 更新_MySQL学习笔记(四)悲观锁 for update
- 电脑换ip_代理ip地址怎么换
- 执行点击事件,第一次点击后,一切正常,第二次点击,执行两次,以此类推
- dubbo 分组后,dubbo-admin 看不到服务
- 以中划线开头正则表达式_正则表达式 汉字、数字、字母、横杠
- 【转】VC2008 配置OpenGL环境
- 服装智能制造开启服装企业信息化建设
- Shapley Values
- e430c参数 thinkpad_联想ThinkPad E430c(33651E1)
- Allegro模块镜像详细操作教程
- 2020蚂蚁森林自动收能量-保持更新
- 51单片机实训day2——创建Proteus工程以及Proteus基本控件的使用|单片机最小系统电路设计:电源配置 复位电路 晶振电路
- 什么是证券投资基金?
- 美国政府正在亲手扼杀互联网创新
- Vue 添加时间轴 vue-light-timeline
- 物联网的安全问题引起争论,这些威胁有待解决...
- qsql 关联_QT之QSqlTableModel与tableview的使用