elasticsearch
先去官网看看对应的版本
先pull对应的版本
docker pull elasticsearch:7.9.3
新建挂载目录
mkdir -p /data/docker/es/config
mkdir -p /data/docker/es/data
#赋予权限
chmod -R 777 /data/docker/es
新建配置
echo "http.host:0.0.0.0" >> /www/docker/es/config/elasticsearch.yml
启动
多数报错是权限不够
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" -v /data/docker/es/config/elasticsearch.yml:/usr/share/config/elasticsearch.yml -v /data/docker/es/data:/usr/share/elasticsearch/data -v /data/docker/es/plugins:/usr/share/elasticsearch/plugins -d elasticsearch:7.9.3
Kibana介绍
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。
启动
主要版本要对应elasticsearch版本一致,不然会出现奇奇怪怪的问题
docker pull kibana:7.9.3
# 注意这里的 ip,使用127.0.0.1是不行的,需要使用本机ip,ifconfig可以查看
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://本机ip:9200 -p 5601:5601 -d kibana:7.9.3
访问http://本机ip:5601
logstash
下载
docker pull logstash:7.9.3
先安装来获取他的配置
docker run -d --name=logstash logstash:7.9.3
//拷贝数据
docker cp logstash:/usr/share/logstash/config /opt/docker/logstash/
docker cp logstash:/usr/share/logstash/data /opt/docker/logstash/
docker cp logstash:/usr/share/logstash/pipeline/opt/docker/logstash/
mkdir -p /opt/docker/logstash/config/conf.d
修改配置logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://127.0.0.1:9200" ]
#path.config: /usr/share/logstash/config/conf.d/*.conf
path.logs: /usr/share/logstash/logs
赋予权限
chmod -R 777 logstash/
删除之前的容器,重新创建
docker run \
--name logstash \
--restart=always \
-p 5044:5044 \
-p 9600:9600 \
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \
-v /opt/docker/logstash/config:/usr/share/logstash/config \
-v /opt/docker/logstash/data:/usr/share/logstash/data \
-v /opt/docker/logstash/pipeline:/usr/share/logstash/pipeline \
-d logstash:7.9.3
参数说明
docker run \
--name logstash\ 将容器命名为 logstash
--restart=always \ 容器自动重启
-p 5044:5044 \ 将容器的5044端口映射到宿主机5044端口 logstash的启动端口
-p 9600:9600 \ 将容器的9600端口映射到宿主机9600 端口,api端口
-e ES_JAVA_OPTS="-Duser.timezone=Asia/Shanghai" \ 设置时区
-v /opt/docker/logstash/config:/usr/share/logstash/config \
-v /opt/docker/logstash/data:/usr/share/logstash/data \
-v /opt/docker/logstash/pipeline:/usr/share/logstash/pipeline \ 挂载
-d logstash:6.8.12 后台运行容器,并返回容器ID
在文件目录/opt/docker/logstash/config/conf.d下创建test.conf文件
input {
file {
path => "/opt/logs/access.log" # 填写容器内部log文件路径
codec => "json"
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
}
stdout {
codec => rubydebug
}
}