环境准备:
filebeat服务器: 10.6.5.53
logstash服务器: 10.6.5.21
ES集群服务器: 10.4.0.12:9200 10.4.0.13:9200 10.4.0.14:9200
kibana服务器: 10.6.5.21
组件简介:
filebeat:轻量级的日志收集工具,在每台服务器上安装配置即可。
Logstash:日志分析过滤工具,通过特定的规则对收集的日志分析过滤,然后转存到ES服务器。
ES:elasticsearch搜索引擎,日志持久化的地方。
Kibana:日志展示分析一览平台,提供丰富的图形界面和统计分析功能。
1,安装和配置filebeat
将下载好的filebeat文件放到指定的目录,然后执行
tar -zxvf filebeat-6.4.3-linux-x86_64.tar.gz 对filebeat进行解压
进行解压目录
cd filebeat-6.4.3-linux-x86_64
修改配置文件
vi filebeat.yml
配置说明:
multiline.pattern: ^\[
#多行匹配模式,后接正则表达式,默认无. 控制Filebeat如何处理跨越多行的日志消息 的选项。其中消息的第一行以方括号([)开头(针对java日志的多行匹配问题)
multiline.negate: true
#多行匹配模式后配置的模式是否取反,默认false # false匹配pattern的行合并到上一行;true不匹配pattern的行合并到上一行
multiline.match: after
#定义多行内容被添加到模式匹配行之后还是之前,默认无,可以被设置为after或者before
fields:
#添加附件字段,可以使values,arrays,dictionaries或者任何嵌套数据
fields_under_root: true
# 如果该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field会覆盖filebeat默认的field(我们每个都是自定义的所以不使用默认的。)
output.logstash
# 输出日志到logstash里面
hosts:logstash的IP地址和端口
codec.format.string:格式化输出的日志格式,第一个为偏移量,第二个为IP,第三个为本身的消息体
processor:处理器配置,可以处理新增的字段,删除的字段等
include_fields:包含的新增的字段配置
启动fiilebeats:
nohup ./filebeat -e -c filebeat.yml > filebeat.log &
2,安装和配置logstash
将下载好的 logstash 文件放到指定的目录,然后执行
tar -zxvf logstash-6.4.2.tar.gz 对logstash进行解压
查看配置
cd logstash-6.4.2/
cd config/
修改配置
logstash配置说明:
input:日志输入,支持多种方式,例如kafka,filebeat,这里是filebeat的方式
output:输入的方式,支持redis es mysql等等方式,目前写的是ES方式
hosts:ES集群地址
http_compression:是否开启压缩
index: 输入到ES种的数据的索引格式
filter:数据的过滤器
grok:通过grok语法去过滤,grok语法用法可自行百度
match:通过正则匹配message中的消息格式进行字段转换
可通http://grok.51vagaa.com/网站调试grok语法
启动logsash,
nohup ./bin/logstash -f config/logstash.conf > logstash.log &
此时我们在页面中操作一条数据,写入到日志文件,
我们修改了SKU的标准成本价,会看到服务器日志正常显示,此时filebeat会搜集到此条日志,然后追加IP和offest字段后,输出给logstash,logstash进行字段分析过滤后输出给ES进行持久化
此时我们看ES中的日志数据
3,安装kibana,显示数据
以同样的方式安装kibana后,修改kibana配置文件
vi kibana.yml
根据需求修改配置文件,我这变暂时只需要修改如下配置
server.port: 5601
kibana访问端口
elasticsearch.url: "http://10.4.0.12:9200"
kibana连接ES的地址
启动kibana,访问kibana地址看到刚才的日志已经可以正常展示