文档章节

利用prometheus, Grafana, postgres_exporter 搭建简单简单监控

MtrS
 MtrS
发布于 2017/01/23 16:54
字数 735
阅读 1746
收藏 0

prometheus是一个优秀的服务树监控组件, Grafana 是一个图形化展示界面 postgres_exporter 是一个postgres服务器状态收集组件,服务于prometheus, prometheus 官方提供了mysql的服务器状态的手机组件,postgres的却没有提供,好在拥有万能的github

https://github.com/wrouesnel/postgres_exporter

安装流程:

安装prometheus

下载prometheus, 可以到官网下载编译好的二进制文件,也可以到github 下载源码自己编译:

wget  https://github.com/prometheus/prometheus/releases/download/v1.4.1/prometheus-1.4.1.linux-amd64.tar.gz

#编辑配置文件
nvim prometheus.yml

下面的文件为我的配置文件,第二个job 为postgres的状态收集任务.

#cat  prometheus.yml

# cd ../prometheus-1.4.1.linux-amd64 

 16:56:17  ⚡  /opt/pkg/prometheus-1.4.1.linux-amd64 

# cat prometheus.yml 
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
      monitor: 'codelab-monitor'

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first.rules"
  # - "second.rules"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'postgres'
    static_configs:
      - targets: ['127.0.0.1:9187']
        labels:
          instance: db1

启动prometheus

./prometheus

安装postgres_exporter

github 上有几个组件,自己可以任选几个

包括慢查询,表,数据库,buffers 的统计信息 个人选用的为:

https://github.com/wrouesnel/postgres_exporter

包括buffers,rows 统计等的信息,同样可以自行编译或者使用github release的二进制

wget  https://github.com/wrouesnel/postgres_exporter/releases/download/v0.1.1/postgres_exporter

运行时命令行,最后一个参数log.level 可以不配置, queries.yaml 使用源码里面的 queries.yaml

需在监控的数据库上执行一下以下命令(不使用数据库超级管理员的权限的时候,注意更改密码),

CREATE USER postgres_exporter PASSWORD 'password';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;

CREATE SCHEMA postgres_exporter AUTHORIZATION postgres_exporter;

CREATE FUNCTION postgres_exporter.f_select_pg_stat_activity()
RETURNS setof pg_catalog.pg_stat_activity
LANGUAGE sql
SECURITY DEFINER
AS $$
  SELECT * from pg_catalog.pg_stat_activity;
$$;

CREATE FUNCTION postgres_exporter.f_select_pg_stat_replication()
RETURNS setof pg_catalog.pg_stat_replication
LANGUAGE sql
SECURITY DEFINER
AS $$
  SELECT * from pg_catalog.pg_stat_replication;
$$;

CREATE VIEW postgres_exporter.pg_stat_replication
AS
  SELECT * FROM postgres_exporter.f_select_pg_stat_replication();

CREATE VIEW postgres_exporter.pg_stat_activity
AS
  SELECT * FROM postgres_exporter.f_select_pg_stat_activity();

GRANT SELECT ON postgres_exporter.pg_stat_replication TO postgres_exporter;
GRANT SELECT ON postgres_exporter.pg_stat_activity TO postgres_exporter;

监控

#配置 数据库数据源信息

export  DATA_SOURCE_NAME=postgresql://postgres:postgres@127.0.0.1:5433/postgres?sslmode=disable
#启动监控命令
./postgres_exporter -extend.query-path queries.yaml -log.level debug

该程序会开启服务器的 :9187 端口

安装grafana

下载grafana

下载postgres_expoter的 的dasboard

wget  https://grafana.net/api/dashboards/455/revisions/1/download

但是该模板存在小问题, 需要编辑 原先的 __inputs -> name -> 是不对的

输入图片说明

启动grafana

https://grafana.net/api/dashboards/455/revisions/1/download

进入grafana 的页面 为http://ip:3000/

默认用户名,密码分别为 admin admin

点击左侧 data sources, -> add source

输入图片说明

填写 prometheus 的主机端口

postgres_local

http://127.0.0.1:9090

选择dashboard -> import -> 导入刚才下载的 postgres_exporter

在host 选项中填写第一步 prometheus 中job instance 中的主机参数,就可以拥有基本的图形话界面了。

输入图片说明

输入图片说明

© 著作权归作者所有

MtrS
粉丝 35
博文 658
码字总数 407423
作品 0
榆林
私信 提问
prometheus远程存储之influxdb和timescaledb对比测试

写在最前面 看了timescaledb官方的测试文章TimescaleDB比拼InfluxDB:如何选择合适的时序数据库?,发现差异较大的只在存储, 就准备用timescaledb,因为公司有专门的数据库小组,可以对pg进...

狗陈
07/11
98
0
Grafana 5.4.1 发布,系统指标监控与分析平台

Grafana 5.4.1 发布了,Grafana 是一个功能丰富的指标标准仪表板和图形编辑器,用于分析和监控 Graphite、Elasticsearch、OpenTSDB、Prometheus 和 InfluxDB。 此版本更新内容如下: Stackd...

h4cd
2018/12/12
2.1K
2
PostgreSQL 数据库监控工具 - Pgwatch2

Pgwatch2是监控PostgreSQL数据库工具中最易用的一个。它基于Grafana并为PostgreSQL数据库提供开箱即用的监控功能。因为它已经集成到了容器里,所以我们不必担心各种依赖和复杂的安装步骤,几...

匿名
2018/08/05
1K
1
TimescaleDB 1.0 正式发布!基于 PG 的时序数据库

TimescaleDB 1.0 正式发布了,开发团队表示,自9月分宣布第一个候选版本以来,Timescale 的工程师团队合并了 50 多个 PR,以加强数据库,提高稳定性和易用性。 今天,TimescaleDB 1.0 宣布正...

达尔文
2018/11/01
4.6K
15
PostgreSQL监控之pgwatch2

前言: 虽然作者已经推出了docker版本,只需一键(一条命令)即可完成搭建。 但是本着学习的心理还是要自己折腾一遍,一键虽好但不明了啊。 官方已经把安装写的很详细了,但毕竟是英文...... ...

Jy_BigBoss
2018/06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
2.2K
15
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
38
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
40
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
61
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部