定制网站前准备,大型电子商务建设公司,做营销的一般逛哪些网站,温州免费建站前言 你知道对于一个系统的上线考察#xff0c;必备的几样东西是什么吗#xff1f;其实这也是面试中考察求职者#xff0c;是否真的做过系统开发和上线的必备问题。包括#xff1a;服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志#xff0c;如果…前言 你知道对于一个系统的上线考察必备的几样东西是什么吗其实这也是面试中考察求职者是否真的做过系统开发和上线的必备问题。包括服务治理(熔断/限流) (opens new window)、监控 (opens new window)和日志如果你做的系统里没有这样几个东西一种是说明系统是玩具项目另外一种就是压根没做过或者没关心过。 Elastic Stack 技术栈别是 Elasticsearch、Logstash、Kibana 组成简称 ELK 是一套针对日志数据做解决方案的框架。它使您能够聚合来自所有系统和应用程序的日志分析这些日志并创建可视化来进行应用程序和基础设施监控、更快的故障排除、安全分析等。 综上3个组件的组合使用。由 Logstash 将摄取、转换数据并将其发送到 Elasticsearch 为摄取的数据编制索引并且分析和搜索这些数据。最终 Kibana 会将分析结果可视化。也就是你可以在 Kibana 上实时看到系统的运行日志。
环境配置 环境jdk 1.8、Maven 3.6.x、Docker 组件ELK version 7.17.14 支持 ARMAMD 1docker-compose.yml 运行时会加载下面的 kibana、logstash 配置信息。 2kibana.yml 设置了资源的基本信息包括 ES 的连接中文汉化。 3logstash.conf 设置了日志的格式上报到 es:9200 的地址信息。这些都可以保持默认不用修改。
安装环境
version: 3
# 执行脚本docker-compose -f docker-compose.yml up -d
# 控制台GET _cat/indices - 查看 springboot-logstash- 是否存在上报后存在则表示接入成功
services:elasticsearch:image: elasticsearch:7.17.14ports:- 9200:9200- 9300:9300container_name: elasticsearchrestart: alwaysenvironment:- cluster.nameelasticsearch # 设置集群名称为elasticsearch- discovery.typesingle-node # 以单一节点模式启动- cluster.namedocker-cluster # 设置名称- ES_JAVA_OPTS-Xms512m -Xmx512m # 设置使用jvm内存大小networks:- elklogstash:image: logstash:7.17.14container_name: logstashrestart: alwaysvolumes:- /etc/localtime:/etc/localtime- ./logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.confports:- 4560:4560- 50000:50000/tcp- 50000:50000/udp- 9600:9600environment:LS_JAVA_OPTS: -Xms1024m -Xmx1024mTZ: Asia/ShanghaiMONITORING_ENABLED: falselinks:- elasticsearch:es # 可以用es这个域名访问elasticsearch服务networks:- elkdepends_on:- elasticsearch # 依赖elasticsearch启动后在启动logstashkibana:image: kibana:7.17.14container_name: kibanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime- ./kibana/config/kibana.yml:/usr/share/kibana/config/kibana.ymlports:- 5601:5601links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务environment:- ELASTICSEARCH_URLhttp://elasticsearch:9200 #设置访问elasticsearch的地址- elasticsearch.hostshttp://es:9200 #设置访问elasticsearch的地址- I18N_LOCALEzh-CNnetworks:- elkdepends_on:- elasticsearchnetworks:elk:driver: bridge #网络
日志配置 引入pom.xml-logstash
dependencygroupIdnet.logstash.logback/groupIdartifactIdlogstash-logback-encoder/artifactIdversion7.3/version
/dependency
logback 采集
# logstash部署的服务器IP
logstash:host: 127.0.0.1
springProperty nameLOG_STASH_HOST scopecontext sourcelogstash.host defaultValue127.0.0.1/!--输出到logstash的appender--
appender nameLOGSTASH classnet.logstash.logback.appender.LogstashTcpSocketAppender!--可以访问的logstash日志收集端口--destination${LOG_STASH_HOST}:4560/destinationencoder charsetUTF-8 classnet.logstash.logback.encoder.LogstashEncoder/
/appenderroot levelinfoappender-ref refLOGSTASH/
/root
应用测试
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}/*** curl http://localhost:8091/api/ratelimiter/login?fingerprintuljpplllll01009uId1000token8790*/RequestMapping(value login, method RequestMethod.GET)public String login(String fingerprint, String uId, String token) {log.info(模拟登录 login fingerprint:{}, fingerprint);return 模拟登录登录成功 uId;}} 1地址http://0.0.0.0:5601/app/dev_tools#/console(opens new window) 2命令GET _cat/indices - 通过命令检测日志上报 配置日志 创建索引 当你的应用启动后会上报数据。这个时候在点击 Discover 会提示你有可用的数据。 回到监控 创建索引后回到 Discover 即可查看监控日志。在这个阶段你可以访问应用程序接口查看上报日志信息http://localhost:8091/api/ratelimiter/login?fingerprintuljpplllll01009uId1000token8790 当你不断的访问接口就可以看到上报的日志数据信息了。
好了 至此 ELK 使用教程采集系统日志 Elasticsearch、Logstash、Kibana 点点关注不迷路 老铁们