graylog是非常好用的数据处理平台,可以对数据进行:streams分类、pipeline、正则匹配、统计汇总、定制化配置Alerts 等处理。
graylog的一些概念:
索引(消息存储的位置,默认indices default)
streams(从inputs里面,通过stream rules匹配某些字段条件,route to streams)
1,stream 如何与 inputs 消息关联?
//通过 stream rules 字段匹配做关联,比如需要做falco stream,则可根据 program=Falco做分流
2,stream 如何与 索引 关联?
stream消息存储在指定的索引中,通过 Editing Stream 来指定 索引 Index Set
3,stream 与 pipeline 是什么关系?
如果配置了 pipeline,可以在 pipeline Edit connections 里面指定 stream
伪流程 stream msg -> pipeline rules opr -> stream msg storage index
stream rules 可以为消息填充一些数据字段,比如根据 ip 查 ip负责人等。
rule语句:lookup("cmd_risk_rank_analyze", cmdb64);
其中 cmd_risk_rank_analyze 是数据库表->Lookup Tables 的一个表名
Data Adapter 可以编辑具体发送远程请求的 url
4,pipeline 如何与 alert 关联 ?
配置就可以了,有选择的。
5,graylog 搜索使用正则表达式:
rule:"System procs network activity" AND output_fields_proc_cmdline:/bash -c.*/
注意,/reg表达式/
++++++++++++++++++++
具体问题:
1,如何解析 syslog message 的 fd 字段 ?
output
17:10:40.381138356: Notice (name=nginx p1=nginx p2=nginx p3=bash p4=docker-containe p5=docker-containe p6=dockerd pid=2518459 user=www loginuid=-1 tty=0 exepath=/usr/local/openresty_1.13.6.2/nginx/sbin/nginx cwd=/data1/htdocs/lua_v2/module/vip_user_idc_cn/ cmdline=nginx fd=10.24.78.203:41590->10.5.121.221:3306 l4p=tcp l3p=4 k8s_vip-user-idc-cn-batcha_vip-user-idc-cn-batcha-7cf754f9f8-65fwc_vipservice_c05b0ae3-0d05-40c8-84f6-511745224560_0 (id=09b5a1b70bc1) container_id=09b5a1b70bc1 image=43.docker.registry.idc.cn/basetechnical/vipservice/vip.user.idc.cn fd.num=1 fd.type=ipv4)
提取规则:
Condition
- Will only attempt to run if the message matches the regular expression fd=[0-9].*->[0-9]
Configuration
- grok_pattern: %{DATA}\sfd=%{IP:net_sip}:%{BASE10NUM:net_sport}->%{IP:net_dip}:%{BASE10NUM:net_dport}
- named_captures_only:
那么graylog 日志将新增4个字段,net_sip, net_sport, net_dip, net_dport,表示fd的4元组tupe信息
2,如何根据 net_dip 值,查询连接情报库,如果恶意则设置 threat_result:"threat" 字段?
2.1 首先配置 lookup Tables
Lookup Tables
Lookup tables can be used in extractors, converters and processing pipelines to translate message fields or to enrich messages.
查询威胁情报信息
根据ip,域名,MD5查询威胁情报
Data adapter
威胁情报查询
Cache
NotCache
Edit
主要是配置 Cache 方式 以及 Data adapter
威胁情报查询 (HTTP JSONPath)
Description
从威胁情报中心查询数据
Configuration
Lookup URL
http://10.5.140.173:13469/ThreatIntelligence/gpget?value=${key}
Single value JSONPath
$.res
Multi value JSONPath
$
2.2 再配置 Pipeline
pipeline 是非常强大的,分有多个stage,每个stage可以设置field值,在下一个stage中使用
pipeline 规则:
rule "connect_public_ip_search_threat_intelligence"
when
$message.gprule == "outbound connection" AND
to_string($message.net_dip, "unknown") != to_string($message.net_sip, "unknown")
then
let key = join(["ip", to_string($message.net_dip, "unknown")], "-");
let threati = lookup("threatintelligence_search", key);
set_field("threat_result", threati["res"]);
set_field("threat_result_from", threati["from"]);
set_field("threat_level", threati.extra.confidence_level);
set_field("threat_info", threati.extra.judgments);
set_field("threat_severity", threati.extra.severity);
end
2.3 总的数据流程
streams -> Pipeline connections -> stageN (rules)
+++++++++++++++++++++
graylog问题的一些排查:
@1,node节点端口有数据,但是界面上查询不到数据?
可能是 Nodes 节点挂了,需要重启:
ps axuf | grep graylog
rm -f /dev/shm/graylog.pid
kill -9 [graylog PID]
执行 /usr/local/graylog/bin/graylogctl start文章来源:https://www.toymoban.com/news/detail-655919.html
+++++++++++++++++++++++
graylog(ES)的一些查询技巧例子:
threat_result:"threat" AND NOT net_dip:/10\..*/ AND NOT busi2_name:"安全扫描" AND NOT busi_name:/.*竞品监控服务.*/ AND NOT output_fields_proc_cmdline:(/ping .*/ OR /nmap .*/ OR /HttpProxy .*/ OR /nginx/ OR /.*b-monitor.*/) AND ((threat_level:"high" AND threat_severity:"high") OR (NOT threat_result_from:"weibu"))文章来源地址https://www.toymoban.com/news/detail-655919.html
到了这里,关于中间平台工具 - graylog的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!