首页 > 其他 > 详细

基于docker部署ELK

时间:2020-08-31 13:14:21      阅读:73      评论:0      收藏:0      [点我收藏+]

ELK功能在这里不做介绍,如果需要了解可以去ELK官网进行学习,这里主要是介绍怎么部署elk。

1 创建一个网络,后边涉及到的容器全部运行在该网络之上

docker network create somenetwork

默认driver为bridge

[root@elk ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
46d8da97d41a bridge bridge local
696913a6e238 host host local
234f7d1fbb31 none null local
c33e9f355b8a somenetwork bridge local

 

2 安装elasticsearch

docker run -d --name elasticsearch --network somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.io/elasticsearch:7.1.1

某些镜像不支持使用latest标签下载,尽量使用确切的版本编号

discovery.type=single-node表示单节点部署,避开引导检查

 

3 安装kibana

在本地root用户家目录下创建文件kibana.yml,并加入如下内容:

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.18.0.2:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.hosts对应的IP地址修改为,elasticsearch容器的IP地址/或者服务器本机IP地址,查看elasticsearch容器地址可以执行docker inspect elasticsearch | grep -i ipaddr
技术分享图片

 

启动kibana容器:

docker run -d --name kibana --network somenetwork  --privileged=true -p 5601:5601 -v /root/kibana.yml:/usr/share/kibana/config/kibana.yml docker.io/kibana:7.1.1

如果不加--privileged=true,会报错,没有权限操作/usr/share/kibana/config/kibana.yml

-v /root/kibana.yml:/usr/share/kibana/config/kibana.yml 是指将本地文件映射至容器内的文件

查看容器启动后,在浏览器访问服务器IP地址加5601端口,可能会出现

Kibana server is not ready yet

等待即可。

 

4 安装logstash

在本地root用户家目录下创建文件logstash.yml,并加入如下内容:

path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash

root下创建conf.d目录,并进入目录创建test.conf文件,写入如下内容:

input {
    beats {
    port => 5044
    codec => "json"
}
}

output {
  elasticsearch { hosts => ["172.18.0.2:9200"] }
  stdout { codec => rubydebug }
}
elasticsearch hosts对应的IP地址修改为,elasticsearch容器的IP地址/或者服务器本机IP地址,查看elasticsearch容器地址可以执行docker inspect elasticsearch | grep -i ipaddr

启动容器

docker run -it -d -p 5044:5044 --name logstash --network somenetwork --privileged=true -v /root/logstash.yml:/usr/share/logstash/config/logstash.yml -v /root/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1

 

5 安装filebeat

root下创建filebeat目录,进入目录执行如下命令,下载配置文件:

curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml

修改配置文件:

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

filebeat.autodiscover:
  providers:
    - type: docker
      hints.enabled: true

processors:
- add_cloud_metadata: ~

filebeat.inputs:
- type: log
  enabled: true
  paths:
  - /var/log/nginx/*.log
#  json.keys_under_root: true
#  json.overwrite_keys: true


output.logstash:
  hosts: [‘172.18.0.4:5044‘]

output.logstash对应的IP地址填写logstash容器对应的IP地址。

filebeat.inputs对应日志路径填写nginx对应的路径(下一步骤将安装nginx服务,进行日志分析)

启动filebeat容器

docker run --name filebeat --user=root -d --network somenetwork --privileged=true --volume="/var/log/nginx:/var/log/nginx/" --volume="/root/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" docker.io/elastic/filebeat:7.1.1

 

6 安装nginx,并压测数据进行分析

yum install nginx httpd-tools -y
ab -n 100 -c 100 http://{your_ip}:80/

 

 

7 进入kibana web页面

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

技术分享图片

 

基于docker部署ELK

原文:https://www.cnblogs.com/olda/p/13588786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!