梅州终端信息采集

xzc d3bb91e207 2024-02-27 11:11:40 1 年之前
V1 b8dde7f56d second commit 1 年之前
V2 d3bb91e207 2024-02-27 11:11:40 1 年之前
README.md d3bb91e207 2024-02-27 11:11:40 1 年之前
compose.yaml d3bb91e207 2024-02-27 11:11:40 1 年之前

README.md

梅州电网IT终端行为采集分析

环境

docker 23.02
python 3.7
rocketmq 5.1.4
rocketmq-client-python 2.0.0
dmPython 2.5.5

数据库安装

docker load -i dm8_20230808_rev197096_x86_rh6_64_single.tar

docker run -d -p 30236:5236 \
    --name dm8_test \
    --privileged=true \
    -e PAGE_SIZE=16 \
    -e LD_LIBRARY_PATH=/opt/dmdbms/bin \
    -e EXTENT_SIZE=32 \
    -e BLANK_PAD_MODE=1 \
    -e LOG_SIZE=1024 \
    -e UNICODE_FLAG=1 \
    -e LENGTH_IN_CHAR=1 \
    -e INSTANCE_NAME=dm8_test \
    -v /data/dm8_test:/opt/dmdbms/data \
    dm8_single:dm8_20230808_rev197096_x86_rh6_64

kv中间件安装

docker run -itd -p 51002:51002 tencentdbforkv/tendisplus

原则:

  1. 浏览器插件数据传到服务器前存在缓存时间,日志记录的时间以前端记录时间为准

  2. 时间片最小单位为 1s(单个用户在一秒内操作的频率不大于一)

  3. 时间片内的多次网络请求可以合并为一个用户操作(由原则一推理得出)

  4. 用户操作不可划分(由原则二推理得出)

  5. 业务操作由多个用户操作组成

  6. 底级菜单不完全等于业务操作

流式日志

用户操作的域(完成)

根据 Host 判断

用户操作菜单(完成)

根据 current_Url 切分判断 根据 form_data 切分判断

判断用户登录系统起始时间和结束时间

如果当前 url 在 10 分钟内变化率小于 5,则判断为登出状态 如果 tSession 变化,则判断为登出状态

判断业务进入和完成时间

判断当前 url 和 target_url

一般页面跳转条件判断: 1、假设网络请求按时间顺序发生,设定一个全局 URL 2、当前 current_Url 与全局 URL 不一致, 则可以判断页面发生变化 3、日志中找到最近一条 请求地址URL 和当前 current_Url 相同的日志 4、该日志记录为页面跳转点击时间发生记录,记录此条记录,并将 current_Url 记录为全局 URL

特殊页面的跳转条件判断: 1、Ajax请求包含功能代码 2、判断请求参数或表单中是否包含功能代码 3、包含功能代码的请求为页面跳转请求

无法判断的情况: 1、Ajax页面请求,URL不变,并且无法判断功能代码 2、请求的url和最终显示的url不完全相同(去除session,去除cookie,如何判断是否可删?) 3、去除query不可行,页面的区分度就为query字段

业务项起始条件判断: 1、可以判断请求业务目录的起始时间(由请求参数解析),但无法判断是否开始执行具体业务 2、期间多次页面跳转发生 3、URL三级标题发生变化,业务目录终止

无法判断的情况: 1、Ajax页面的业务目录由表单体现,无法完成页面跳转判断 2、前端插件暂时无法判断请求是否由人工点击按钮产生(判断表单是否是人工提交困难,行为路径需判断人工提交表单的标志)

用户操作流程(行为路径分析)

根据 业务进入和完成时间 的结果进行统计 无法判断的情况: 1、在路径分析时,如果页面的跳转是由重定向产生,发起重定向的请求不是由人工点击的按钮的网络请求造成,则无法判断请求的数据是否为人工填写

用户其他设备操作(暂无技术方案)

FROM python:3.8.10-alpine

RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories

RUN apk add linux-headers build-base cmake automake autoconf libtool bzip2-dev zlib-dev boost-dev 

ADD 2.1.0.tar.gz /workspace

WORKDIR /workspace

RUN ./build.sh
FROM python:3.8.10-alpine
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
RUN apk add build-base py3-grpcio

操作流程: 1、先收集原始数据,BaseModel接收,dict传输,HDF缓存,DM存储 2、URL分解,将URL的地址和参数进行分离 3、时序排列,将请求按照时间进行排序 4、功能判定 5、结果发送

需关注: 1、http://10.10.21.23/gmp/static/hr/peixun/user/index.html(培训管理首页) 2、http://10.10.21.23/cbpm/flowTrack/#/ 3、http://10.10.21.23/gmp/static/gmpweb/workbench/personal/index.html(个人设置中心)

1、https://fms.gmp.cloud.hq.iv.csg/fms/accountweb/assets/components/core.workflow.engine/workflow/todo.html 2、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/assets/components/core.workflow.engine/workflow/todo.html 3、https://fms.gmp.cloud.hq.iv.csg/fms/accountweb/gris/mapp/accountweb/assets/components/core.workflow.engine/workflow/todo.html 4、https://fms.gmp.cloud.hq.iv.csg/fms/empreimburseweb/assets/necp/EfNavigateServlet 5、https://fms.gmp.cloud.hq.iv.csg/fms/empreimburseweb/assets/components/core.workflow.engine/workflow/todo.html 6、https://fms.gmp.cloud.hq.iv.csg/fms/avmfabusinessweb/assets/components/core.workflow.engine/workflow/todo.html 7、https://fms.gmp.cloud.hq.iv.csg/fms/taskweb/gris/mapp/taskprocessweb/nwyh/todowj/index.html#/todopage 8、https://fms.gmp.cloud.hq.iv.csg/fms/accountweb/gris/mapp/accountweb/bill/ViewBill.html 9、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/assets/components/core.workflow.engine/workflow/start.html 10、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/gris/mapp/constructfinance/assets/components/core.workflow.engine/workflow/todo.html 11、https://fms.gmp.cloud.hq.iv.csg/fms/cfsweb/gris/mapp/cfsweb/countervail/cooperation/confirm/xtcl.html 12、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/gris/mapp/constructfinanceweb/ywdj/NW_ProjectMonthApplyInput_PFM/ywdj_monthapplyJHN_PFM_CW.html 13、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/gris/mapp/constructfinanceweb/ywdj/NW_ProjectPayApproveInput_PFM/ywdj_payapprove_PFM.html 14、https://fms.gmp.cloud.hq.iv.csg/fms/budgetauditweb/assets/components/core.workflow.engine/workflow/start.html 15、https://fms.gmp.cloud.hq.iv.csg/fms/budgetauditweb/assets/components/core.workflow.engine/workflow/todo.html 16、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/pdf/PdfServlet/ 17、https://fms.gmp.cloud.hq.iv.csg/fms/accountweb/pdf/PdfServlet/ 18、https://fms.gmp.cloud.hq.iv.csg/fms/avmfabusinessweb/pdf/PdfServlet/ 19、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/gris/mapp/constructfinanceweb/ywdj/NW_CostReb_PFM/ywdj_costreb_CW_PFM.html 20、https://fms.gmp.cloud.hq.iv.csg/fms/pfmweb/gris/mapp/constructfinanceweb/ywdj/scpztydj/ywdj_nwScpztydj.html {menuId, menuName, requestURL} {id, name, appCode}

1、http://10.10.21.28/gmp/static/sp/operationmanage/prodplan/planmg/PlanMgGmpPlanEditForArrange.html 2、http://10.10.21.28/gmp/static/gmpweb/workbench/todo/TodoCenter.html