阿里拍卖4个深交所交易席位各60万成交
06-18
1.简介 ELK主要对我们平台系统中各个服务的业务日志进行收集、分析和预警。一般是通过日志组件(log4j、log4j2、logback)收集并写入输入文本。
但对于系统本身和一些应用软件的监控预警来说,这种方案显然是不合适的。这里推荐GPE三剑客;基本上主流的中间件和应用程序都可以监控,而且大部分都是无代码的。
为了让综合监控方案更加流畅完整,Grafana、Prometheus、Exporter(一系列插件)都增加了服务发现的注册中心,动态添加服务,并使用邮件、钉钉、webhook等方式来实现异常报警。 Prometheus:是一个开源的服务监控系统,通过HTTP协议从远程机器收集数据并存储在本地时间序列数据库中。
Grafana:它是一个开箱即用的可视化工具,具有功能齐全的指标仪表板和图形编辑器。它具有灵活丰富的图形选项,可以混合多种样式,支持多种数据源的特性。
Exporter:是一系列支持黑盒获取指标的插件和外部进程(代码无侵入)工作流程:Exporter组件获取服务器或系统软件的指标。 Prometheus 将 Exporter 的指标拉至本地存储。
Grafana配置Prometheus数据源以获取其收集数据。结合自定义面板实现大屏监控,Grafana通过设置Alerting实现监控和预警。
Prometheus是SoundCloud开发的开源监控报警系统和时间序列数据库(TSDB)。 Prometheus 使用 Go 语言开发,是 Google BorgMon 监控系统的开源版本。
2016年,谷歌在Linux基金会下推出了云原生计算基金会,并将Prometheus纳入其第二大开源项目。 Prometheus目前在开源社区相当活跃。
Prometheus和Heapster(Heapster是K8S的子项目,用于获取集群性能数据。)功能更加完善和全面。
Prometheus的性能也足以支持数万台的集群。与其他监控系统相比,Prometheus的主要特点是:多维数据模型。
灵活的查询语言。不依赖分布式存储,各个服务器节点是自治的。
通过基于HTTP的pull方法收集时间序列数据。时间序列数据可以通过中间网关推送。
通过服务发现或静态配置来发现目标服务对象。支持多种图表和界面展示,如Grafana等。
2、Prometheus架构的服务流程如下。 Prometheus 守护进程负责定期从目标捕获指标数据。
每个捕获目标都需要暴露一个http服务接口以供其定期捕获。 Prometheus:支持通过配置文件、文本文件、zookeeper、Consul、DNS SRV查找等方式指定抓取目标,支持多种图表可视化方式,比如非常漂亮的Grafana、内置的Promdash以及自带的模板引擎,等等。
它还提供HTTP API查询方法来定制所需的输出。 Alertmanager:是一个独立于Prometheus的组件。
可以支持Prometheus查询语句,提供非常灵活的报警方式。 PushGateway:该组件支持Client主动推送指标到PushGateway,而Prometheus只是定期从Gateway获取数据。
大多数 Prometheus 组件都是用 Go 编写的,它们可以作为静态二进制文件轻松构建和部署。请访问 prometheus.io 以获取完整的文档、示例和指南。
3.基本原理 Prometheus的基本原理是通过HTTP协议定期捕获被监控组件的状态。任何组件只要提供相应的HTTP接口就可以访问监控。
无需 SDK 或其他集成过程。这非常适合虚拟化环境监控系统,例如VM、Docker、Kubernetes等。
输出受监控组件信息的HTTP接口称为导出器。目前互联网公司常用的大部分组件都有可以直接使用的导出器,例如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等)。
4.服务流程 Prometheus Daemon负责定期从目标捕获metrics数据。每个捕获目标都需要暴露一个http服务接口以供其定期捕获。
Prometheus支持通过配置文件、文本文件、Zookeeper、Consul、DNS SRV Lookup等方式指定爬取目标。Prometheus采用PULL方式进行监控,即服务器可以直接通过目标PULL数据推送数据,也可以通过中间网关间接推送数据。
Prometheus将所有捕获的数据存储在本地,通过一定的规则对数据进行清理和组织,并将结果存储在新的时间序列中。 Prometheus 通过 PromQL 和其他 API 直观地展示收集到的数据。
Prometheus支持多种图表可视化方式,例如Grafana、自带的Promdash、自带的模板引擎等。Prometheus还提供HTTP API查询方法来定制所需的输出。
PushGateway支持客户端主动推送指标到PushGateway,而Prometheus只是定期从Gateway获取数据。 Alertmanager是一个独立于Prometheus的组件。
可以支持Prometheus查询语句,提供非常灵活的报警方式。5.服务安装 5.1 安装prometheus5.1.1 下载并上传prometheus安装包 下载最新版本的prometheus 2.23.0,地址:-zxvf prometheus-2.23.0.linux-amd64.tar.gz5.1.2 修改配置文件代码语言:javascript 复制 vi /gpe/prometheus-2.23.0.linux-amd64/prometheus.yml 代码语言:javascript 复制 scrape_configs: - job_name: 'prometheus' static_configs: - 目标:['localhost:'] 标签:实例:prometheus5 .1.3 启动代码语言: javascript copy cd prometheus-2.23.0.linux-amd64nohup ./prometheus --config.file=prometheus.yml >/dev/null &5.1.4 安装grafana5.2.1即可进行验证 下载上传grafana安装包下载 grafana最新版本7.3.4,地址:-zxvf grafana-7.3.4.linux-amd64.tar.gz5.2.2 启动代码语言:javascript copy cd grafana-7.3.4nohup ./bin/grafana- server web >/dev/null &5.2.3 验证访问浏览器的默认账户密码为:admin/admin。
登录后,系统会要求您更改密码。 5.3 进入系统后,首次登录时会要求输入新密码,然后添加数据源Prometheus 6. Spring Cloud 微服务监控6.1。
引入jar包代码语言:javascript复制编译组:'io.micrometer',名称:'micrometer-registry-prometheus'编译组:'org.springframework.boot',名称:'spring-boot-starter-actuator' 6.2。修改yml配置文件代码语言:javascript copy#spring-boot-actuator配置管理:server:#区分执行器端口安全port:5servlet:#请求前缀context-path:/endpoints:web:exposure:include:'*'health : #关闭过滤敏感信息sensitive: false endpoint: shutdown: #是否启用shutdown端点enabled: true health: #何时显示完整的健康详细信息show -details: ALWAYS logfile: #是否启用日志文件端点enabled: truemetrics : #是否启用metrics端点enabled: true prometheus: #是否启用prometheus端点enabled: truemetrics:export: prometheus: #是否启用导出到prometheusenabled: true distribution : percentiles-histogram: http: server: #启用Micormeter requests: true sla: http: server: # Micormeter桶指示器配置,微米段记录请求:ms,ms,ms 百分位数:http: 服务器:#Micormeter 分位数指标配置请求:0.5,0.9,0.95,0.99,0。
标签: application: ${spring.application.name} 通过file_sd_configs配置服务发现。每次json文件的内容发生变化时,Prometheus都会自动刷新目标列表,并将其保存到/docker/prometheus/conf/file_sd_configs目录中。
注意路径。如果在prometheus中找不到配置服务的json文件,代码语言: javascript copy [ { "targets": [ "..20.89:" ], "labels": { "job":"spring-cloud-service" , "env":"test", "application":"spring-cloud-service-test", "instance":"..20.89: " } }, { "targets": [ "..20.89:" ], "labels": { "job":"spring-cloud-service", "env":"test", "application":"spring-cloud-service-test1", "instance":"..20.89:" } }]6.4。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-17
06-17
06-18
06-17
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用