freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

自动运维|logstash收集syslog及保存实践
2020-05-29 11:49:01

什么是logstash?

ELK号称日志聚合分析全家桶,三个字母分别代表Elasticsearch、Logstash、Kibana,Elasticsearch侧重数据的搜索、分析和存储,Kibana主要是为Elasticsearch提供可视化的web操作页面,Logstash能动态地采集、转换和传输数据,可收集并处理日志数据并发送到Elasticsearch(或者数据库存储等)。


Logstash数据处理过程

Logstash数据处理过程主要包括:Inputs、Filters和Outputs,每个过程都有丰富的插件可供使用,可以方便处理多种数据源、数据格式并输出到多种存储中。

Inputs用于从数据源接收、获取数据,常见插件如file、syslog、redis、beats等。

Filters用于转换、处理数据,常见插件如grok、mutate、drop、ruby等。

Outputs用于数据输出,常见插件如elasticsearch、file等。

另外,Codecs作为一个单独组件,可以用于Inputs、Outputs流程中,对数据进行编码处理,常见插件如json、multiline。

以上数据处理过程及插件使用可以通过配置方便组合选用,适配多种应用场景。


应用场景: Logstash收集syslog日志,

并保存到MySQL数据库

syslog日志数据格式说明:

image.png


数据接收配置:

Logstash接收数据采用syslog插件,接收端口为514,默认使用tcp协议,配置如下:

image.png


数据转换配置:

Logstash接收到的syslog消息内容示例如下:

XXX SYS1~2020-05-22T09:30:00~APP1~error~数据异常。

通过filter配置,将日志信息中的各个字段提取出来,这里使用ruby进行解析,还有grok等其他插件也可实现此功能,具体配置如下:

image.png


以上代码整体逻辑是: 

- 将日志信息用分隔符“~”切分开。

- 将切分后的字段与字段key组合成字典格式,生成这样的格式{"header": "XXX SYS1", "time": "2020-05-22T09:30:00", ......}    

 - 如果格式符合,将如上字典内容添加到event对象中,并在event对象中的tags数组中增加“_sys1”字符串。

数据输出配置:

这部分主要是将上文解析、转换的数据进行输出,如下配置,配置了stdout标准输出和mysql数据库两个输出地址。

image.png

通过rsyslog上报syslog信息,可以看到输出结果如下:

1. stdout标准输出情况:

image.png

其中,字段message为输入原始日志信息,字段header、time、type、level、info字段为日志数据提取信息。

2.mysql数据库存储情况

image.png


美创运维中心数据库服务团队拥有Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工程师 ,著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。目前运维各类数据库合计2000余套,精通Oracle、MySQL、SQLServer、DB2、PostgreSQL、达梦等主流商业和开源数据库。并成为首批国内达梦战略合作伙伴之一,拥有海量经验和完善的人员培养体系。并同时提供超融合,私有云整体解决方案。

# 数据库运维 # 自动化运维 # 自动运维
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者