前言

随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程。在网上找了一遍好像没有特别好的监控工具,虽然推荐比较多的是pgwatch,但是部署比较麻烦,需要Linux环境,然而公司大部分都是Windows而且后期推广也不是很方便,因此果断放弃了。

最近在做一个服务器性能监控时发现telegraf+influxdb+grafana的组合比较不错,然后去官网和github上查了一下发现telegraf可以对postgresql进行监控,瞬间惊喜万分。下面简单介绍一下监控postgresql的配置方法:

环境

首先去官网下载telegraf、influxdb和grafana:

telegraf: 是一个用 Go 编写的代理程序,可收集系统和服务的统计数据,并写入到 InfluxDB 数据库。下载地址

influxdb:是一个用 Go 编写的目前比较流行的时间序列数据库。下载地址

grafana:是一个开箱即用的可视化工具,具有功能齐全的度量仪表盘和图形编辑器,有灵活丰富的图形化选项,可以混合多种风格,支持多个数据源特点。下载地址

三者之间的关系为:telegraf(监控数据收集)->influxdb(监控数据存储)->(监控数据展示)

部署

本次描述的方法是在Windows环境下部署实施,如果需要在Linux下部署请参考grafana + influxdb + telegraf , 构建性能监控平台

1、influxdb部署方式

下载influxdb包后解压,修改influxdb.conf配置文档中的以下内容:

修改[data]下内容dir和wal-dir路径为本地存储路径,如下图所示:

之后设置[admin]下的配置参数如下即可:

保存配置文件后,在当前文件夹路径下启动cmd(在文件夹路径内输入cmd回车即可),在cmd窗口中输入:influxd -config influxdb.conf回车,启动influxdb数据库。

在浏览器中输入http://127.0.0.1:8083/查看是否显示influxdb数据库界面,如下图所示:

出现该界面后influxdb部署完成。

2、telegraf部署方式

下载telegra包后解压,修改telegraf.conf配置文档中的以下内容:

##output##中urls=["influxdb服务地址:监听端口"],database=“存储监控数据的数据库名称”,如下图所示:

之后在配置最下方加入如下内容进行postgresql监控配置:

[[inputs.postgresql]]
  address = "postgres://postgres:postgres@localhost"          #"postgres://数据库用户:密码@数据库ip/指定的数据库(可选)"
  ignored_databases = ["template0", "template1"]                 #忽略[]内的数据库监控,不能与database同时使用
  #databases = ["test"]                                                           #只监控[]内数据库,不能与ignored_database同时使用

配置完成后保存conf文件,并在当前文件夹路径下启动cmd(在文件夹路径内输入cmd回车即可),在cmd窗口中输入:telegraf -config telegraf.conf启动监听

可在influxdb中查看是否生成telegraf数据库及postgresql表单信息,如下图所示:

相关postgresql监控内容参数意义可参考官方文档

3、grafana部署方式

下载grafana部署包后解压,双击\bin\grafana-server.exe,然后在浏览器中输入:http://127.0.0.1:3000/,如下图所示:

输入用户名和密码,默认均为:admin,登录成功后配置数据源,如下图所示:

一般初始过程中会提示配置数据源,可能与本过程存在差异,但是不影响配置

此处在Data Sources中点击“Add data source”添加influxdb数据源,选择数据类型为influxdb,之后配置相关参数,如下图所示:

配置完成后点击“Save&Test”按钮,提示如下信息:

连接成功并保存。切换到“Dashboards”->“New”界面

在新界面中添加Graph等展示图,如下图所示:

点击新生成的graph界面的标题处,选择“Edit”进行参数编辑,如下图所示:

修改General中的Title为相关监控参数名

修改Metrics中的Panel Data Source为之前配置的telegraf,并选取展示数据,如下图所示:

配置完成后可以看到展示结果,如下图所示:

如果未显示数据,可以设置右上角的展示时间范围,如下图所示:

到此为止一个最基本的postgresql读取磁盘块(blks_read)的监控配置完成,下面是一个简单的系统及postgresql监控界面如下图所示:

优化

为了让监控框架的启动方式更加简洁,我这里进行了一下bat一键启动,代码如下:

基于telegraf+influxdb+grafana进行postgresql数据库监控的更多相关文章

  1. [转帖] 基于telegraf, influxdb, grafana 建立 esxi 监控

    [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控 https://www.cnblogs.com/hahp/p/7677420.html 之前在 nagi ...

  2. Telegraf+InfluxDB+Grafana快速搭建实时监控系统 监控postgresql

    Telegraf+InfluxDB+Grafana快速搭建实时监控系统  监控postgresql

  3. [系统集成] 基于telegraf, influxdb, grafana 建立 esxi 监控

    之前在 nagios 上建立了 esxi 监控,指标少.配置麻烦.视觉效果差.最近我把 esxi 监控迁移到了 influxdb+grafana 平台上,无论是监控指标.可操作性还是视觉效果都有了很大 ...

  4. Telegraf+Influxdb+Grafana自动化运维监控

    概述:Telegraf收集信息,influxdb时序数据库存储数据,grafana平台展示数据,并进行监控告警,组成一个自动化运维监控平台. 一.influxdb ​ InfluxDB是一个由Infl ...

  5. 基于jmxtrans+influxdb+grafana实现对canal监控

    最近在调研canal数据同步系统的监控方案,网上关于jmxtrans+influxdb+grafana监控kafka的文档很多,没有监控canal的.通过几天的摸索,大致明白了来龙去脉.监控流程基本是 ...

  6. 使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况

    使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + ...

  7. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  8. 使用 Metrics.net + influxdb + grafana 搭建项目自动化监控和预警方案

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_25042791/article/d ...

  9. 搭建jmeter+influxdb+grafana压测实时监控平台(超详细,小白适用)

    1.前言 在使用jmeter做性能测试的时候,监控系统性能的时候,无论是使用插件还是报告生成,都没法实现实时监控.使用JMeter+Influxdb+Grafana可以实现实时监控. 本次环境搭建各软 ...

随机推荐

  1. java并发包下的并发工具类

    1.Exchanger 功能:用于线程间数据的交换 应用场景:1)遗传算法,目前还不是特别理解  2)校对工作,假设A,B线程做同一件任务,可以通过数据校验判断两线程是否正确的工作 例子:是一个简单的 ...

  2. memcache的使用、版本使用和相关配置

    首先准备memcached和php_memcache.dll文件.下载网址:链接:http://pan.baidu.com/s/1c1WODji 密码:yzor 将下载好的memcached.exe放 ...

  3. 企业级缓存系统varnish应用

    场景 随着公司业务快速发展,公司的电子商务平台已经聚集了很多的忠实粉丝,公司也拿到了投资,这时老板想通过一场类似双十一的活动,进行一场大的促销,届时会有非常多的粉丝访问网站,你的总监与市场部门开完会后 ...

  4. ESLint 的正式使用感受

    介绍ESLint ESLint 是一个代码规范和错误检查工具,有以下几个特性 所有东西都是可以插拔的.你可以调用任意的rule api或者formatter api 去打包或者定义rule or fo ...

  5. JavaSE之绘制菱形

    在JavaSE的算法练习中,绘制菱形是一个比较常见的案例.菱形效果如下图所示: 我们在解决算法问题时,通常情况下,先不要急于马上编码,而是要先观察,找出解决问题的关键所在. 在上图中,我们可以看到,菱 ...

  6. 天梯赛 L2-020. 功夫传人 BFS

    L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...

  7. 2017最新PHP经典面试题目汇总(上篇)

    1.双引号和单引号的区别 双引号解释变量,单引号不解释变量 双引号里插入单引号,其中单引号里如果有变量的话,变量解释 双引号的变量名后面必须要有一个非数字.字母.下划线的特殊字符,或者用{}讲变量括起 ...

  8. 为并发而生的 ConcurrentHashMap(Java 8)

    HashMap 是我们日常最常见的一种容器,它以键值对的形式完成对数据的存储,但众所周知,它在高并发的情境下是不安全的.尤其是在 jdk 1.8 之前,rehash 的过程中采用头插法转移结点,高并发 ...

  9. Java调用C# DLL

    由于项目需要,利用了短信猫,但是一个短信猫会加载多个串口,而只需要其AT口,通过java代码,获取其AT口对应的串口号比较困难,于是通过C#获取,这里直接调用C#生成的DLL,但java不能直接调用C ...

  10. webpack loader加载器

    配置loader,通过加载器处理文件,例如css sass less等,告诉webpack每一种文件都需要使用什么来加载器来处理. 1.node.js安装好之后也会自动默认安装好npm,所以cmd c ...