网站开发的阶段,常州做网站找哪家好,网站对域名,做网站的题目关于LogStash
Logstash#xff0c;作为Elastic Stack家族中的核心成员之一#xff0c;是一个功能强大的开源数据收集引擎。它专长于从各种来源动态地获取、解析、转换和丰富数据#xff0c;并将这些结构化或非结构化的数据高效地传输到诸如Elasticsearch等存储系统中进行集…关于LogStash
Logstash作为Elastic Stack家族中的核心成员之一是一个功能强大的开源数据收集引擎。它专长于从各种来源动态地获取、解析、转换和丰富数据并将这些结构化或非结构化的数据高效地传输到诸如Elasticsearch等存储系统中进行集中分析和可视化展现。在本文中我们将详细介绍如何借助Docker容器技术快速安装配置Logstash以实现日志及各类事件数据的无缝集成与实时处理。 拉取镜像并拷贝配置
docker run -d --name logstash logstash:7.14.1# 拷贝数据
docker cp logstash:/usr/share/logstash/config ./config
docker cp logstash:/usr/share/logstash/data ./data
docker cp logstash:/usr/share/logstash/pipeline ./pipeline#文件夹赋权
chmod -R 777 ./config ./data ./pipeline修改相应配置文件 修改config 下的 logstash.yml 文件主要修改 es 的地址 http.host: 0.0.0.0
xpack.monitoring.elasticsearch.hosts: [ http://elasticsearch:9200 ]http.host当设置为 “0.0.0.0” 时意味着服务将在所有可用网络接口上监听HTTP请求允许任何IP地址的客户端连接。xpack.monitoring.elasticsearch.hosts指向Elasticsearch服务的URL -http://elasticsearch:9200但这里没有使用具体的IP地址而是用了一个名为 elasticsearch 的服务名或容器名。
elasticsearch:9200 就是通过内部DNS解析机制引用在同一网络命名空间下的Elasticsearch服务容器的9200端口这意味着Logstash或相关组件收集的监控信息将被自动发送到关联的Elasticsearch容器进行存储和分析。
安全考虑 如果为了安全考虑给ElasticSearch设置了访问认证则需要配置用户名与密码需要新增2条认证配置
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: 123456最终示例
http.host: 0.0.0.0
xpack.monitoring.elasticsearch.hosts: [ http://elasticsearch:9200 ]
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: 123456修改config下的jvm.options
在Elasticsearch、Logstash或其他使用Java虚拟机JVM的应用程序中jvm.options 文件是用来配置JVM运行时参数的重要文件。当你需要调整JVM相关的设置比如堆内存大小、垃圾回收策略、线程数量等时就需要修改这个文件。
# 增加JVM堆内存大小
-Xms512m
-Xmx512m修改pipeline 下的 logstash.conf
input {tcp {mode serverhost 0.0.0.0port 5044codec json_lines}
}output {elasticsearch {hosts [http://124.221.147.235:9200]user elasticpassword 123456index logs-%{YYYY.MM}codec json}stdout {codec rubydebug}
}input部分
使用TCP输入插件tcp创建一个服务器监听器等待来自客户端的连接。 mode server 指定为服务器模式接受来自其他服务或应用的日志数据。host 0.0.0.0 表示在所有网络接口上监听连接请求。port 5044 设置了监听端口为5044。codec json_lines 指定了编解码器类型这意味着每个TCP消息应该包含一个或多条JSON格式的数据每行一条JSON记录。
output部分
使用Elasticsearch输出插件elasticsearch将处理后的日志事件发送到Elasticsearch集群。 hosts 127.0.0.1:9200 设置了Elasticsearch集群的地址与端口这里指本地主机上的默认Elasticsearch实例。index %{[spring.application.name]}-%{YYYY.MM.dd} 定义了索引名称模板。该模板会根据事件中的字段动态生成索引名其中 %{[spring.application.name]} 是从日志事件中提取的Spring Boot应用的名字作为索引前缀。%{YYYY.MM.dd} 是基于当前日期时间动态生成的索引后缀每天都会创建一个新的索引以存储当天的日志数据。
这样配置后Logstash将作为一个TCP日志收集服务器运行并且能够接收JSON格式的日志数据然后将其按照指定的规则写入到Elasticsearch集群中相应的索引里便于后续进行搜索、分析和可视化展示。
启动容器并挂载
#注意先删除之前的容器
docker rm -f logstash# 启动容器并挂载
docker run --name logstash \
-p 5044:5044 \
-p 9600:9600 \
--privilegedtrue \
-e ES_JAVA_OPTS-Duser.timezoneAsia/Shanghai \
-v /mydata/logstash/pipeline/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
-v /mydata/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
-d logstash:7.14.2查看运行情况
docker logs -f logstashSpringBoot 整合 ELK
引入Maven依赖
!-- logstash --
dependencygroupIdnet.logstash.logback/groupIdartifactIdlogstash-logback-encoder/artifactIdversion7.1.1/version
/dependency修改项目内的 logback.xml 文件 增加 logstash 配置 springProperty scopecontext nameappName sourcespring.application.name/!--输出到logstash的appender--appender namelogstash classnet.logstash.logback.appender.LogstashTcpSocketAppender!--可以访问的logstash日志收集端口--destination127.0.0.1:5044/destinationencoder charsetUTF-8 classnet.logstash.logback.encoder.LogstashEncodercustomFields{spring.application.name:${appName}}/customFields/encoder/appenderroot levelinfoappender-ref reflogstash//root启动项目查看是否成功推送日志 教程结束