prometheus监控之postgresql
admin
2024-03-22 10:21:48

prometheus监控之postgresql

文章目录

    • prometheus监控之postgresql
        • 下载postgres_exporter
        • 安装
        • 配置unit服务
        • 配置授权
          • PostgreSQL server versions >= 10(pgsql版本大于10)
          • PostgreSQL versions older than 10 (pgsql版本小于10)
        • 启动postgres_exporter

下载postgres_exporter

项目地址:https://github.com/prometheus-community/postgres_exporter

wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.11.1/postgres_exporter-0.11.1.linux-amd64.tar.gz

安装

tar xf postgres_exporter-0.11.1.linux-amd64.tar.gz
mv postgres_exporter-0.11.1.linux-amd64/postgres_exporter  /usr/bin/

配置unit服务

# cat  /usr/lib/systemd/system/postgres_exporter.service
[Unit]
Description=postgres Exporter
Wants=network-online.target
After=network-online.target[Service]
Type=simple
User=root
Group=root
Environment=DATA_SOURCE_NAME=postgresql://postgres_exporter:postgres_exporter@x.x.x.x:5432/postgres?sslmode=disable
ExecStart=/usr/bin/postgres_exporter
ExecReload=/bin/kill -HUP
KillMode=process
TimeoutStopSec=20s
Restart=always[Install]
WantedBy=default.target

配置授权

PostgreSQL server versions >= 10(pgsql版本大于10)

创建postgres_exporter用户和密码(postgres_exporter)

CREATE OR REPLACE FUNCTION __tmp_create_user() returns void as $$
BEGINIF NOT EXISTS (SELECT                       -- SELECT list can stay empty for thisFROM   pg_catalog.pg_userWHERE  usename = 'postgres_exporter') THENCREATE USER postgres_exporter;END IF;
END;
$$ language plpgsql;SELECT __tmp_create_user();
DROP FUNCTION __tmp_create_user();ALTER USER postgres_exporter WITH PASSWORD 'password';
ALTER USER postgres_exporter SET SEARCH_PATH TO postgres_exporter,pg_catalog;-- If deploying as non-superuser (for example in AWS RDS), uncomment the GRANT
-- line below and replace  with your root user.
-- GRANT postgres_exporter TO ;GRANT CONNECT ON DATABASE postgres TO postgres_exporter;
GRANT pg_monitor to postgres_exporter;
PostgreSQL versions older than 10 (pgsql版本小于10)
CREATE SCHEMA IF NOT EXISTS postgres_exporter;
GRANT USAGE ON SCHEMA postgres_exporter TO postgres_exporter;CREATE OR REPLACE FUNCTION get_pg_stat_activity() RETURNS SETOF pg_stat_activity AS
$$ SELECT * FROM pg_catalog.pg_stat_activity; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;CREATE OR REPLACE VIEW postgres_exporter.pg_stat_activity
ASSELECT * from get_pg_stat_activity();GRANT SELECT ON postgres_exporter.pg_stat_activity TO postgres_exporter;CREATE OR REPLACE FUNCTION get_pg_stat_replication() RETURNS SETOF pg_stat_replication AS
$$ SELECT * FROM pg_catalog.pg_stat_replication; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;CREATE OR REPLACE VIEW postgres_exporter.pg_stat_replication
ASSELECT * FROM get_pg_stat_replication();GRANT SELECT ON postgres_exporter.pg_stat_replication TO postgres_exporter;CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
CREATE OR REPLACE FUNCTION get_pg_stat_statements() RETURNS SETOF pg_stat_statements AS
$$ SELECT * FROM public.pg_stat_statements; $$
LANGUAGE sql
VOLATILE
SECURITY DEFINER;CREATE OR REPLACE VIEW postgres_exporter.pg_stat_statements
ASSELECT * FROM get_pg_stat_statements();GRANT SELECT ON postgres_exporter.pg_stat_statements TO postgres_exporter;

启动postgres_exporter

systemctl daemon-reload
systemctl  restart postgres_exporter.service
systemctl  enable postgres_exporter.service
curl -s x.x.x.x:9187/metrics|grep pg_up
# HELP pg_up Whether the last scrape of metrics from PostgreSQL was able to connect to the server (1 for yes, 0 for no).
# TYPE pg_up gauge
pg_up 1

pg_up 1 说明启动成功

相关内容

热门资讯

原创 自... 在这个充满“卡路里焦虑”的年代,我们总在寻找一种既能解馋又不至于让身材“报错”的食物。作为一名资深“...
低脂开胃椒麻虾片,一口鲜到上头... 夏天的餐桌总需要一道清爽又够味的菜来提气,这道椒麻虾片就是完美选择,不仅低脂高蛋白,做法简单快手,鲜...
干锅菜花脆嫩入味,酱香浓郁超下... 干锅菜花,一道比肉菜还抢手的香辣下饭菜。 松花菜脆嫩爽口,在豆瓣酱的红油中翻炒出诱人的酱香,搭配蒜末...
黄焖鸡全网最详细做法攻略(零失... 黄焖鸡是经典鲁菜,酱香浓郁、鸡肉软烂、配菜入味,在家做只需简单几步,新手也能一次成功。以下从食材准备...
韭菜别总炒鸡蛋了,跟李奶奶学这... 老姐妹们,我是张姨。 这两天桃园二巷早市上,韭菜一捆一捆的,又嫩又便宜。昨儿个我买了两捆,赵阿姨看见...