ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ELK6.3.2搭建配置文件篇(filebeat版)

2020-11-16 09:00:58  阅读:241  来源: 互联网

标签:node filebeat 配置文件 true kibana ELK6.3 日志 my


https://zhuanlan.zhihu.com/p/161007340

 

应用下载地址

Elasricsearch版本:6.3.2 ,下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip

Kibana版本:6.3.2 ,下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz

FileBeat版本6.3.2,下载地址:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-darwin-x86_64.tar.gz

 

FileBeat比logstash更轻量级,这里以filebeat收集Java应用日志为例;

★★★★★:es6.3.2需要分配用户,不能使用root启动,同时,安装过程中会遇到各种各样的问题,一点点解决吧;

 

启动方式:

1、Elasticsearch
./bin/elasticsearch -d   # 后台启动

2、kibana
nohup ./bin/kibana &   # 后台启动
关闭kibana使用 netstat -tunlp|grep 5601   然后kill pid
如:tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      13082/./bin/../node
pid为 13082

3、filebeat
nohup ./filebeat -e -c filebeat-01.yml -d "Publish" & > nohup.out  # 后台启动
关闭  kill pid

 

ElasticSearch配置文件elasticsearch.yml

cluster.name: ard-es # 集群中的名称
node.name: master-node # 该节点名称
node.master: true  # 意思是该节点为主节点
node.data: false  # 表示这是数据节点 
discovery.zen.ping.unicast.hosts: ["192.168.1.1", "192.168.1.2", "192.168.1.3"] # 配置自动发现
http.cors.enabled: true # sticsearch中启用CORS
http.cors.allow-origin: "*"  
xpack.security.enabled: True
xpack.ml.enabled: true
network.host: 0.0.0.0
http.port: 9200

# 在这里我做了三台集群,另外两台的配置文件
node.name: node-data-01/02
node.master: false  # 意思是该节点为主节点
node.data: true  # 表示这是数据节点 

# 一主两从,主节点不作为数据节点

 

Kibana配置文件kibana.yml

server.port: 5601  # 配置kibana的端口
server.host: "0.0.0.0"
elasticsearch.url: "http://127.0.0.1:9200"  # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
logging.dest: /data/ELK6.3.0/kibana-6.3.2-linux-x86_64/logs/kibana.log  # 配置kibana的日志文件路径,不然默认是messages里记录日志

 

filebeat配置文件filebeat.yml

#最头疼的就是filebeat的配置文件了,也遇到了各种各样的问题,配置文件如下:
# 是否开启自定义字段作为顶级字段存储到文档中,如果自定义字段名称与其他字段名称冲突,则自定义字段将覆盖其他字段
fields_under_root: true
# 自定义字段(我这里是定义的当前应用的ip地址,用于应用多节点部署时,明确日志输入来源,尝试过修改beat.name和hostname,均以失败告终)
fields:
  applyIp: 192.168.1.2

filebeat.inputs:
- type: log  # 日志输入类型,文件日志以log标记
  paths:
    - /htdocs/my-base/logs/my-base.log  # 日志在服务器的绝对位置
  fields:
    type: my-base  # 相当于标签的意思,在这里给打一个标签,在输入到ES的时候可以用来区分输送的ES索引
  tail_files: true   # 配置为true时,filebeat将从新文件的最后位置开始读取
  #指定正则表达式去匹配指定的行,例如multiline.pattern: '^\[',意思是去匹配以[开头的行,下面的正则是 以日期开头的、以空格开头的、以Caused by开头的、以INFO开头的等.....
  #下面这正则有很多问题,关于多行日志这一块,参考了很多的文章,目前项目中的那种打印的json串多行的,filebeat还没解决
  multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}|^[[:space:]]|^Caused by:|^INFO|^at'
  #定义pattern是否被否认,默认值是false,若为true,意思是对上面的匹配进行反转(就是实际去匹配不以pattern的行)
  multiline.negate: false
  # 将上面的匹配条件的(或者是不匹配的,取决上面是true还是false) 结果,是放到行首 还是放到行位  after和before
  multiline.match: after

- type: log
  paths:
    - /htdocs/my-gateway/logs/my-gateway.log
  fields:
    type: my-gateway
  tail_files: true
  multiline.pattern: '^\[[0-9]{4}-[0-9]{2}-[0-9]{2}|^[[:space:]]|^Caused by:|^INFO|^at'
  multiline.negate: false
  multiline.match: after
  
#-------------------------- Elasticsearchbled output ------------------------------  
output.elasticsearch:
  hosts: ["192.168.1.1:9200"]    # 指定es服务器的ip端口
  indices:
    - index: "my-gateway"   # es索引
      when.equals:
        fields.type: "my-gateway" # filebeat中的标签 区分索引
    - index: "my-base"
      when.equals:
        fields.type: "my-base"
        
#============================= Filebeat modules ===============================
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
#==================== Elasticsearch template setting ==========================
setup.template.settings:
  index.number_of_shards: 5
  index.number_of_replicas: 1
  index.codec: best_compression

 

在filebeat的配置文件中,遇到的问题比较多,并且都还没有解决,不过不影响ELK的使用;

1、多行日志问题

异常日志目前已经解决完毕,不过json串输出的多行日志这种还是没有得到解决

2、记录日志所属服务器

在文档中说的修改beat.name和beat.hostname,尝试了各种写法,目前还是没有得到解决;最后是使用的自定义字段来解决的这个问题;

 

看看最终的成效

 

发布于 07-16

标签:node,filebeat,配置文件,true,kibana,ELK6.3,日志,my
来源: https://www.cnblogs.com/zhoading/p/13983424.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有