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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 使用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数据库中创建账号用于监控

相关文章
|
23天前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
17 1
|
1天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
15 0
|
2天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
34 6
|
2天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
34 10
|
2天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
23天前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
11 0
|
30天前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之数据查询
【数据库SQL server】关系数据库标准语言SQL之数据查询
94 0
|
2月前
|
SQL 算法 数据库
【数据库SQL server】关系数据库标准语言SQL之视图
【数据库SQL server】关系数据库标准语言SQL之视图
72 0
|
2月前
|
SQL 人工智能 算法
【数据库SQL server】传统运算符与专门运算符
【数据库SQL server】传统运算符与专门运算符
66 0