Zabbix 监控 AlwaysOn

简介:

基于生产环境 SQL Server 业务数据库的特性,需要针对 SQL Server 生产环境几组 AlwaysOn AG 的 Primary Replica 部署如下监控:
    1. Windows集群节点不正常
    2. 任一业务数据库没加入可用性组
    3. AG中任一数据库状态异常
    4. 任一数据库延时超过阈值


1. primary replica 检查Windows集群状态不正常的节点数(>0 告警)

1
2
3
SELECT  COUNT  (*)  as  NotHealtyCount
FROM  sys.dm_hadr_cluster_members
WHERE  member_state_desc != 'UP' ;




2. primary replica 检查副本可用数据库个数 与 需要加入AG的业务数据库数 对比 (<后者告警)

1
2
SELECT  COUNT (*)  as  DBCount 
FROM  sys.availability_databases_cluster;




3. primary replica 检查任一数据库状态异常(>0 告警)

1
2
3
SELECT  COUNT  (*)  as  NotHealtyCount
FROM  [master].[sys].[dm_hadr_database_replica_states]
WHERE  [synchronization_health_desc] != N 'HEALTHY'




4. primary replica 检查任一数据库延时(>900 告警)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
; WITH 
AG_Stats  AS 
(
SELECT  AR.replica_server_name,
    HARS.role_desc, 
    Db_name(DRS.database_id) [DBName], 
    DRS.last_commit_time
FROM    sys.dm_hadr_database_replica_states DRS 
INNER  JOIN  sys.availability_replicas AR  ON  DRS.replica_id = AR.replica_id 
INNER  JOIN  sys.dm_hadr_availability_replica_states HARS  ON  AR.group_id = HARS.group_id 
AND  AR.replica_id = HARS.replica_id 
),
Pri_CommitTime  AS 
(
SELECTreplica_server_name
, DBName
, last_commit_time
FROMAG_Stats
WHERErole_desc =  'PRIMARY'
),
Sec_CommitTime  AS 
(
SELECTreplica_server_name
, DBName
, last_commit_time
FROMAG_Stats
WHERErole_desc =  'SECONDARY'
)
SELECT  ISNULL (DATEDIFF(ss,s.last_commit_time,p.last_commit_time),0)  AS  [Sync_Lag_Secs]
FROM  Pri_CommitTime p
LEFT  JOIN  Sec_CommitTime s  ON  [s].[DBName] = [p].[DBName]




Zabbix参数配置示例:

UserParameter=MSSQL.SyncHealth,"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\SQLCMD.EXE" -d Master -U zabbix -P zabbix -h -1 -W -Q "SELECT COUNT (*) as NotHealtyCount

FROM [master].[sys].[dm_hadr_database_replica_states]

WHERE [synchronization_health_desc] != N''HEALTHY''

"


建议,将1、3、4项配置为模板,2项需要单独配置4个参数。





















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/2050161 ,如需转载请自行联系原作者






相关文章
|
5月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
5月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
257 4
|
10月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
262 0
|
2月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
16天前
|
SQL 监控 数据库
OceanBase社区版可以通过Zabbix监控
【10月更文挑战第5天】随着OceanBase社区版的广泛应用,企业纷纷采用这一高性能、高可用的分布式数据库系统。为了确保系统的稳定运行,使用成熟的Zabbix监控工具进行全面监控至关重要。本文通过具体示例介绍了如何配置Zabbix监控OceanBase,包括安装配置、创建监控模板和监控项、编写脚本、设置触发器及图形展示等步骤,帮助读者快速上手,及时发现并解决问题,确保业务始终处于最佳状态。
27 2
|
1月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
37 2
zabbix agent集成percona监控MySQL的插件实战案例
|
2月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
96 0
|
4月前
|
监控 数据库 Docker
Zabbix监控神通数据库教程
**摘要:** 本文介绍了如何使用Docker安装和配置神舟通用数据库,并利用Zabbix进行监控。首先,通过Docker安装数据库镜像,启动容器并映射端口。接着,使用默认凭证连接数据库并验证安装。然后,将数据库的Python模块和库文件复制到主机,并安装Python3.5及相应模块,创建外部检查脚本以实现Zabbix的监控功能。示例展示了查询数据库版本的监控指标配置。最后,提到了监控结果的界面展示,并邀请读者探索更多Zabbix监控技巧。
71 0
Zabbix监控神通数据库教程
|
3月前
|
监控 关系型数据库 应用服务中间件
Linux zabbix监控 软件的安装
Linux zabbix监控 软件的安装
|
5月前
|
监控 关系型数据库 MySQL
zabbix 监控mysql服务
zabbix 监控mysql服务
82 0
zabbix 监控mysql服务