sql server(mssqlserver)启动失败_Prometheus监控实战之sql_exporter使用(第六篇)

本文介绍了如何使用sql_exporter监控SQL Server数据库,包括下载安装、配置SQL查询、设置启动脚本,并展示了如何在Prometheus和Grafana中集成以展示数据。
摘要由CSDN通过智能技术生成

概述:sql_exporter导出器主要用来配置连接到到MySQL(MariaDB)、PostgreSQL等数据库,允许用户编写SQL来获取业务相关指标,例如,领导想知道当天的支付成功订单数、支付失败订单数、退订数、营业额等等,而这些数据均可以从数据库中获取到。那就让我们使用sql_exporter来实践一下。

操作步骤:

1、下载sql_exporter并解压

https://github.com/free/sql_exporter/releases

# wget https://github.com/free/sql_exporter/releases/download/0.5/sql_exporter-0.5.linux-amd64.tar.gz

# tar xvf sql_exporter-0.5.linux-amd64.tar.gz -C /usr/local

# cd /usr/local && ln -s sql_exporter-0.5.linux-amd64 sql_exporter

2、修改主配置文件

配置文件名字可以自定义,即默认的sql_exporter.yml可以重命名为config.yml

# cd /usr/local/sql_exporter

# mv sql_exporter.yml config.yml

# cat config.yml

# Global defaults.

global:

# 收集器中允许最慢的SQL执行超时时间,注意该超时时间应该小于prometheus中的scrape_timeout

scrape_timeout: 30s

# 用于从prometheus的scrape_timeout中减去一个偏移时间,防止prometheus先超时,如果设置了scrape_timeout,scrape_timeout_offset基本可以忽略。

scrape_timeout_offset: 500ms

# 各收集器是否同时执行.

min_interval: 0s

# 允许对数据库最大连接数

max_connections: 10

# 允许对数据库保持空闲时连接数

max_idle_connections: 5

# 目标数据库连接配置.

target:

# Data source name always has a URI schema that matches the driver name. In some cases (e.g. MySQL)

# the schema gets dropped or replaced to match the driver expected DSN format.

# data_source_name: 'sqlserver://prom_user:prom_password@dbserver1.example.com:1433'

data_source_name: 'mysql://monitor:monitorpass@tcp(192.168.59.250:3306)/test'

# Collectors (referenced by name) to execute on the target.

# 多个收集器需要用逗号隔开,如[order01,order02]

collectors: [order]

# Collector files specifies a list of globs. One collector definition is read from each matching file.

collector_files:

- "order.collector.yml"

3、编写具体的收集器配置文件

# cat order.collector.yml

collector_name: order

metrics:

- metric_name: order_success_day

type: gauge

help: '每日支付成功订单数'

values: [order_success_day]

query: |

select count(order_id) as 'order_success_day' from t_orders where status=1 and createtime BETWEEN concat(curdate(),' 00:00:00') AND concat(curdate(),' 23:59:59')

- metric_name: order_fail_day

type: gauge

help: '每日支付失败订单数'

values: [order_fail_day]

query: |

select count(order_id) as 'order_fail_day' from t_orders where status=2 and createtime BETWEEN concat(curdate(),' 00:00:00') AND concat(curdate(),' 23:59:59')

- metric_name: order_wait_day

type: gauge

help: '每日待支付订单数'

values: [order_wait_day]

query: |

select count(order_id) as 'order_wait_day' from t_orders where status=3 and createtime BETWEEN concat(curdate(),' 00:00:00') AND concat(curdate(),' 23:59:59')

- metric_name: order_cancel_day

type: gauge

help: '每日退订订单数'

values: [order_cancel_day]

query: |

select count(order_id) as 'order_cancel_day' from t_orders where status=4 and createtime BETWEEN concat(curdate(),' 00:00:00') AND concat(curdate(),' 23:59:59')

- metric_name: order_unknown_day

type: gauge

help: '每日退订订单数'

values: [order_unknown_day]

query: |

select count(order_id) as 'order_unknown_day' from t_orders where status=5 and createtime BETWEEN concat(curdate(),' 00:00:00') AND concat(curdate(),' 23:59:59')

4、配置启动脚本

# cat > /lib/systemd/system/sql_exporter.service <

[Unit]

Description=sql_exporter

[Service]

ExecStart=/usr/local/sql_exporter/sql_exporter -config.file /usr/local/sql_exporter/config.yml -web.listen-address 0.0.0.0:9399

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOF

备注:sql_exporter的默认端口是9399

5、启动sql_exporter

# systemctl enable sql_exporter

# systemctl restart sql_exporter

可通过 http://IP:9399/metrics查看

190cb04db96f8f00ff3f0bd65f829ff5.png

5、将sql_exporter作为目标添加到prometheus

# cat prometheus.yml

......

......

- targets: ['monitor01:9399']

labels:

app: sql_exporter

nodename: monitor01

role: sql_exporter

# ./promtool check config prometheus.yml

# curl -X POST http://192.168.59.250:9090/-/reload

6、在Grafana中展示数据

a44f19ac6e7a0b33ef7962c82075b2f9.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值