当前位置: 首页 > article >正文

Grafana监控PostgreSQL

1、下载postgres_exporter部署包

curl -L -O https://github.com/prometheus-community/postgres_exporter/releases/download/v0.15.0/postgres_exporter-0.15.0.linux-amd64.tar.gz

2、解压并拷贝命令

temdir=$(mktemp -d)
tar xvf postgres_exporter-0.15.0.linux-amd64.tar.gz -C ${temdir}
sudo cp ${temdir}/postgres_exporter-0.15.0.linux-amd64/postgres_exporter /usr/local/bin/

3、启动postgres_exporter服务

cat <<'EOF' | sudo tee /usr/lib/systemd/system/postgres_exporter.service >> /dev/null
[Unit]
Description=postgres_exporter
Documentation=https://github.com/prometheus-community/postgres_exporter
Wants=network.service
After=network.service

[Service]
Type=simple
User=postgres
Environment=DATA_SOURCE_USER=postgres
Environment=DATA_SOURCE_PASS=123456
Environment=DATA_SOURCE_URI=localhost:5432/postgres?sslmode=disable
ExecStart=/usr/local/bin/postgres_exporter --web.listen-address=:9187 --collector.postmaster --collector.stat_statements
ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable postgres_exporter.service --now

4、清理文件

sudo rm -rf ${temdir}

postgresql配置扩展

1、验证是否有编译pg_stat_statements扩展

ls /app/postgresql/lib/pg_stat_statements.so

2、编译pg_stat_statements扩展

cd ./postgresql-14.10/contrib/pg_stat_statements/
 make && sudo make install

3、修改postgresql配置文件

grep shared_preload_libraries $PGDATA/postgresql.confshared_preload_libraries = 'pg_stat_statements' # (change requires restart)
sudo systemctl restart postgresql

4、验证是否有pg_stat_statements扩展

psql -h localhost -p 5432 -U postgres -W -c "select name from pg_available_extensions where name = 'pg_stat_statements';"
Password: 
        name        
--------------------
 pg_stat_statements
(1 row)

5、添加pg_stat_statements扩展

psql -h localhost -p 5432 -U postgres -W -c "CREATE EXTENSION pg_stat_statements;"

Prometheus和grafana配置

1、Prometheus采集postgres数据

kubectl -n kube-system edit cm prometheus
    - job_name: "postgres-exporter"
      static_configs:
      - targets:
        - "172.139.20.17:9187"
        - "172.139.20.81:9187"
        - "172.139.20.177:9187"

2.验证是否采集成功

curl -s $(kubectl -n kube-system get svc prometheus -ojsonpath='{.spec.clusterIP}:{.spec.ports[0].port}')/prometheus/api/v1/query --data-urlencode 'query=up{job="postgres-exporter"}' 
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"up","instance":"172.139.20.17:9187","job":"postgres-exporter"},"value":[1731314524.901,"1"]},{"metric":{"__name__":"up","instance":"172.139.20.81:9187","job":"postgres-exporter"},"value":[1731314524.901,"1"]},{"metric":{"__name__":"up","instance":"172.139.20.177:9187","job":"postgres-exporter"},"value":[1731314524.901,"1"]}]}}


http://www.kler.cn/a/404885.html

相关文章:

  • 工程师 - 智能家居方案介绍
  • 【AIGC】如何使用高价值提示词Prompt提升ChatGPT响应质量
  • qt学习:linux监听键盘alt+b和鼠标移动事件
  • 【AI编程实战】安装Cursor并3分钟实现Chrome插件(保姆级)
  • 金融数据中心容灾“大咖说” | Veritas的“高举高打”之道
  • 【Python基础】第04节课:数字与盒子的奇妙冒险
  • 机器学习系列----关联分析
  • 京东最新黑边背景旋转验证码识别
  • ApiChain 从迭代到项目 接口调试到文档生成单元测试一体化工具
  • Docker+fastapi
  • 2.预备知识
  • SentenceTransformers×Milvus:如何进行向量相似性搜索
  • SAP PI/PO Proxy2JDBC SQL_QUERY动态接口示例
  • H.264/H.265播放器EasyPlayer.js视频流媒体播放器关于websocket1006的异常断连
  • 视频流媒体播放器EasyPlayer.js无插件直播流媒体音视频播放器Android端webview全屏调用无效问题
  • Hello-Go
  • 腾讯云单元化架构体系介绍
  • 深入探索Solana链上的Meme生态:创新、潜力与挑战#区块链开发#dapp开发
  • xml和xpath
  • C# BitmapSource小节
  • TensorFlow如何调用GPU?
  • 【Linux学习】【Ubuntu入门】1-7 ubuntu下磁盘管理
  • 学习路之phpstudy--安装mysql5.7后在my.ini文件中无法修改sql_mode
  • 嵌入式实验报告:家用计时器
  • MFC工控项目实例三十一模拟量转化为工程量
  • Spring 与 Spring MVC 与 Spring Boot三者之间的区别与联系