elk

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

image.png

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 
    }
}

关闭logstash.yml 中path.config: /usr/share/logstash/config/conf.d/*.conf的注释,然后重启

你可能感兴趣的:(elk)