前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Netdata里监控Springboot2应用运行情况

在Netdata里监控Springboot2应用运行情况

作者头像
用户8554325
发布2023-03-10 20:07:48
8560
发布2023-03-10 20:07:48
举报
文章被收录于专栏:热度技术热度技术

netdata简单介绍

NetData 是一个用于系统和应用的分布式实时性能和健康监控工具。它提供了对系统中实时发生的所有事情的全面检测。你可以在高度互动的 Web 仪表板中查看结果。使用 Netdata,你可以清楚地了解现在发生的事情,以及之前系统和应用中发生的事情。你无需成为专家即可在 Linux 系统中部署此工具。NetData 开箱即用,零配置、零依赖。只需安装它然后坐等,之后 NetData 将负责其余部分。

Netdata是一款秒级数据收集与可视化呈现的Linux服务器性能监测工具,对优化应用性能,保证服务器健康运行有着极为重要的作用,它可以监控服务器的健康运行参数及状态,包括CPU,内存,网络,磁盘等常用的监控指标,以及自己配置扩展监控项,如,redis, tomcat, mysql, nginx, elasticsearch等。

它有自己的内置 Web 服务器,以图形形式显示结果。NetData 非常快速高效,安装后可立即开始分析系统性能。它是用 C 编程语言编写的,所以它非常轻量。它占用的单核 CPU 使用率不到 3%,内存占用 10-15MB。我们可以轻松地在任何现有网页上嵌入图表,并且它还有一个插件 API,以便你可以监控任何应用。

netdata一些特性

linteractive bootstrap dashboards, 酷炫

l所有请求每个metreic都在0.5ms内响应,即便是一台烂机器

l非常高效,每秒采集数千个指标,但仅占cpu单核1%,少量MB的内存以及完全没有磁盘IO

l提供复杂的、各种类型的告警,支持动态阈值、告警模板、多种通知方式等

l可扩展,使用自带的插件API(比如bash, python, perl, node.js, java, go, ruby等)来收集任何可以衡量的数据

l零配置:安装后netdata会自动的监测一切

l零依赖:netdata有自己的web server, 提供静态web文件和web API 零维护:只管跑上!

l支撑多种时间序列后端服务,比如graphite, opentsdb, prometheus, json document DBs

netdata简易安装流程(centos为例)

1.下载netdata代码,执行以下命令

git clone https://github.com/firehol/netdata.git

2.安装netdata所需系统依赖库

yum install autoconf automake curl gcc git libmnl-devel libuuid-devel lm_sensors make MySQL-python nc pkgconfig python python-psycopg2 PyYAML zlib-devel libuv-devel

3.进入netdata代码目录,执行安装及编译

cd netdata && ./netdata-installer.sh

4.netdata启动及配置(开机启动)

cp system/netdata-init-d /etc/init.d/netdata

chmod +x /etc/init.d/netdata

chkconfig --add netdata

systemctl restart netdata

至此,你已经在服务器节点完成netdata的安装,然后在浏览器直接打开:

http://xx.xx.oo.oo:19999/ 即可看到上面的截图页面效果。

当然,以上是单机的配置,如果你想监控集群里的服务节点,就得集群安装(即在每个服务节点完整安装netdata,然后通过修改配置即可)

netdata集群的方式:Netdata本身不存在主从服务,搭建集群需要在每一个节点上完整部署Netdata,流数据汇总到一台主服务器上。数据处理全部在主服务器上进行,各个节点服务器不打开19999端口供查看,只是把收集到的数据发送到主服务器上,官网链接:https://docs.netdata.cloud/streaming/

netdata主节点配置

netdata.conf配置修改(/etc/netdata/netdata.conf)

[global]

hostname = master

新增stream.conf(/etc/netdata/stream.conf)

配置示例:

api key 是uuid生成的。

完成以上修改后,重启netdata服务。

netdata从节点配置

1.修改netdata.conf(/etc/netdata/netdata.conf)

代码语言:javascript
复制
[global] 
memory mode = none 
hostname = slave-10 [web] 
mode = none
[health] 
enabled = no

关闭web,增加主机名。

2.新增 stream.conf(/etc/netdata/stream.conf )

代码语言:javascript
复制
[stream] 
enabled = yes 
destination = 10.10.10.10:19999 # 主netdata机器ip+端口 
api key = b25a8036-6b4d-4108-b0bd-96937720f303 # uuid(uuidgen生成),提供给主节点识别

完成以上配置,重启服务即可

刷新主服务器,可以在左上角看到效果

netdata监听springboot2的配置

官方链接:Java Spring Boot 2 application monitoring with Netdata

简单的翻译如下:

使用Netdata监视Java Spring Boot 2应用程序该模块根据配置监视一个或多个Java Spring-boot 2应用程序。

Netdata可用于监视运行中的Java Spring Boot 2应用程序,这些应用程序通过使用Spring Boot库中包含的Spring Boot Actuator公开指标。

默认情况下,Springboot2模块会查找以下两个公开链接:

http//localhost:8080/actuator/prometheus

http://127.0.0.1:8080/actuator/prometheus

来检测Spring Boot应用程序。

Springboot监控图表如下

l请求中的响应代码 ()

l线程中的线程

l堆内存使用情况概述(以字节为单位)

l堆内存使用率Eden使用空间(以字节为单位)

l堆内存使用Survivor空间(以字节为单位)

l 堆内存使用Old空间(以字节为单位)

l Uptime 正常运行时间(以秒为单位)

springboot2项目配置netdata

项目配置

在需要被监控的springboot2项目pom上增加如下图所示的依赖

代码语言:javascript
复制
org.springframework.boot
spring-boot-starter-actuator
compile
io.micrometer
micrometer-registry-prometheus

1.6.3

springboot的application.proerties配置修改

部署了springboot2应用的服务器节点上的netdata配置修改

进入目录:/etc/netdata,执行以下命令(确保按照以下命令执行,否则可能不成功)

sudo ./edit-config go.d/springboot2.conf

代码语言:javascript
复制
# [ JOBS ]
jobs:
  - name: local
 url: http://localhost:12000/actuator/prometheus

这里区分local与远程,只要把ip放到这里即可,因为我们服务器环境,所有重要的服务都安装漏netdata,只需要去nacos看看每个服务器上的springboot进程有哪些,就逐一填入这里即可;

到此,完成了以上步骤,你如果刷新netdata的监控页面或者重启netdata服务,其实还无法看到netdata监控springboot的监控图表出现,因为还缺少最后一步,启动springboot2监控:

cd /usr/libexec/netdata/plugins.d/

sudo -u netdata -s

./go.d.plugin -d -m springboot2

完成效果展示

总结

在这里,我简单介绍了netdata服务器监控软件的安装、单机监控以及集群服务监控的方式,同时,也根据实际工作中的经历,给大家介绍了在netdata里如何监控springboot2的配置。在此,我相信应该没其他人完整详细说过,因为这是我自己工作实际中摸索出来的,经历不少挫折的!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 聊聊电商业务与技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • netdata简单介绍
  • netdata监听springboot2的配置
  • springboot2项目配置netdata
    • 项目配置
      • 完成效果展示
      • 总结
      相关产品与服务
      云数据库 MySQL
      腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档