基于docker搭建单机测试ELK
说明:本次使用的windows系统,利用vm进行安装虚拟机,安装的只是单测试单机版elk。
一、下载vm
自行官网下载
二、安装centos7系统
自己有现成的镜像跳过,没有自行查找资料完成
三、进行centos系统后进行docker安装
1)yum install docker(后面一路回车)
2)进行docker镜像加速
参考地址:https://www.cnblogs.com/runnerjack/articles/7519070.html
四、修改host文件
Vi /etc/hosts
添加以下内容
==================
Ip elasticsearch
五、关闭防火墙与selinux
1)
systemctl stop firewalld.service
systemctl disable firewalld.service
2)
setenforce 0
vim /etc/sysconfig/selinux
将其中的:
SELINUX=enforcing
改成:
SELINUX=disabled
六、安装ElasticSearch
1)安装
docker pull docker.io/elasticsearch:7.5.2
docker run -d --name es --net=host -e "discovery.type=single-node" docker.io/elasticsearch:7.5.2
2)配置跨域
docker exec -it es /bin/bash
修改 elasticsearch.yml(cd / 后用find -name elasticsearch.yml进行查找)
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
# 进入配置文件夹
cd config
# 显示文件
ls
结果如下:
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
elasticsearch.yml jvm.options role_mapping.yml users
# 修改配置文件
vi elasticsearch.yml
#==========================================重点在这==================================
# 加入跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
3)重启容器
docker restart es
4)验证访问
http://localhost:9200/
显示效果如下就成功了
{
"name" : "a12CcOw",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "Zi4eufCQQ6y88rO0lt9YVw",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"}
七、安装ElasticSearch-Head
为什么要安装ElasticSearch-Head呢,原因是需要有一个管理界面进行查看ElasticSearch相关信息
第一步:拉取
docker pull mobz/elasticsearch-head:5
第二步:安装
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
第三步:访问地址
见如下效果就成功了
八、安装logstash
1)
docker run -d --net=host \
-v /home/lj/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /home/lj/logstash/test/:/home/lj/logstash/test/ \
--name es_logstash docker.io/logstash:7.5.2
其中外挂的logstash.conf文件为(文件内容严格遵守缩进,不然不报错而且容器退出):
input { beats { port => "5044" } } filter { } output { stdout {} elasticsearch { hosts => ["192.168.253.140:9200"] index => "logstash-test-%{+YYYY.MM.dd}" } }
docker run -d --net=host --name es_logstash docker.io/logstash:7.5.2
2)进入目录cd config ,打开并修改配置文件
vi logstash.yml
添加以下信息
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme
九、安装kibana
注意版本一定要比ES低
1)生成容器
docker run --name es_kibana -p 5601:5601 -d --net=host -e ELASTICSEARCH_URL=http://localhost:9200 docker.io/kibana:7.5.2
3) 访问:http://localhost:5601/
十、安装filebeat
1) 拉镜像
docker pull docker.io/elastic/filebeat:7.5.2
2)配置文件
Mkdir -p /home/lj/filebeat/config
Vi /home/lj/filebeat/config/filebeat.yml
filebeat.inputs: - type: log paths: - /var/log/system.log - /var/log/wifi.log output.logstash: hosts: ["127.0.0.1:5044"]
2) 生成容器
docker run -d --name filebeat \
-v /home/lj/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /var/log/:/var/log/ \
docker.io/elastic/filebeat:7.5.2
可能碰到的问题:
1. docker启动报错iptables failed?
解决方案:https://www.cnblogs.com/amoyzhu/p/9329368.html
2. 本次elk安装参考的网址?
https://www.jianshu.com/p/a0bd70301eec
但是文档中的安装与参考的内容有些出入,版本号也不一样。以文档为主,碰到问题可以参考elk安装参考网址。