Grafana监控java应用以及vCenter的方法


背景

最开始弄过vCenter的监控.
但是发现很多地方已经不合适了.
今天看了下jmx监控 java的应用. 顺便监控了下vCenter.
这里简单记录一下, 以便备忘.
需要注意的是 这里其实并不优秀 因为使用了agent 可能对产品有负面影响.

jmx监控

思路:
利用 javaagent的方式暴露一个端口出来.
然后通过prometheus 收集暴露出来的数据
通过grafana进行展示. 需要下载的文件主要有:
jmx_prometheus_javaagent-0.17.2.jar
prometheus-2.39.0-rc.0.linux-amd64.tar.gz
grafana-enterprise-9.1.6-1.x86_64.rpm

jmx监控准备

  • 添加一个配置文件:
cat >simple-config.yml <<-EOF
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
name: os_$1_bytes
type: GAUGE
attrNameSnakeCase: true
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true
EOF

启动脚本修改

在启动脚本的地方增加如下配置.
-javaagent:./jmx_prometheus_javaagent-0.17.2.jar=8080:simple-config.yml 添加之后启动服务就可以了.

修改prometheus

安装prometheus. 然后进行相应的配置
tar包安装非常简单, 建议直接在 /prometheus 目录下进行解压缩.
然后修改 prometheus.yaml 文件, 添加对应就可以了.
我这边的配置文件如下:
注意1: 需要记住 job_name. grafana里面需要进行设置.
注意2: instance: grafana里面可以进行区分. scrape_configs:
- job_name: jmx
static_configs:
- targets: ['localhost:8080']
labels:
instance: xxx-server
- targets: ['10.110.83.113:8080']
labels:
instance: xxx-dm

安装Grafana

rpm包安装grafana就可以了.
安装成功后:
systemctl enable grafana-server.service
systemctl restart grafana-server.service
注意需要设置一下密码
默认密码是 admin/admin

配置Grafana

第一步: 增加数据源
点击左下角的齿轮状配置按钮.
add data source
选择prometheus就可以了.
注意可以讲本地IP地址设为白名单.
然后将本地IP地址添加进去. 第二步: 导入dashboard
点击左上角 四个正方形的按钮.
browse 然后点击new 的下拉列表. 选择import
输入: 8563
就可以导入 JVM dashboard

效果图

vCenter的展示

跟之前写的一样, 这里面用到了influxdb以及telegraf
需要的文件主要有: influxdb-1.8.9.x86_64.rpm
telegraf-1.19.2-1.x86_64.rpm 注意安装方式有是本地安装就可以.
这里吐槽一下OpenEuler:
第一: ESXi使用 6.7 More的兼容配置,无法读取安装介质.无法安装
第二: influxdb 安装完没有形成 influxdb 的配置文件的步骤.

influxdb的设置.

这里还是用的1.x
本着够用就好的方针..
安装完成之后 命令行输入 influx 就可以登录数据库
需要注意的是 需要先启动服务
systemctl restart influxdb
添加用户以及修改密码的命令:
CREATE USER "influxdb" WITH PASSWORD 'Test@xxxxxxx'
GRANT ALL PRIVILEGES TO influxdb

Telegraf 的设置

注意 Telegraf里面添加了配置之后会自动创建数据库.
另外需要注意的是 要监控vCenter 可能需要两个Telegraf来运行
但是可以导入到一个influxdb的数据库里面.
配置文件举例为:
/etc/telegraf/{telegraf01.conf,telegraf02.conf}
注意两个配置文件唯一不同的可能就是 vcenter的用户以及密码. 需要注意 主要有input和output 两处设置.
模板就是如下:

Telegraf模板配置文件

[global_tags]
[agent]
interval = "10s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "10s"
flush_jitter = "0s"
precision = ""
hostname = ""
omit_hostname = false
[[outputs.influxdb]]
#这里需要修改。
urls = ["http://127.0.0.1:8086"]
database = "vm187"
timeout = "0s"
username = "zhaobsh"
password = "Test@xxxx"
[[inputs.vsphere]]
# 这里需要设置为密码
vcenters = [ "https://10.110.xx.xx/sdk" ]
username = "administrator@vsphere.local"
password = "somepassword"
vm_metric_include = [
"cpu.demand.average",
"cpu.idle.summation",
"cpu.latency.average",
"cpu.readiness.average",
"cpu.ready.summation",
"cpu.run.summation",
"cpu.usagemhz.average",
"cpu.used.summation",
"cpu.wait.summation",
"mem.active.average",
"mem.granted.average",
"mem.latency.average",
"mem.swapin.average",
"mem.swapinRate.average",
"mem.swapout.average",
"mem.swapoutRate.average",
"mem.usage.average",
"mem.vmmemctl.average",
"net.bytesRx.average",
"net.bytesTx.average",
"net.droppedRx.summation",
"net.droppedTx.summation",
"net.usage.average",
"power.power.average",
"virtualDisk.numberReadAveraged.average",
"virtualDisk.numberWriteAveraged.average",
"virtualDisk.read.average",
"virtualDisk.readOIO.latest",
"virtualDisk.throughput.usage.average",
"virtualDisk.totalReadLatency.average",
"virtualDisk.totalWriteLatency.average",
"virtualDisk.write.average",
"virtualDisk.writeOIO.latest",
"sys.uptime.latest",
]
host_metric_include = [
"cpu.coreUtilization.average",
"cpu.costop.summation",
"cpu.demand.average",
"cpu.idle.summation",
"cpu.latency.average",
"cpu.readiness.average",
"cpu.ready.summation",
"cpu.swapwait.summation",
"cpu.usage.average",
"cpu.usagemhz.average",
"cpu.used.summation",
"cpu.utilization.average",
"cpu.wait.summation",
"disk.deviceReadLatency.average",
"disk.deviceWriteLatency.average",
"disk.kernelReadLatency.average",
"disk.kernelWriteLatency.average",
"disk.numberReadAveraged.average",
"disk.numberWriteAveraged.average",
"disk.read.average",
"disk.totalReadLatency.average",
"disk.totalWriteLatency.average",
"disk.write.average",
"mem.active.average",
"mem.latency.average",
"mem.state.latest",
"mem.swapin.average",
"mem.swapinRate.average",
"mem.swapout.average",
"mem.swapoutRate.average",
"mem.totalCapacity.average",
"mem.usage.average",
"mem.vmmemctl.average",
"net.bytesRx.average",
"net.bytesTx.average",
"net.droppedRx.summation",
"net.droppedTx.summation",
"net.errorsRx.summation",
"net.errorsTx.summation",
"net.usage.average",
"power.power.average",
"storageAdapter.numberReadAveraged.average",
"storageAdapter.numberWriteAveraged.average",
"storageAdapter.read.average",
"storageAdapter.write.average",
"sys.uptime.latest",
]
cluster_metric_include = []
datastore_metric_include = []
datacenter_metric_include = []
datacenter_metric_exclude = [ "*" ]
insecure_skip_verify = true

手动启动telegraf

nohup telegraf -config /etc/telegraf/telegraf01.conf >/dev/null 2>1.txt &
nohup telegraf -config /etc/telegraf/telegraf02.conf >/dev/null 2>2.txt & 注意 手动启动就可以. 重启机器后需要重新启动.

Grafana监控vCenter

第一步: 添加数据源:
注意选择influxdb
地址可以输入ip地址比如我这个:
http://10.110.136.70:8086
influxdb数据库选择 telegraf里面定义的那个
用户密码输入 创建的有权限的用户和密码就可以了.

Grafana监控vCenter

导入grafana的配置项目主要有如下三个:
其他的好像需要更高的版本
名称 编号
vSphere - Overview 12786
vSphere - Host details 12852
vSphere - VM details 12874

Grafana监控vCenter的简要效果

  • 概览信息


  • 宿主机的信息


  • 虚拟机的信息

Grafana监控java应用以及vCenter的方法的更多相关文章

  1. 在Docker中监控Java应用程序的5个方法

    译者注:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.通常情况下,监控的主要目的在于:减少宕机 ...

  2. 快速接入业务监控体系,grafana监控的艺术

    做一个系统,如果不做监控,是不完善的. 如果为做一个快速系统,花力气去做监控,是不值得的. 因为,我们有必要具备一个能够快速建立监控体系的能力.即使你只是一个普通开发人员! 个人觉得,做监控有三个核心 ...

  3. [转帖]使用Grafana和Telegraf监视VMware ESXi的方法

    使用Grafana和Telegraf监视VMware ESXi的方法 2019-04-03 15:28:30作者:曾秀珠稿源:云网牛站 https://ywnz.com/linuxyffq/4660. ...

  4. Prometheus+Grafana监控SpringBoot

    Prometheus+Grafana监控SpringBoot 一.Prometheus监控SpringBoot 1.1 pom.xml添加依赖 1.2 修改application.yml配置文件 1. ...

  5. Spark-StructuredStreaming 下的checkpointLocation分析以及对接 Grafana 监控和提交Kafka Lag 监控

    一.Spark-StructuredStreaming checkpointLocation 介绍 Structured Streaming 在 Spark 2.0 版本于 2016 年引入, 是基于 ...

  6. Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

    转载自:https://cloud.tencent.com/developer/article/1508319 文章目录1.Micrometer 介绍2.环境.软件准备3.Spring Boot 工程 ...

  7. 利用JConsole工具监控java程序内存和JVM

    一.找到java应用程序对应的进程PI 性能测试应用程序访问地址:http://192.168.29.218:7070/training/ 部署的应用服务器为tomcat6.028 启动tomcat服 ...

  8. 编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则)

    编写高质量代码:改善Java程序的151个建议(第一章:JAVA开发中通用的方法和准则) 目录 建议1: 不要在常量和变量中出现易混淆的字母 建议2: 莫让常量蜕变成变量 建议3: 三元操作符的类型务 ...

  9. (转)利用JConsole工具监控java程序内存和JVM

    转自:http://www.cnblogs.com/luihengk/p/5446279.html 一.找到java应用程序对应的进程PI 性能测试应用程序访问地址:http://192.168.29 ...

  10. 利用VisualVm和JMX远程监控Java进程

    自Java 6开始,Java程序启动时都会在JVM内部启动一个JMX agent,JMX agent会启动一个MBean server组件,把MBeans(Java平台标准的MBean + 你自己创建 ...

随机推荐

  1. 为AR&VR黑科技:以“自由视角”360度尽展舞台唯美

    摘要:看华为的黑科技,如何用"自由视角"让观众感受舞台"风暴"的魅力所在. "风暴"降临 2021年1月9日晚上,我坐在电视机前,等待湖南卫 ...

  2. Python 没有函数重载?如何用装饰器实现函数重载?

    摘要:Python 不支持函数重载.当我们定义了多个同名的函数时,后面的函数总是会覆盖前面的函数,因此,在一个命名空间中,每个函数名仅会有一个登记项(entry). 本文分享自华为云社区<为什么 ...

  3. 详解MRS CDL整体架构设计

    摘要:MRS CDL是FusionInsight MRS推出的一种数据实时同步服务,旨在将传统OLTP数据库中的事件信息捕捉并实时推送到大数据产品中去,本文档会详细为大家介绍CDL的整体架构以及关键技 ...

  4. 分享个本地maven配置

    用阿里云的快有点受不了了,经常有包下载不了 settings.xml <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0&q ...

  5. python 升级后 yum 无法使用 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: `/usr/libexec/urlgrabber-ext-down`

    原因为升级python后新建了软连接指向了新版本,除非同时升级yum不然无法使用.需要手动更改报错文件指向新版本后即可解决. [root@localhost pdserving]# yum insta ...

  6. vue3.0 学习使用记录

    vue学习 在最近的一次项目中,前端js框架里使用了vue.vue的编程思想比较新颖,用起来也感觉高效便捷.由于个人原因,做完这个项目之后可能就接触不到前端的内容了,所以记录这个项目中对vue的学习和 ...

  7. 数字孪生 3D 风电场,智慧风电之海上风电

    前言 截止 2021 年,全球已有 127 个国家做出了"碳中和"的承诺,能源低碳转型和实现碳中和已经成为全球共同的战略目标.根据权威机构预测,到 2050 年,可再生能源发电将占 ...

  8. 基于阿里云Serverless函数计算开发的疫情数据统计推送机器人

    一.Serverless函数计算 什么是Serverless? 在<Serverless Architectures>中对 Serverless 是这样子定义的: Serverless w ...

  9. 【调试】sysRq按键使用方法

    SysRq键简介 SysRq键是一个魔术案件,只要在内核没有完全卡死的情况下,内核都会相应SysRq 键的输入,使用这些组合键都可以搜集包括系统内存使用.CPU任务处理.进程运行状态等系统运行信息. ...

  10. uni-app滚动加载下一页

    https://www.bilibili.com/video/BV1BJ411W7pX?p=39