sql_exporter mysql_【最佳实践】prometheus 监控 sql server (使用sql_exporter)

【0】核心参考

【简述】

MSSQL的监控,官网没有提供采集器,所以只能用其他程序来监控,本文就用了 sql-exporter。

它可以理解成一个远程连接数据库的工具,可以用它来连接sql server/mysql 等等数据库,并以SQL查询方式采集SQL查询结果。

SQL_Exporter 是中心化的,可以把对不同实例的agent链接,都放在一台linux服务器上,以便管理、修改。你想想看,如果你更新了采集指标,只需要在该台中心化服务器重启sql_exporter agent采集客户端即可生效。

不像其他 mysql/linux/windows采集器,他们是部署在实际被采集的服务器上的,如果你想要更新采集器(虽然它做的很好了,不需要更新。除此之外就是无法加入自定义的采集指标或者采集项),那么需要到那么多台被采集的客户端机器上去覆盖更新,很痛苦的。

【1】安装配置 sql_exporter

【1.1】下载解压 sql_exporter

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

mkdir /soft

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

tar -zxf sql_exporter-0.5.linux-amd64.tar.gzln -s sql_exporter-0.5.linux-amd64 sql_exporter

cd sql_exporter

【1.2】修改配置文件

# Global defaults.

global:

# Subtracted from Prometheus'scrape_timeout to give us some headroom and prevent Prometheus from timing out first.

scrape_timeout_offset: 500ms

# Minimum interval between collector runs: by default (0s) collectors are executed on every scrape.

min_interval: 0s

# Maximum number of open connections to any one target. Metric queries will run concurrently on multiple connections,

# as will concurrent scrapes.

max_connections:10# Maximum number of idle connections to any one target. Unless you use verylongcollection intervals, this should

# always be the same as max_connections.

max_idle_connections:5# The target to monitor and the collectors to execute on it.

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://sql_exporter:a123456!@192.168.191.81:1433/?encrypt=disable'

data_source_name:'sqlserver://sa:a123456!@192.168.191.81:1433'# Collectors (referenced by name) to execute on the target.

collectors: [mssql_standard]

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

collector_files:- "*.collector.yml"

解析:

(1)global

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

scrape_timeout_offset: 500ms #用于从 prometheus的 scrape_timeout 中减去一个偏移时间,防止 prometheus 先超时,如果设置了 scrape_timeout,scrape

min_interval: 0s #收集器每隔0运行一次(默认情况下)收集器每隔0运行一次。

max_connections:10 #到任何一个目标的最大打开连接数。采集器信息查询将在多个连接上并发运行,max_idle_connections:5 #到任何一个目标的最大空闲连接数。除非使用很长的收集间隔,否则应该

(2)target

#数据源

data_source_name: 'sqlserver://sa:a123456!@192.168.191.81:1433'

(3)collector

#引用收集器文件

collector_files:

- "*.collector.yml"

【1.3】自带的sql server监控采集器

b40ce2a4ec2f49df9c16ba90e41f86cb.png

这里我们配置文件中 已经引用了 配置文件相同目录下的 "*.collector.yml",所以该文件也被包含进来了。

【2】整合 prometheus + sql_exporter

那么这个东西其实是一个采集器啊,但是为什么不能放到windows上呢.......好吧,不管了好像没什么很好的windows采集器,自己也不会做,先用着吧

【2.1】修改prometheus.yml配置文件

5aa7f69bd59af8a39b874d73c550018b.png

【2.2】启动 sql_exporter

(1)封装成系统服务

[Unit]

Description=sql_exporter

[Service]

Type=simple

ExecStart=/soft/sql_exporter/sql_exporter -config.file /soft/sql_exporter/sql_exporter.yml

Restart=on-failure

[Install]

WantedBy=multi-user.target

(2)启动、查看

systemctl daemon-reload

systemctl start sql_exporter

systemctl status sql_exporter-l

启动成功,并且 默认端口是 9399

38dd3674d016f4320df0950bc3333d51.png

【2.3】核验

如下图,这就成功了啊

a92b03332a9df677ee301e2db612edab.png

【3】结合 grafana 显示

【3.1】导入MSSQL模板

a1720f0d4e75d4b255bb7da21a64c076.png

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值