[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007
概述
ELK是Elastic这个牛逼的公司开发的3件套,其实最根本的还是那个E(elasticsearch),其他两个可以认为是它的外围。至于他们能干啥,你就动手网上搜索一下…
今天我们就使用docker来安装一下这三件套。
安装
开源库直接安装
其实Github上有一个专门完成ELK安装的开源项目。docker-elk,按照说明安装就好,不过看懂说明也需要一点努力…
docker-compose 文件按照
有如下几点需要注意,3件套版本最好一致,省的发生版本兼容的麻烦事。
本地建立卷
建立如下文件夹
ES:
~/software/elk/elasticsearch/data
~/software/elk/elasticsearch/plugins
Linux小白注意~
是当前用户的home目录。
Logstash:
~/software/elk/logstash/pipeline
~/software/elk/logstash/pipeline/logstash-sample.conf
其中,logstash-sample.conf内容如下
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "es:9200"
index => "logstash-%{+YYYY.MM.dd}"
}
}
Kibana:
我这里使用了name volume,docker会自动在本机建立目录的,所以不用管
编写docker-compose文件elk-dc.yaml
elk-dc.yaml 内容如下:
version: '3'
services:
elasticsearch:
image: elasticsearch:7.17.0 #镜像
container_name: elk_elasticsearch #定义容器名称
#restart: always #开机启动,失败也会一直重启
ports:
- 9200:9200
- 9300:9300
environment:
cluster.name: elasticsearch #设置集群名称为elasticsearch
discovery.type: single-node #以单一节点模式启动
ES_JAVA_OPTS: "-Xms256m -Xmx256m" #设置使用jvm内存大小
ELASTIC_PASSWORD: changeme
volumes:
- ~/software/elk/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
- ~/software/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
networks:
- elk
logstash:
image: logstash:7.17.0
container_name: elk_logstash
#restart: always
ports:
- 4560:4560
volumes:
- ~/software/elk/logstash/pipeline:/usr/share/logstash/pipeline
- ~/software/elk/logstash/pipeline/logstash-sample.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
networks:
- elk
kibana:
image: kibana:7.17.0
container_name: elk_kibana
#restart: always
ports:
- 5601:5601
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址
volumes:
- myelk:/usr/share/kibana/config
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
networks:
- elk
networks:
elk:
driver: bridge
volumes:
myelk:
启动
进入elk-dc.yaml 目录下执行如下命令
docker-compose -f elk-dc.yaml up -d
- f
指定docker-compose文件
up
启动
- d
以detach的模式启动,类似于后台启动,不加这个的话,你运行命令那个窗口就被占用了…
总结
Logstash那块我也没搞明白,我使用它将Mysql数据导入Es的操作也是用的本地安装,而非docker安装…以后熟悉了再补充吧。
参考文章
https://www.jianshu.com/p/2d78ce6bc504
https://juejin.cn/post/6844904103970095118