软件网站下载,现在出入深圳最新规定,seo名词解释,何为响应式网站第一步#xff1a;环境准备 请确保您的机器上已经安装了 Docker 和 Docker Compose。
第二步#xff1a;创建项目目录和配置文件 为了让 Docker Compose 能够正确地构建和管理容器#xff0c;我们需要创建一个特定的目录结构。
创建一个主目录#xff0c;例如 elk-stack。…第一步环境准备 请确保您的机器上已经安装了 Docker 和 Docker Compose。
第二步创建项目目录和配置文件 为了让 Docker Compose 能够正确地构建和管理容器我们需要创建一个特定的目录结构。
创建一个主目录例如 elk-stack。 在 elk-stack 内部创建 docker-compose.yml 文件。 在 elk-stack 内部创建一个 logstash 目录并在其中再创建一个 pipeline 目录。 在 logstash/pipeline 目录中创建 logstash.conf 文件。 最终的目录结构如下
elk-stack/
├── docker-compose.yml
└── logstash/└── pipeline/└── logstash.conf第三步编写配置文件 现在我们将填充这些文件的内容。
docker-compose.yml 这是最核心的编排文件。它定义了 ELK 的三个服务并将它们连接在一起。请将以下内容复制到 elk-stack/docker-compose.yml 文件中。
重要提示Elasticsearch, Kibana, 和 Logstash 的版本号必须完全一致否则可能会出现兼容性问题。这里我们使用 8.14.0 版本。
version: 3.8services:elasticsearch:image: elasticsearch:8.14.0container_name: elasticsearchenvironment:- discovery.typesingle-node- xpack.security.enabledfalse # 为方便测试禁用安全功能。生产环境强烈建议开启- ES_JAVA_OPTS-Xms1g -Xmx1g # 根据您的机器内存调整建议至少1GBvolumes:- es-data:/usr/share/elasticsearch/dataports:- 9200:9200- 9300:9300networks:- elk-netkibana:image: kibana:8.14.0container_name: kibanaenvironment:- ELASTICSEARCH_HOSTShttp://elasticsearch:9200 # 指向 Elasticsearch 容器ports:- 5601:5601depends_on:- elasticsearchnetworks:- elk-netlogstash:image: logstash:8.14.0container_name: logstashvolumes:- ./logstash/pipeline:/usr/share/logstash/pipeline:ro # 挂载 Logstash 管道配置ports:- 5000:5000/tcp # 为数据输入开放 TCP 端口- 5000:5000/udpdepends_on:- elasticsearchnetworks:- elk-netvolumes:es-data:driver: localnetworks:elk-net:driver: bridge配置说明:
discovery.typesingle-node: 告知 Elasticsearch 这是一个单节点实例无需进行集群发现。 xpack.security.enabledfalse: 为了简化初次设置我们禁用了 Elasticsearch 的安全特性如用户名密码认证。在生产环境中请务必将其设置为 true 并配置好密码。 volumes: 我们为 Elasticsearch 的数据创建了一个名为 es-data 的持久化数据卷这样即使容器被删除数据也不会丢失。同时我们将本地的 Logstash 配置文件挂载到了 Logstash 容器中。 networks: 我们创建了一个名为 elk-net 的桥接网络让三个容器可以通过服务名elasticsearch, kibana, logstash相互通信。 depends_on: 确保 Elasticsearch 容器启动后Kibana 和 Logstash 才会启动。 2. logstash/pipeline/logstash.conf 这个文件定义了 Logstash 的数据处理管道从哪里接收数据input如何处理数据filter以及将数据发送到哪里output。
将以下内容复制到 elk-stack/logstash/pipeline/logstash.conf 文件中。
input {# 通过 TCP 协议监听 5000 端口接收 JSON 格式的日志tcp {port 5000codec json_lines}
}filter {# 此处可以添加过滤规则例如 grok, mutate 等# 暂时留空作为示例
}output {# 将处理后的数据输出到 Elasticsearchelasticsearch {hosts [http://elasticsearch:9200]index logstash-%{YYYY.MM.dd} # 索引名称格式}# 同时在 Logstash 容器的控制台打印输出方便调试stdout {codec rubydebug}
}这个配置表示 Logstash 会
Input: 监听 TCP 端口 5000并期望接收到的每行都是一个独立的 JSON 对象。 Output: 将数据发送到名为 elasticsearch 的主机的 9200 端口并根据日期创建索引例如 logstash-2025.06.26。 第四步启动和验证 ELK Stack 万事俱备现在可以启动整个技术栈了。
启动服务 在 elk-stack 目录下打开终端并运行以下命令
docker-compose up -d 有的版本是docker cpmpose这个命令会在后台-d拉取镜像并启动所有服务。第一次启动可能需要一些时间来下载镜像。
检查容器状态 等待一两分钟后运行以下命令检查所有容器是否都已正常运行
docker-compose ps应该能看到 elasticsearch, kibana, 和 logstash 三个容器的状态都是 Up 或 running。
验证服务
Elasticsearch: 在浏览器或使用 curl 访问 http://localhost:9200。如果看到一个包含版本信息的 JSON 响应说明 Elasticsearch 已成功运行。 Kibana: 在浏览器中访问 http://localhost:5601。应该能看到 Kibana 的欢迎界面。由于启动需要时间如果无法访问请稍等片刻再刷新。 第五步发送并查看测试日志 现在我们来测试整个数据流是否通畅。
发送日志到 Logstash 打开一个新的终端使用 netcat (或 nc) 工具向 Logstash 的 5000 端口发送一条 JSON 格式的日志。
echo {level: info, service: my-app, message: 这是一个测试日志} | nc localhost 5000如果您没有 nc也可以使用 curl
curl -X POST -H Content-Type: application/json -d {level: info, service: my-app, message: 这是另一个测试日志} http://localhost:5000注意此处的 curl 能否成功取决于您的 input 插件对于 tcp 插件nc 是更可靠的测试工具。
在 Kibana 中查看日志
打开 Kibana 界面 (http://localhost:5601)。 点击左上角的汉堡菜单 (☰)进入 Management Stack Management。 在 Kibana 分类下选择 Data Views (或旧版中的 Index Patterns)。 点击 Create data view。 在 Name 和 Index pattern 字段中输入 logstash-*Kibana 应该会自动识别出我们刚刚创建的索引。 点击 Save data view to Kibana。 创建成功后再次点击左上角的汉堡菜单 (☰)进入 Analytics Discover。 应该能看到刚刚发送的那条测试日志了可以展开日志条目查看详细的 JSON 字段。
若是想监控jar包可以参考 https://blog.csdn.net/CodeTom/article/details/148954231?sharetypeblogdetailsharerId148954231sharereferPCsharesourceCodeTomspm1011.2480.3001.8118