日志系统框架 ELK

目前系统主要流程

日志系统框架 ELK_第1张图片

组件说明:

Collector:单独的java进程,暴露HTTP接口,用于APP日志上传。

Filebeat-6.7.1:日志收集工具。

Logstash-6.7.1:作为管道,将收集的日志传输给Elasticsearch存储,同时具有日志过滤、数据转换功能。

Elasticsearch-6.7.1:存储日志数据,提供数据搜索、聚合功能。

Kibana-6.7.1:查询聚合Elasticsearch中的数据,生成报表

 环境准备

机器准备:3台

1台安装filebeat + kibana + collector

1台安装 logstash

另:每一台均安装ES-6.7.1集群

1.ES-6.7.1安装流程

详情请查看es安装文档

2.Logstash安装

   下载logstash-6.7.1

       cd /home

wget https://artifacts.elastic.co/downloads/logstash/logstash-6.7.1.tar.gz

  解压logstash包

tar –zxvf logstash-6.7.1.tar.gz

    配置文件修改

   分为输入和输出

   输入:配置logstash端口

                日期处理

                过滤不需要的字段

   输出:elasticsearch 多IP地址
               索引名称
               文档类型

    input {
        beats {
             port => 5044
         }
     }
     filter {
         date {
             match => ["@timestamp","ISO8601"]
             timezone => "Asia/Shanghai"
             target => "@timestamp"
         }
         if [fields][logtype] == "hsh_click_logs"{
             json {
                 source => "message"
                 #target => "doc"
                 remove_field => ["message", "source", "prospector", "offset", "tags",     
                                  "input", "host"]
             }
         }
     }
     output {
         elasticsearch {
         hosts => ["http://IP1:9200", "http://IP2:9200"]
             index => "hsh_click_logs_%{+YYYY.MM}"
             document_type => "_doc"
             #user => "elastic"
             #password => "changeme"
         }
      }

     启动

        ./logstash -f logstash.conf

3.filebeat-6.7.1安装配置

下载filebeat包

wget https://www.elastic.co/cn/downloads/beats/filebeat/filebeat-6.2.1-linux-x86_64.tar.gz

解压

tar -zxvf filebeat-6.2.1-linux-x86_64.tar.gz

配置文件修改

        分为输入和输出

        输入:类型

                读取日志路径

                字段日志类型

        输出:输出到logstash

                配置连接地址

filebeat.inputs:
- type: log
  enabled: true
  paths:
    # 该路径为项目collector安装目录下点击事件日志
    - /data/home/ywck/log-collector/logs/click-log*.log
  fields:
    logtype: hsh_click_logs

#--------------------- Logstash output -------------------------------
output.logstash:
  hosts: ["logstashIP:5044"]

启动

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

4.kibana安装

下载kibana安装包

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.7.1-linux-x86_64.tar.gz

解压kibana安装包

tar -zxvf kibana-6.7.1-linux-x86_64.tar.gz

 配置文件修改(以下指定项)

 ES集群
Elasticsearch.hosts:[ http://IP1:port, http://IP2:port, http://IP3:port]
              Server’s name
                  Server.name: "hsh-logs"
              端口
                  Server.port:5601
              Server host
                  Server.host:0.0.0.0

启动

        bin/kibana  &

5.各个组件启动顺序

1.启动elasticsearch

2.启动kibana

3.启动 logstash

4.启动filebeat

5.启动collector项目

kibana依赖于ES

filebeat依赖logstash

logstash依赖于ES

因为kibana是使用node.js写的,所以进程在node中。但是查找到的node进程不一定就是kibana的,所以还需要根据端口进一步确认,直接查看5601端口的占用情况,确定下进程ID,然后在查看下node进程的ID,如果一致,就可以确定该node进程就是kibana的进程了。

netstat -tunlp|grep 5601 查看端口占用情况

ps aux | grep node 查看node进程

你可能感兴趣的:(java)