Docker安装ELK
Elasticsearch
1. 拉取镜像
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:8.8.2
2. 创建桥接网络
sudo docker network create elastic
3. 运行容器
sudo docker run -d \
--name es01 \
--net elastic \
-e discovery.type=single-node \
-e ES_JAVA_OPTS="-Xms128m -Xmx128m" \
-p 9200:9200 \
-p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.8.2
最大虚拟内存设置过小,启动时报错:
重新设置
sudo sysctl -w vm.max_map_count=262144
4. 生成密码
sudo docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic
获得新密码:=twqbg+2ls6iseO*DWpt
浏览器成功访问到节点信息:
使用Postman 成功创建Index:
5. 复制证书到本地机器
sudo docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
验证是否可用
curl --cacert http_ca.crt -u elastic https://localhost:9200
6. 生成token供kibana使用
eyJ2ZXIiOiI4LjguMiIsImFkciI6WyIxNzIuMTkuMC4yOjkyMDAiXSwiZmdyIjoiMjY5OTFjNzk0NjE4NWJiZmVlYjQ4NzAzM2QyZmE3OWY2Yzg5MDEyYzk5ZDU0MmFjMzVmNDYzYWUzMTYxNDc2MSIsImtleSI6InlDVmFsWWtCdmpHb3d4ejBtck44Ok5DbHRIVV9KUVhhYWdIRENKM2RDTmcifQ==
Kibana
1. 拉取镜像
sudo docker pull docker.elastic.co/kibana/kibana:8.8.2
2. 查看 elasticsearch IP
sudo docker inspect es01
2. 运行容器
sudo docker run -d \
--name kib01 \
--net elastic \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.8.2
3. 输入 token
4. 验证码
sudo docker exec -it kib01 /bin/bash bin/kibana-verification-code
Metricbeat
FileBeat
1. 拉取镜像
sudo docker pull docker.elastic.co/beats/filebeat:8.8.2
2. 下载配置文件
sudo curl -L -O https://raw.githubusercontent.com/elastic/beats/8.8/deploy/docker/filebeat.docker.yml
3. 运行容器
sudo docker run -d \
--name filebeat \
--volume="/data/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.elastic.co/beats/filebeat:8.8.2 \
-e --strict.perms=false \
-E output.elasticsearch.hosts=["123.207.43.215:9200"]
Logstash
1. 在windows下安装Logstash
https://www.elastic.co/cn/downloads/logstash
2. 创建 Logstash pipeline
标准输入输出
logstash-simple.conf
input {
stdin{
}
}
output {
stdout{
}
}
检查配置文件是否合法
.\bin\logstash -f .\logstash-simple.conf -t
.\bin\logstash -f .\logstash-simple.conf
输出Elasticsearch