Docker搭建Elastic Stack日志分析平台

因为工作需要打算搭建一个数据抽取平台,发现Elastic Stack能满足。同时为了方便部署,故此采用docker来搭建。本次搭建为单机部署。

1 准备工作

下载顺序:

  1. Elasticsearch(其中包含X-Pack for Elasticsearch)
  2. Kibana(包含X-Pack for Kibana)
  3. Logstash
  4. Beats
  5. Elasticsearch Hadoop(用不到,官网有,就先放着)

elasticsearch作为数据中心,kibana是页面显示,logstash是数据过滤,filebeat是日志文件数据提取。

使用Docker下载3个镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.1
docker pull docker.elastic.co/logstash/logstash:6.3.1
docker pull docker.elastic.co/kibana/kibana:6.3.1

2 启动容器

2.1 启动es

添加配置文件elasticsearch.yml

http.port: 9200
cluster.name: "docker-cluster"
network.host: 0.0.0.0

discovery.type: "single-node"

再启动ES

docker run -d -p 9200:9200 -p 9300:9300 --name container-es -v ~/elk/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.3.1

2.2 启动Kibana

同样添加配置文件kibana.yml

server.port: 5601
server.host: "0.0.0.0"

elasticsearch.url: "http://172.17.0.2:9200"

elasticsearch.url对应具体的IP和端口,然后启动kibana:

docker run -d -e ELASTICSEARCH_URL=http://172.17.0.2:9200 -p 5601:5601 --name container-kibana -v ~/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.3.1

其中ELASTICSEARCH_URL即为es的URL地址

2.3 启动Logstash

添加配置文件pipeline/logstash.conf,使用json解析日志

input {
    beats {
        port => 5044
    }
}
filter {
    json {
        source => "message"
    }
}
output {
    elasticsearch {
        hosts => ["172.17.0.2:9200"]
    }
}

启动

docker run -d --name logstash -p 3456:3456 -p 5044:5044 -v ~/elk/logstash/pipeline/:/usr/share/logstash/pipeline/  docker.elastic.co/logstash/logstash:6.3.1

此时,logstash以5044端口启动

2.4 下载Filebeat

Filebeat下载地址 filebeat上传至logstash,配置文件如下,将ES部分注释掉,并打开logstash部分,并修改为logstash所在地址

filebeat.inputs:
- type: log
  enabled: true
  paths:
    #- /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*
    - D:\test\logs\*
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
output.logstash:
  hosts: ["192.168.0.51:5044"]

3 注意点

3.1 总是没有接收最后一条日志

filebeat通过换行符来作为EOF,所以需要在最后加上换行

转载于:https://my.oschina.net/daidetian/blog/855809

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值