使用Telegraf+Grafana监控Microsoft SQLServer数据库

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
可观测监控 Prometheus 版,每月50GB免费额度
简介: 使用Telegraf+Grafana监控Microsoft SQLServer数据库

使用Telegraf+Grafana监控Microsoft SQLServer数据库

(图片点击放大查看)

本文参考如下链接完成

https://tsql.tech/how-to-use-grafana-on-docker-to-monitor-your-sql-server-eventually-on-docker-too-feat-influxdb-and-telegraf/
https://bbs.huaweicloud.com/blogs/358876?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content
https://www.likecs.com/show-308132817.html
https://my.oschina.net/u/3772973/blog/4383713
https://36chambers.wordpress.com/2019/02/05/metrics-for-free-sql-server-monitoring-with-telegraf/

一、安装Influxdb

1、安装Influxdb

rpm -ivh influxdb-1.8.10.x86_64.rpm 
systemctl start influxdb
systemctl enable influxdb
firewall-cmd --zone=public --add-port=8086/tcp --permanent
firewall-cmd --reload

(图片点击放大查看)

2、创建telegraf数据库,并设置数据库账号密码

influx
show databases
CREATE USER admin WITH PASSWORD 'influxDB@2023' WITH ALL PRIVILEGES
CREATE USER telegraf WITH PASSWORD 'TeleGraf@2023' WITH ALL PRIVILEGES
show users
create database telegraf
CREATE RETENTION POLICY telegraf_12m ON telegraf DURATION 360d REPLICATION 1 DEFAULT
show databases

(图片点击放大查看)

3、Influxdb配置文件修改

  • 方法1、手工修改vim /etc/influxdb/influxdb.conf

启用http用户验证,修改influxdb.conf中http section中auth-enabled = true

  • 方法2、sed命令替换
sed -i 's/# bind-address = ":8086"/ bind-address = ":8086"/g' /etc/influxdb/influxdb.conf 
sed -i "s/# auth-enabled = false/auth-enabled = true/g" /etc/influxdb/influxdb.conf 
systemctl restart influxdb
systemctl status influxdb

(图片点击放大查看)

4、使用账号密码方式登录验证

influx -username "telegraf" -password ''

(图片点击放大查看)

二、安装telegraf

rpm -ihv telegraf-1.25.1-1.x86_64.rpm 
vim /etc/telegraf/telegraf.conf

找到[[outputs.influxdb]]配置的位置,取消注释并修改相关配置

urls = ["http://192.168.31.170:8086"]
database = "telegraf"
skip_database_creation = true
username = "telegraf"
password = "TeleGraf@2023"

(图片点击放大查看)

systemctl restart telegraf.service 
systemctl status telegraf.service -l

(图片点击放大查看)

三、 安装grafana

yum localinstall grafana-9.3.6-1.x86_64.rpm 
firewall-cmd --permanent --zone=public --add-port=3000/tcp
firewall-cmd --reload
systemctl enable grafana-server
systemctl start grafana-server

(图片点击放大查看)

添加influxDB数据源

(图片点击放大查看)

(图片点击放大查看)

import Dashboard ID  5955

可以看到telegraf所在服务器的基础监控信息

(图片点击放大查看)

(图片点击放大查看)

四、SQLServer数据库的监控需要修改

telegraf上配置inputs.sqlserver

接下来进入正题 vim /etc/telegraf/telegraf.conf

修改如下配置,填写SQLServer数据库 sa账号密码信息

vim /etc/telegraf/telegraf.conf
[[inputs.sqlserver]]中的配置
servers = [
     "Server=192.168.1.10;Port=1433;User Id=<user>;Password=<pw>;app name=telegraf;log=1;",
   ]  
query_version = 2

(图片点击放大查看)

(图片点击放大查看)

systemctl restart telegraf.service 
systemctl status telegraf.service -l

(图片点击放大查看)

确认是否可以正常连接到数据库

这时导入import Dashboard ID  9386

(图片点击放大查看)

(图片点击放大查看)

grafana-piechart-panel已过时问题

1、方法1

grafana-cli plugins install grafana-piechart-panel
systemctl restart grafana-server

2、方法2 :更新为新的piechart

(图片点击放大查看)

最终的效果如下:

(图片点击放大查看)


(图片点击放大查看)

五、总结

1、SQLServer数据库的grafana Dashboard

1、ID 409

https://grafana.com/grafana/dashboards/409-sql-server-telegraf/

导入后不可行,无数据

2、另外一个不错的Dashboards

https://github.com/tboggiano/grafana/tree/master/Dashboards

手动导入Instance Overview.json 并调整Datasource,可行

3、当然SQLServer也可以用prometheus-mssql-exporter+Prometheus的方式进行监控

配置也很简单,这里就不演示了

  • 1、启动prometheus-mssql-exporter的容器
docker run -e SERVER=XXXXXX -e USERNAME=sa -e PASSWORD=XXXX -e DEBUG=app -p 4000:4000 --name prometheus-mssql-exporter awaragi/prometheus-mssql-exporter
  • 2、Prometheus添加一下targets
  • 3、Grafana上面导入如下ID即可
https://github.com/awaragi/prometheus-mssql-exporter
https://grafana.com/grafana/dashboards/13919-microsoft-sql-server/
https://grafana.com/grafana/dashboards/9336-prometheus-mssql-exporter/

4、注意事项

由于telegraf配置文件中填写的账号密码为sa明文密码,请注意密码保密!

当然你可以单独在SQLServer数据库中创建账号用于监控

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
5月前
|
监控 Java 时序数据库
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
【6月更文挑战15天】性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
193 6
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
|
5月前
|
SQL 监控 安全
sql server数据库监控
SQL Server数据库监控是收集、聚合和监控SQL服务器的各种指标的过程,旨在维护SQL数据库的运行状况和可用性,优化性能,并预防或快速响应错误。以下是一些关于SQL Server数据库监控的核心
|
3月前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
347 3
|
3月前
|
数据采集 监控 Unix
性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
【8月更文挑战第1天】性能监控之Telegraf+InfluxDB+Grafana实现结构化日志实时监控
322 0
|
5月前
|
存储 监控 Linux
性能监控之Telegraf+InfluxDB+Grafana linux服务器实时监控
【6月更文挑战11天】标题性能监控之 Java Metrics 度量包性能监控之Telegraf+InfluxDB+Grafana linux服务器实时监控
106 2
|
5月前
|
监控 数据库 时序数据库
性能监控之Telegraf+InfluxDB+Grafana window服务器安装使用
【6月更文挑战13天】性能监控之Telegraf+InfluxDB+Grafana window服务器安装使用
181 1
|
5月前
|
XML 机器学习/深度学习 监控
性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
【6月更文挑战12天】性能监控之Telegraf+InfluxDB+Grafana NVIDIA GPU实时监控
138 0
|
6月前
|
SQL 关系型数据库 数据管理
Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
【5月更文挑战第14天】Microsoft SQL Server 是微软公司开发的一款关系型数据库管理系统
97 2
|
6月前
|
SQL XML 存储
Microsoft Access 是微软公司开发的关系型数据库管理系统(
【5月更文挑战第14天】Microsoft Access 是微软公司开发的关系型数据库管理系统(
79 1
|
5月前
|
SQL 缓存 监控
sql server数据库监控
SQL Server数据库监控是收集、聚合和观察SQL服务器的各项指标的过程,旨在维护SQL数据库的运行状况和可用性。由于SQL数据库服务器的问题经常被识别为导致延迟等问题的原因,因此,对其进行监控显