首先,确保已经安装了Docker。如果没有,请按照以下步骤进行安装:
接下来,我们需要拉取Elasticsearch镜像。请在终端中输入以下命令:
docker pull elasticsearch:7.13.1
这将从Docker Hub拉取最新版本的Elasticsearch镜像。如果需要其他版本,请将版本号更改为所需版本。
现在,我们可以启动Elasticsearch容器。请在终端中输入以下命令:
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.13.1
这将启动一个名为elasticsearch的容器,并将Elasticsearch的默认端口映射到主机的9200和9300端口。此外,我们还设置了discovery.type参数为single-node,以确保Elasticsearch在单节点模式下运行。
接下来,我们需要拉取Kibana镜像。请在终端中输入以下命令:
docker pull kibana:7.13.1
这将从Docker Hub拉取最新版本的Kibana镜像。如果需要其他版本,请将版本号更改为所需版本。
现在,我们可以启动Kibana容器。请在终端中输入以下命令:
docker run -d --name kibana --link elasticsearch:elasticsearch -p 5601:5601 kibana:7.13.1
这将启动一个名为kibana的容器,并将Kibana的默认端口映射到主机的5601端口。此外,我们还将elasticsearch容器链接到kibana容器,并使用elasticsearch作为Kibana的后端。
接下来,我们需要拉取Logstash镜像。请在终端中输入以下命令:
docker pull logstash:7.13.1
这将从Docker Hub拉取最新版本的Logstash镜像。如果需要其他版本,请将版本号更改为所需版本。
现在,我们需要创建Logstash配置文件。请在终端中输入以下命令:
mkdir logstash-config
cd logstash-config
touch logstash.conf
这将创建一个名为logstash.conf的文件,其中我们将编写我们的Logstash配置。
现在,我们需要编辑Logstash配置文件。请在终端中输入以下命令:
vim logstash.conf
这将打开一个名为logstash.conf的文件。在此文件中,我们需要编写我们的Logstash配置。例如,以下是一个简单的配置文件示例:
input {
stdin {}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
}
}
此配置将从标准输入读取数据,并将其发送到Elasticsearch。
现在,我们可以启动Logstash容器。请在终端中输入以下命令:
docker run -d --name logstash --link elasticsearch:elasticsearch -v "$PWD/logstash-config:/usr/share/logstash/config" logstash:7.13.1 -f /usr/share/logstash/config/logstash.conf
这将启动一个名为logstash的容器,并将我们之前创建的logstash.conf文件挂载到容器中。此外,我们还将elasticsearch容器链接到logstash容器,并使用elasticsearch作为输出目标。
现在,已经成功地启动了Elasticsearch、Kibana和Logstash容器,并且它们已经整合在一起了!要测试此整合,请按照以下步骤操作:
在终端中运行以下命令:
echo "Hello, World!" | docker exec -i logstash /usr/share/logstash/bin/logstash -f /usr/share/logstash/config/logstash.conf
这将向Logstash发送一条消息,并将其发送到Elasticsearch。
打开Kibana控制台,地址为http://localhost:5601
。
在左侧导航栏中选择“Discover”。
应该能够看到刚刚发送到Elasticsearch的消息。
问题1: Elasticsearch或Kibana无法启动。
解决方法: 确认Docker是否正确安装并正在运行。如果是,请检查是否有任何端口冲突或其他错误消息。
问题2: Logstash无法连接到Elasticsearch。
解决方法: 确认已正确链接elasticsearch容器并将其命名为“elasticsearch”。如果问题仍然存在,请检查的Logstash配置文件是否正确指定了Elasticsearch主机和端口。
问题3: Kibana控制台无法访问。
解决方法: 确认Kibana容器是否正在运行,并检查是否有任何端口冲突或其他错误消息。如果问题仍然存在,请尝试重新启动Kibana容器。