一、安装Docker
1.关闭防火墙:
systemctl stop firewalld
2.禁用防火墙自启
systemctl disable firewalld
1. 查看已安装的Docker
docker -v
二、安装Elasticsearch
1.拉取镜像
docker pull elasticsearch:7.1.1 # 选择与Logstash和Kibana兼容的版本
2.创建自定义网络(可选,用于连接ELK组件):
docker network create elk
3.运行Elasticsearch:
docker run -d --name elasticsearch --net elk -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1
3.测试Elasticsearch是否部署成功:
curl -0 http://127.0.0.1:9200
结果:
{
"name" : "f80b762b48b7",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "7BN3iUzHRhyyTqo7NCAqSw",
"version" : {
"number" : "7.1.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "7a013de",
"build_date" : "2019-05-23T14:04:00.380842Z",
"build_snapshot" : false,
"lucene_version" : "8.0.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
三、安装Kibana
1.拉取镜像
docker pull kibana:7.1.0 # 与Elasticsearch相同版本
3.运行Elasticsearch:
docker run -d --name kibana --net elk -p 5601:5601 kibana:7.1.0
4.访问Kibana:
http://127.0.0.1:5601
四、安装Logstash(可选)
1.拉取镜像
docker pull logstash:7.1.1
2.运行Logstash(此处仅为示例,需要根据具体配置来运行):
编辑配置Logstash文件:
vi /usr/local/src/logstash/sc.conf
sc.conf文件配置:
input {
syslog{
port=>514
type=>syslog
}
}
filter {
grok {
match => {
"message" => "grok_pattern"
}
}
}
output {
stdout {
codec => rubydebug {}
}
redis {
host =>"192.168.99.185" #redis ip
port =>6379 #redis端口
db =>0 #redis DB
data_type =>"list" #列
key =>"logstash" #键
password =>"123456" #redis密码,如没有则不填
}
elasticsearch {
hosts => "192.168.99.185:9200" } #elasticsearch地址
}
运行Logstash:
docker run -d --name logstash --net=host -v /usr/local/src/logstash/sc.conf:/usr/share/logstash/pz/sc.conf logstash:7.1.1 -f /usr/share/logstash/pz/sc.conf
五、其他注意事项
-
权限设置:如果需要在Docker中挂载文件或目录,确保设置正确的文件/目录权限,如使用UID 1000的用户。
-
配置ELK:Elasticsearch、Kibana和Logstash都需要适当的配置,确保它们可以正确地协同工作。
-
多节点部署:如果需要更高级的功能,如高可用性、负载均衡等,可以考虑使用多节点部署ELK。
-
日志收集与过滤:Logstash用于收集、解析和转换日志,可以根据需要配置不同的输入、过滤和输出插件。
-
数据可视化:Kibana提供数据可视化界面,可以方便地查看、分析和搜索Elasticsearch中的数据。