Well,不要刷屏了

想要统计服务器进程信息,不知道怎样设计字段

Elasticsearch | 作者 wangxinrong | 发布于2019年08月21日 | 阅读数:916

目前我有个需求,想要跑脚本统计服务器上运行的非系统进程的列表,上报到ES。希望能达到的查询目标有几个:
1.上报的信息有进程名称(例如crond),进程cmd(例如/usr/sbin/crond -n)
2.可以比较方便地看出一台服务器上运行了哪些进程,和详细的进程cmd信息
3.可以查看存在指定进程的服务器列表
4.希望能在查询条件里,给个进程列表作为排除项,例如给个列表a,b,c,d,属于每台服务器都有的,如果上报的信息只有这4个进程的,我认为是空闲服务器。希望a)显示时排除掉这4个进程信息,b)显示出除这4个进程外还有其他进程的服务器

目前我是计划,如果有a,b,c这3个进程,上报信息里有这些字段
hostip: 1.1.1.1
proc_list: a,b,c
a: a-cmd
b: b-cmd
c: c-cmd
 
查询时
1、2两点比较好实现,3也可以用_exists_:a选出带有a这个进程名称字段的记录
现在问题是4不太清楚在我现有的格式下是否有办法查询到,如果没有的话怎样设计可以达到目标,希望有人能给帮忙指点下
已邀请:

God_lockin

赞同来自:

query/filter:
  must_not:
    terms: [a,b,c,d]
 
这样写dsl不能实现么?
 
或者
 
你在数据采集的时候直接 top | grep -v a | grep -v b ....呢?

wangxinrong

赞同来自:

其实第4点,主要的查询目标是,我是希望筛选出proc_list中排除掉a,b,c,d之后,不为空的记录。
比如输入某个查询条件后,proc_list:a,b,c,d的就不显示,proc_list:a,b,c,d,e,f的就显示出来。

God_lockin

赞同来自:

打标签就是,所有的进程都做独立的记录,abcd的打上ignore标记,搜的时候加上must_not flag = ignore

wangxinrong

赞同来自:

现在的主要问题我要排除的内容是动态变化的,我是想脚本统计时所有内容都无差别的提交,然后能在ES里根据需要筛选
比如根据abc,或者是abcd,或者是其他的组合来筛选

God_lockin

赞同来自:

那你只能把每个进程切一个名字出来单独存,然后在取的时候根据名字来做should/must/must_not的筛选来
 

要回复问题请先登录注册