一、日志监控分析原理已经功能介绍
对ossec得日志监控和分析 log monitoring/analysis
ossec 23592 1 0 13:40 ? 00:00:06 /var/ossec/bin/ossec-analysisd
root 23597 1 0 13:40 ? 00:00:00 /var/ossec/bin/ossec-logcollector
ossec中支持两种日志监控
1.对指定的日志文件进行监控,并对发送到服务端进行rules对比和警告
2.直接对命令执行的结果进行监控,比如df -h,发送到服务端进行rules 对比和警
日志监控逻辑
说明:1.agent端的 ossec-monitord 收集定义规则的日志,例如/var/log/ 下面的messages 文件等,可以继续加入你需要收集的日志
2.server 端的ossec-logcollector 接收来自agent 端的日志,然后通过decoder对日志文件进行编码处理,再通过rules 进行规则的对比。
3.命中对应的规则后通过ossec-analysisd(分析模块)对命中的规则做分析产生告警,然后生成到ossec-syslogd 告警信息,这里输出给了syslog server。
需要注意的是:
server 对发送过来的日志不会对客户端发送过来的日志进行全量存储。
server 端收到agent 日志会立马对这个日志进行分析,分析完成后他会把原始日志丢掉,所以不必要担心ossec server 日志量大。
ossec 可以对标准的syslog 日志格式进行监控,ossec至少可以解析出来:
时间戳,主机名称,程序名称,log主体,四个部分
Ossec 对日志的监控是实时的!!!!
rules里面将警告一共分为0~15级,级别越高,说明问题越严重。
可以在agent 通过登录失败来验证,可以看到多次登录失败后告警等级升级为10级别,然后就是可以看到,日志确实是实时分析的。
二、日志分析自定义decoder和rules
/var/ossec/bin/ossec-logtest 可以用来的测试日志如何被解析
[root@ossec-server45 alerts]# /var/ossec/bin/ossec-logtest
2021/11/15 16:24:59 ossec-testrule: INFO: Reading local decoder file.
2021/11/15 16:24:59 ossec-testrule: INFO: Started (pid: 50413).
ossec-testrule: Type one log per line.
Nov 15 16:04:16 cosmo57 sshd[45329]: Failed password for root from 10.203.x.x port 39480 ssh2
**Phase 1: Completed pre-decoding. #####pre-decoding 预处理解析出syslog四元素
full event: 'Nov 15 16:04:16 cosmo57 sshd[45329]: Failed password for root from 10.203.x.x port 39480 ssh2'
hostname: 'cosmo57'
program_name: 'sshd'
log: 'Failed password for root from 10.203.x.x port 39480 ssh2'
**Phase 2: Completed decoding.###处理通过解码器
decoder: 'sshd'
dstuser: 'root'
srcip: '10.203.x.x'
**Phase 3: Completed filtering (rules).###过滤
Rule id: '5716'
Level: '5'
Description: 'SSHD authentication failed.'
**Alert to be generated.
参看文章:OSSEC文档——手册
Comments | NOTHING