1.安装logstash-filter-multiline插件
网上下载logstash-filter-multiline-3.0.4.gem插件上传至服务器
新建文件夹 logstash-filter-multiline-3.0.4,并将gem文件移入新建的文件夹
使用zip命令进行压缩zip -r logstash-filter-multiline-3.0.4.zip logstash-filter-multiline-3.0.4
进入logstash的bin目录
执行./logstash-plugin installfile:///home/upp/elk/logstash-filter-multiline-3.0.4.zip安装成功
2. filebeat搭建
下载filebeat-7.6.1.tar.gz并解压,在每个需要收集日志的机器上都需要安装filebeat,filebeat本身很轻巧基本不占多少资源.
修改filebeat配置文件
filebeat.inputs为需要采集日志的目录.
filebeat.output为采集完的日志输出到哪里,这里是logstash,因为可靠性的需要,这里配置了两台logstash.
启动filebeat ./filebeat -c filebeat.yml
3 logstash集群搭建,下载logstash-7.6.1.tar.gz并解压
配置logstash的配置文件
input为filebeat输入的端口
filter为对输入的日志文本进行处理
图中如果日志类型是zk,那么进行如下处理
mulitine是处理多行日志的插件
如果日志开头不是以日期开头(目前日志的格式是以日期开头)则说明是换行。
grok为解析日志格式的插件
mutate插件先为输出增加字段Datetime,Datetime由grok解析的字段Date与Time组成
date插件将@timestamp日期替换为Datetime字段中的值
最后mutate删除Datetime,Date,Time字段
output为logstash的输出,logstash处理完输出到elasticsearch中
elasticsearch目前为两台,xunlian210,xunlian212
zookeeper的log在es上建立的索引名为zookeeper-%{+YYYY.MM} 最后的YYYY.MM为日期格式
最后使用./logstash -f ../config/logstash.conf启动logstash
4 elasticsearch 集群搭建
下载elasticsearch到服务器并解压
主节点配置:
编辑elasticsearch下config目录中的elasticsearch.yml配置文件
cluster.name集群名称upp-es-cluster
node.name节点名称 master
node.master 是否可以被选举为主节点
node.data 该节点是否可以存储数据
path.data: 存储数据的路径
path.logs: 存储日志的路径
discovery.seed_hosts: 集群中的节点
cluster.initial_master_node: 集群中的初始节点
http.cors: 设置跨域访问
从节点配置
与主节点不同的地方就是node.name名称
修改系统配置/etc/security/limits.conf
此配置用于修改linux默认的最大文件打开连接数
修改系统配置/etc/sysctl.conf
vm.max_map_count=262144
sysctl -p 使配置生效
elasticsearch -d 后台启动elasticsearch
5 配置kibana
server.port: 5601 服务端口5601
server.host: 0.0.0.0 允许其他任何ip服务接入kibana
配置elasticsearch地址
进入bin目录,执行./kibana启动kibana
浏览器输入对应ip于地址