ELK搭建过程

Filebeat

使用 Filebeat 作为客户端的日志文件收集工具, 相比于 Logstash , 它资源占用更少, 下面介绍如何在window和docker上进行搭建
官方文档链接: https://www.elastic.co/guide/en/beats/filebeat/7.x/configuration-filebeat-options.html

1. 从官网下载filebeat压缩包,解压

2. 修改根目录下的filebeat.yml配置文件

# 配置文件输入
filebeat.prospectors:
- type: log
  paths:
    - C:\Users\yjh\git\shop-parent\build\*.json
  fields: # 添加自定义字段
    type: syslog
  #以下json的配置至少需要配置一个,来开启filebeat解析json的功能
  #keys_under_root可以让字段位于根节点,默认为false
  keys_under_root: true
  #对于同名的key,覆盖原有key值
  json.overwrite_keys: true
  #message_key是用来合并多行json日志使用的,如果配置该项还需要配置multiline的设置,后面会讲
  json.message_key: message
  #将解析错误的消息记录储存在error.message字段中
  json.add_error_key: true
# 配置文件输出到logstash
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"] #logstash的地址和端口

3. 启动

./filebeat -e -c filebeat.yml -d publish

在后台启动

nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &  将所有标准输出及标准错误输出到/dev/null空设备,即没有任何输出
nohup ./filebeat -e -c filebeat.yml > filebeat.log &

停止

ps -ef |grep filebeat
kill -9 进程号

Logstash

Logstash 汇集 Filebeat 收集的日志文件, 处理后统一发送给 Elasticsearch 处理, 环境为 window 10 pro或者docker官方镜像

1. 安装logstash

1.1 从官网下载logstash压缩包, 版本需要跟elasticsearch一致, 这里使用的版本是6.7.2,解压缩
1.2 使用docker官方镜像 docker pull logstash:6.7.2

2. 修改配置文件

  • windows 在logstash根目录下添加一个配置文件 first-pipeline.conf
  • docker 在config目录下 修改logstash-sample.confg
    2.1 配置解析日志格式为json 参考链接 https://blog.csdn.net//jiao_fuyou/article/details/49174269
input {
 beats {
    port => 5044
    format => json
 }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

2.2 其它类型配置 目前没有作用 先拷贝一段 以后需要的时候再来看

input {
    beats {
        codec => json
        port => "5044"
    }
}
# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }
filter {
    grok {
        match => {
    #         "message" => [
    #             "severity2: %{LOGLEVEL:severity}"
    #             "Rest: %{GREEDYDATA:rest}"
    #             ]
            "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:severity} %{DATA:service} %{DATA:trace} %{DATA:span} %{DATA:exportable} %{DATA:pid} %{DATA:thread} %{DATA:class} %{GREEDYDATA:rest}"
    #         # "message" => "%{TIMESTAMP_ISO8601:timestamp}\s+%{LOGLEVEL:severity}\s+\[%{DATA:service},%{DATA:trace},%{DATA:span},%{DATA:exportable}\]\s+%{DATA:pid}---\s+\[%{DATA:thread}\]\s+%{DATA:class}\s+:\s+%{GREEDYDATA:rest}"
        }
    }
}
output {
    elasticsearch {
        hosts => ["192.168.100.48:9200"]
#        action => "index"
    }
    file {
        path => "C:\Users\yjh\git\shop-parent\build2\xinlianshiye-shop-user.json"
    }
#    stdout { codec => rubydebug }
}

3. 启动

bin/logstash -f first-pipeline.conf --config.test_and_exit # 测试配置文件是否编写正确, 测试完成后自动退出
bin/logstash -f first-pipeline.conf --config.reload.automatic # 当配置文件发生变动时, 自动加载

Elasticsearch

docker 上进行搭建, 默认安装的 Elasticsearch 不需要额外配置, 下面的内容仅作为记录

1.安装

安装docker官方镜像 docker pull elasticsearch:6.7.2

2.配置

配置文件位置: 安装目录/config/elasticsearch.yml
配置项:

  • cluster.name: 簇名字
  • node.name: 节点名字
  • network.host: 发布地址
  • http.port: 发布端口

3.启动

访问 发布地址:发布端口 如 localhost:9600
若启动正常 会返回如下格式的数据

{
  "name" : "zA4LkIn", # 节点名字
  "cluster_name" : "docker-cluster", # 簇名字
  "cluster_uuid" : "h7KzYjkhS1OdTIpZPyr6xA",
  "version" : {
    "number" : "6.7.2",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "56c6e48",
    "build_date" : "2019-04-29T09:05:50.290371Z",
    "build_snapshot" : false,
    "lucene_version" : "7.7.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}


Kibana

docker 上搭建

1.安装

安装docker官方镜像 docker pull kibana

2. 配置

修改 kibana根目录/config/kibana.yml 配置文件 并重新启动

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.100.48:9200" ] # 指定elasticsearch的地址和端口
xpack.monitoring.ui.container.elasticsearch.enabled: true

Log4J

为了兼容ELK读取json格式的日志, 需要调整log4j的配置, 以json格式输出日志文件

配置文件如下, 在输出到文件的配置中添加 JsonLayout 节点


    
    
        
    
    
    
        
        
        
        
    
    
    

你可能感兴趣的:(ELK搭建过程)