如何将ELKB部署在docker中

之前自己在windows的开发环境下部署了一套ELKB日志收集系统,现在也需要在linux的生产环境下部署一套,现在记录一下部署的过程。

1、安装Elasticsearch

查找并拖取镜像

docker search elasticsearch
docker pull elasticsearch:7.2.1

注意,这里pull的时候需要加上版本号,否则会报错,称找不到对应的版本。
安装完成之后通过命令启动。

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node"  --name elasticsearch -d elasticsearch:7.2.1

此时通过访问服务器9200端口,有返回代表启动成功。
如何将ELKB部署在docker中_第1张图片

2、安装Kibana

如上下载镜像

docker pull kibana:7.2.1

通过命令行启动:

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://(此处填写你的服务器IP):9200 -p 5601:5601 -d kibana:7.2.1

此时访问5601端口,出现如下即代表成功
如何将ELKB部署在docker中_第2张图片

3、安装Logstash

如上下载镜像

docker pull logstash:7.2.1

因为需要从filebeat中获取数据,需要修改logstash.conf:

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://(此处填写你的服务器IP):9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
  stdout {
    codec=>rubydebug
  }
}

启动命令如下:

docker run -di --name=logstash -v /home/wongws/docker_elkb/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf -p 5044:5044 -p 9600:9600 logstash:7.2.1

其中对logstash.conf路径进行映射

4、安装Filebeat

如上下载镜像

docker pull docker.elastic.co/beats/filebeat:7.2.1

此处也需要对filebeat.yml进行配置:

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log
    #- c:\programdata\elasticsearch\logs\*

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

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

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

主要讲enabled改成true,另外设置自己的日志路径/var/log/*.log。注释Elasticsearch output,启用Logstash output。
启动命令如下:

docker run --name filebeat -d  -v /home/wongws/docker_elkb/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml -v /home/wongws/logs:/var/log docker.elastic.co/beats/filebeat:7.2.1

其中需要对filebeat.yml和日志文件路径映射。

===========================================
若是ELKB全部启动成功之后,还是无法正常查看kibana,则需要观察各个模块的日志。看看哪里是否配置错误了。

你可能感兴趣的:(elkb)