性能监控之Telegraf+InfluxDB+Grafana服务器实时监控

引言

JMeter的 PerfMonMetricsCollector插件支持收集服务器的性能指标,但是我们很少使用它,因为它收集起来的性能损耗太大了,另外,我们也需要收集JMeter的测试结果数据,在上文中,我们已经可以使用inflluxDB来存储性能测试结果,因此,我们也可以将服务器的性能数据存储到influxDB,那么通过Grafana我们可以实时得到一个炫酷的可视化看板。

目标

收集Linux APP服务器的性能指标:

  • cpu
  • disk
  • disk.io
  • processes
  • swap memory usage
  • memory usage
  • system load and uptime
  • network interface usage
  • inodes usage

解决方案

Telegraf

除非我自己修改JMeter源码,否则JMeter不会把收集的性能数据持久化到数据库的,但这样的成本太高,因此,我们选择更简单成本低的Telegraf作为采集服务。

Telegraf 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到InfluxDB 数据库。Telegraf 具有内存占用小的特点,通过插件系统可轻松添加支持其他服务的扩展。

TICK家族

官网地址:https://www.influxdata.com/time-series-platform/telegraf/

整体设计

Telegraf&InfluxDB集成

下载安装

[root@zuozewei ~]# wget https://dl.influxdata.com/telegraf/releases/telegraf-1.7.4-1.x86_64.rpm
[root@zuozewei ~]# yum localinstall telegraf-1.7.4-1.x86_64.rpm

创建influxDB用户和数据库

[root@zuozewei ~]# influx
Connected to http://localhost:8086 version 1.6.2
InfluxDB shell version: 1.6.2
> create user "telegraf" with password 'telegraf'
> create database telegraf
> show databases
name: databases
name
----
_internal
jmeter
demo
test
7dgroup
telegraf
> exit

配置Telegraf

[root@zuozewei ~]# vim /etc/telegraf/telegraf.conf 
# Configuration for sending metrics to InfluxDB
[[outputs.influxdb]]
  ## The full HTTP or UDP URL for your InfluxDB instance.
  urls = ["http://127.0.0.1:8086"]

  ## The target database for metrics; will be created as needed.
  database = "telegraf"

  ## Name of existing retention policy to write to.  Empty string writes to
  ## the default retention policy.  Only takes effect when using HTTP.
   retention_policy = ""

  ## Timeout for HTTP messages.
   timeout = "5s"

  ## HTTP Basic Auth
  username = "telegraf"
  password = "telegraf"

启动Telegraf

[root@zuozewei ~]# systemctl start telegraf

查看数据

[root@zuozewei ~]# influx
Connected to http://localhost:8086 version 1.6.2
InfluxDB shell version: 1.6.2
> use telegraf
Using database telegraf
>> show measurements
name: measurements
name
----
cpu
disk
diskio
kernel
mem
processes
swap
system

性能数据已经成功保存~

InfluxDB&Grafana集成

Grafana新建数据源

下载看板模板

搜索看板模板

官方看板模板库:https://grafana.com/dashboards

选择需要下载的看板模板

下载看板模板

此看板地址:https://grafana.com/dashboards/79

Grafana导入模板

选择Telegraf数据源

最后来张监控效果高清大图

其他看板模板效果图

模板地址:https://grafana.com/dashboards/1443

相关系列:

性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控

性能分析之Java Metrics度量包

本文分享自微信公众号 - 7DGroup(Zee_7DGroup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏浩Coding

数据库事务的四大特性以及事务的隔离级别

事务(txn)是一系列在共享数据库上执行的行为,以达到更高层次更复杂逻辑的功能。事务是DBMS中最基础的单位,事务不可分割。DBMS——数据库管理系统。

9020
来自专栏达达前端

Android核心技术Intent和数据存储篇

Intent是各个组件之间用来进行通信的,Intent的翻译为“意图”的意思,是传输数据的核心对象,它可以开启一个activity,也可以发送广播消息和开启Se...

8630
来自专栏郭霖

Android数据库高手秘籍(九),赶快使用LitePal 2.0版本吧

算了一下,上个版本1.6.1已经是半年前推出的了,而整个开源项目自2014年推出以来,我已经维护了有四年之久。这四年以来,我不断地完善着LitePal的代码,修...

13860
来自专栏达达前端

Android精通之OrmLite数据库框架,Picasso框架,Okio框架,OKHttp框架

什么是OrmLite框架,在我没用这个框架时,不知道它有多好,用了才知道很方便哦,为了提供开发效率,Android开发者需要懂得运行多种框架进行开发。对于Orm...

10730
来自专栏达达前端

Android开发工程师文集-提示框,菜单,数据存储,组件篇

添加toast.getView(); imageView添加到toast中,addView();

9550
来自专栏达达前端

讲解SQL数据库语句

(1)完全函数依赖:(学号、课程号) →f 成绩 (2)部分函数依赖 :(学号、课程号) →p 姓名 (3)传递函数依赖 :学号→所属系号,所属系号→宿舍楼...

12430
来自专栏liu_ll的生信学习笔记

WGS的实战笔记(一)

前言:开始WGS的分析的学习,记录下学习的过程了,说实话,在这之前我是跑过WGS的流程的,但是每步感觉跑的都不是很稳当,踏实。导致自己在后期的学习还是会出现各种...

13620
来自专栏达达前端

Android开发工程师文集-1 小时学会SQLite

大家好,我是 Vic,今天给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢

8830
来自专栏达达前端

AndroidStudio制作个人资料界面模块以及SQLite数据库的使用

大家好,我是 Vic,今天给大家带来AndroidStudio制作个人资料界面模块以及SQLite数据库的使用的概述,希望你们喜欢

24350
来自专栏浩Coding

什么是JDBC、JNDI和DBCP以及DataSource?

JDBC:Java DataBase Connectivity,Java连接数据库和执行SQL语句的API。

20820

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励