Telegraf 是收集和报告指标和数据的代理
它是 TICK 堆栈的一部分, 是一个用于收集和报告指标的插件驱动的服务器代理 Telegraf 拥有插件或集成功能, 可直接从运行的系统获取各种指标, 从第三方 API 获取指标, 甚至通过 StatsD 和 Kafka 消费者服务来收听指标它还具有输出插件, 可将指标发送到各种其他数据存储, 服务和消息队列, 包括 InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ 等等
Spring Boot Actuator
Spring Boot Actuator 包含一个带 metrics 和 gauge 支持的度量服务量表记录单个值; '计数器'记录增量 (增量或减量)Spring Boot Actuator 还提供了一个 PublicMetrics 可以实现的 界面, 用于公开您无法通过这两种机制之一记录的指标看 SystemPublicMetrics 一个例子
将你的 springboot 项目中依赖 Spring Boot Actuator 的包, 启动之后会发现控制台打出的 mapped 变得很多了, 例如 / env/health/info 等等的信息, 恭喜你已经成功使用了 metric 对程序进行了简单的监控了, 在浏览器中输入本地的 ip 项目访问地址如: http://localhost:8080/metrics, 就会出现如下的数据
- {
- "counter.status.200.root": 20,
- "counter.status.200.metrics": 3,
- "counter.status.200.star-star": 5,
- "counter.status.401.root": 4,
- "gauge.response.star-star": 6,
- "gauge.response.root": 2,
- "gauge.response.metrics": 3,
- "classes": 5808,
- "classes.loaded": 5808,
- "classes.unloaded": 0,
- "heap": 3728384,
- "heap.committed": 986624,
- "heap.init": 262144,
- "heap.used": 52765,
- "nonheap": 0,
- "nonheap.committed": 77568,
- "nonheap.init": 2496,
- "nonheap.used": 75826,
- "mem": 986624,
- "mem.free": 933858,
- "processors": 8,
- "threads": 15,
- "threads.daemon": 11,
- "threads.peak": 15,
- "threads.totalStarted": 42,
- "uptime": 494836,
- "instance.uptime": 489782,
- "datasource.primary.active": 5,
- "datasource.primary.usage": 0.25
- }
管理员功能
通过指定
spring.application.admin.enabled
属性可以为应用程序启用与管理相关的功能 这暴露
SpringApplicationAdminMXBean
了平台上 MBeanServer 您可以使用此功能远程管理您的 Spring Boot 应用程序这对于任何服务包装器实现也是有用的
引入 spring-boot-admin 依赖
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-server</artifactId>
- <version>1.4.0</version>
- </dependency>
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-server-ui</artifactId>
- <version>1.4.0</version>
- </dependency>
如果您想知道应用程序在哪个 HTTP 端口上运行, 请使用密钥获取该属性 local.server.port
当启用此功能时要小心, 因为 MBean 公开了关闭应用程序的方法
使用 Jolokia 进行 JMX over HTTP
Jolokia 是一个 JMX-HTTP 桥梁, 它提供了访问 JMX bean 的另一种方法要使用 Jolokia, 只需添加依赖项即可
org.jolokia:jolokia-core
例如, 使用 Maven 你可以添加以下内容:
- <dependency>
- <groupId> org.jolokia </ groupId>
- <artifactId> jolokia-core </ artifactId>
- </ dependency>
在 application.yaml 后者 application.properties 中配置响应的配置
- jolokia.config.debug=true
- endpoints.jolokia.enabled=true
- #endpoints.jolokia.sensitive=true
- endpoints.jolokia.path=/jolokia
环境搭建
下载 Telegrafinfluxdb grafana, 我个人建议先搭建一个 windows 版本的环境自己配置玩一玩
- https://portal.influxdata.com/downloads#influxdb
- https://grafana.com/grafana/download?platform=windows
1 Influxdb 配置
修改 influxdb.conf, 设置日志文件目录:
- #cd 到安装解压的修改 influxdb.conf
- [admin]
- # Determines whether the admin service is enabled.
- enabled = true
- # The default bind address used by the admin service.
- bind-address = ":8083"
其他配置都是默认好的, 不用修改, 如果版本下载不一样可能需要修改, 不妨给我留言, 我会及时回复的
2 启动
通过 cmd 命令窗口, 切换到 influxdb 安装目录, 执行如下命令:
influxd -config influxdb.conf
通过 cmd 命令窗口, 切换到 Telegraf 安装目录, 执行如下命令:
telegraf -config telegraf.conf
切换到 Grafana 安装目录中的 bin 目录下, 双击 grafana-server.exe 启动程序
访问 http://locahost:8090, 这是可以配置的端口号, 可以访问了:
使用:
访问 http://localhost:8086, 使用 admin/admin 登录本机 Grafana, 新建 influxdb 数据源:
注意 Telegraf 启动后, 向 InfluxDb 中上报数据时, 会默认创建一个 telegraf 数据库, 所以上面我们配置 DataBase 是 telegraf
点击 new 创建一个 Dashboards
配置编辑会出来可配置页面:
点击 General: 配置基本的图表信息
点击 metrics, 配置收集到的收据信息, 实际就是写 sql 查询, 不同数据库数据 sql 书写方式不同
查看 http://localhost:8083, 可以发现 telegraf 库中, 默认有 4 个 Measurements(表):
配置 Grafana 中的面板完成后, 这样一个简易的本机监控系统就搭建完了:
来源: https://www.cnblogs.com/zhikou/p/8537074.html