1.整个性能和实体监控采用一个source设计
(1)主机实体采集定义开关,http发送,入mysql 每次做update
host_entity_collect=on
host_entity_collect_interval=24h
(2)主机性能采集,入es ,配置日志规则解析
host_performan_collect=on
host_performan_collect_interval=1m
(3)进程实体采集,http发送,入mysql 每次做update
process_entity_collect=on
process_entity_collect_interval=24h
process_collect_keys=*** ps关键字可配置多个进程 api ,用作进程性能和进程实体
设计进程关键字配置规则和解析规则
设定进程关键字通过命令获取进程实体信息
ps -aux |grep smartlog-api-6.0.0-SNAPSHOT.jar |grep Xbootclasspath 单个进程
ps -aux |grep nginx|grep -E “worker|master” 多个进程
实体字段设计:
(1)实体主表( 主机IP 进程名称 联合唯一索引,agent启动做检查)
主机IP 进程名称 关键字配置 创建时间 ,更新时间 , 描述 获取失败和获取成功
(2)实体附表
主机IP
进程名称
进程PID
进程启动参数
监听端口号(通过命令获取 netstat -nap | grep 3110|grep LISTEN | awk ‘{print $4}’ , 写正则取端口号)
状态 (活动、未活动)
进程启动时间
启动用户
更新时间,入库字段
创建时间,入库字段
(4)进程性能采集,入es ,配置日志规则解析
根据进程关键字获取到PID,调用OSHI获取性能数据
process_performan_collect=on
process_performan_collect_interval=1m
process_performan_collect_keys=*** ps关键字可配置多个进程,和进程实体一致kafka
1)es字段设计
进程名称、进程参数、进程CPU、进程MEMORY、进程CPU百分比,进程MEMORY百分比
2)通过配置的命令获取进程ID,通过OSHI获取进程的CPU MEMORY
List procs = Arrays.asList( os.getProcess(25436));
(5)拓扑关系实体和更新
各个AGENT分批采上报主机,主机开启进程同步找关系存储到关系表
netstat -nap | grep 28522|grep ESTABLISHED
lsof -p 4041 -nP | grep TCP
netstat -antp | grep 2181
::ffff:10.0.0.161:34392 ::ffff:10.0.0.162:9092 hash形成关系和162采集的数据匹配得到
一条from to
(10.0.0.161-kafka-pid-ports(9092 3902))
10.0.0.161-kafka(from )-------10.0.0.162-kakfak(to)
::ffff:10.0.0.161:36973 ::ffff:10.0.0.161:2181
10.0.0.161-kafka (from )-------10.0.0.162-zookeeper(to)
更新:和历史distinct对比,历史有的,当前批次没有,就设置为灰色
设置为端口号和端口号的连接
(6)遗留问题,更新和删除怎么办
(7)拓扑图,需要人为参与吗,
需要,可以认为划线,和自动采集的线颜色区分,且无法告警
不支持新建实体连线,必须配置采集