内容简介:安装教程请查看链接
安装教程请查看链接
Zabbix3.4系列之二:Linux批量安装客户端Zabbix-agent
Zabbix3.4系列之三:windows批量安装客户端Zabbix-agent
通过 Zabbix模板,用于监视和收集Microsoft SQL Server统计信息。大多数请求是通过Windows性能计数器(`perf_counter`)完成的,一些是通过PowerShell完成的,另一些是通过ODBC完成的。
一、系统要求
Microsoft SQL Server2008-2012数据库
zabbix3.2-3.4
二、模板监控数据特征
-
MS SQL服务的状态
-
服务器统计(共70项):
-
内存
-
高速缓存
-
缓冲管理器
-
访问方法
-
锁
-
错误和失败的工作
-
日志大小
-
通过Powershell(Zabbix代理)或ODBC直接进行数据库发现
三、安装配置
本文配置文件路径为:C:\zabbix\zabbix_agentd.win.conf
本文脚本文件路径为:C:\zabbix\scripts\
1、将下面的配置信息添加到zabbix_agentd.win.conf最后面:
UserParameter = mssql.db.discovery,powershell -NoProfile -ExecutionPolicy Bypass -File“C:\zabbix\scripts\mssql_basename.ps1”
UserParameter = mssql.version,powershell -NoProfile -ExecutionPolicy Bypass -File“C:\zabbix\scripts\ mssql_version.ps1”
2、 将PowerShell脚本(`mssql _ * .ps1`)复制到脚本文件夹C:\zabbix\scripts\
mssql_basename.ps1配置信息
#функция для приведения к формату который понимает zabbix / the function is to bring to the format understands zabbix
function convertto-encoding ([string]$from, [string]$to){
begin{
$encfrom = [system.text.encoding]::getencoding($from)
$encto = [system.text.encoding]::getencoding($to)
}
process{
$bytes = $encto.getbytes($_)
$bytes = [system.text.encoding]::convert($encfrom, $encto, $bytes)
$encto.getstring($bytes)
}
}
#Задаем переменные для подключение к MSSQL. $uid и $pwd нужны для проверки подлинности windows / We define the variables for connecting to MS SQL. $uid и $pwd need to authenticate windows
$SQLServer = $(hostname.exe)
#$uid = "Login"
#$pwd = "Password"
#Создаем подключение к MSSQL / Create a connection to MSSQL
#Если проверка подлинности windows / If windows authentication
#$connectionString = "Server = $SQLServer; User ID = $uid; Password = $pwd;"
#Если Интегрированная проверка подлинности / If integrated authentication
$connectionString = "Server = $SQLServer; Integrated Security = True;"
$connection = New-Object System.Data.SqlClient.SqlConnection
$connection.ConnectionString = $connectionString
$connection.Open()
#Создаем запрос непосредственно к MSSQL / Create a request directly to MSSQL
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "SELECT name FROM sysdatabases"
$SqlCmd.Connection = $Connection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet) > $null
$Connection.Close()
#Получили список баз. Записываем в переменную. / We get a list of databases. Write to the variable.
$basename = $DataSet.Tables[0]
#Парсим и передаем список баз в zabbix. В последней строке нужно вывести имя бызы без запятой в конце. / Parse and pass a list of databases in zabbix. In the last line need to display the database name without a comma at the end.
$idx = 1
write-host "{"
write-host " `"data`":[`n"
foreach ($name in $basename)
{
if ($idx -lt $basename.Rows.Count)
{
$line= "{ `"{#DBNAME}`" : `"" + $name.name + "`" }," | convertto-encoding "cp866" "utf-8"
write-host $line
}
elseif ($idx -ge $basename.Rows.Count)
{
$line= "{ `"{#DBNAME}`" : `"" + $name.name + "`" }" | convertto-encoding "cp866" "utf-8"
write-host $line
}
$idx++;
}
write-host
write-host " ]"
write-host "}"
mssql_version.ps1脚本内容
$ver = Invoke-Sqlcmd -Query "SELECT @@VERSION;" -QueryTimeout 3 write-host $ver.Column1
3、 通过Web (配置 - >模板 - >导入)将XML模板文件(`zbx_template_mssql.xml`)导入Zabbix。
zbx_template_mssql.xml模板内容:
zbx_template_mssql.xml模板内容太多,模板下载地址: http://down.51cto.com/data/2452214
4、在“管理 - >常规 - >正则表达式(右侧下拉列表)”中配置正则表达式:
Name: Databases for discovery Expression: ^(master|model|msdb|ReportServer|ReportServerTempDB|tempdb)$ Type: Result is FALSE[object Object]
5、在“管理 - >常规 - >值映射(右侧下拉列表)”中导入“MS SQL Server数据库状态”值映射(`zbx_valuemaps_mssql.xml`)。正常是自动导入的,没有的话请手动添加:
四、 SQLServer性能计数器:
1、Access Methods(访问方法) 用于监视访问数据库中的逻辑页的方法。
| Forwarded Records/sec |
每秒通过正向记录指针提取的记录数。 |
| Page splits/sec(页分割/秒) |
由于数据更新操作引起的每秒页分割的数量。 |
| Workfiles Created/sec: |
每秒创建的工作文件数。 例如,工作文件可用于存储哈希联接和哈希聚合的临时结果。 |
| Worktables Created/sec |
每秒创建的工作表数。 例如,工作表可用于存储查询假脱机、LOB 变量、XML 变量和游标的临时结果。 |
| Full Scans/sec(全表扫描/秒) |
每秒不受限的完全扫描数。可以是基本表扫描或全索引扫描。如果这个计数器显示的值比1或2高,应该分析你的查询以确定是否确实需要全表扫描,以及S Q L查询是否可以被优化。 |
2、Buffer Manager(缓冲器管理器):
-
存储数据页的内存。
-
用于监视 SQL Server 读取和写入数据库页时的物理 I/O 的计数器。
-
用于借助高速非易失性存储(如固态硬盘 (SSD))扩展缓冲区高速缓存的缓冲池扩展。
监视 SQL Server 使用的内存和计数器有助于确定:
-
是否存在物理内存不足的瓶颈。 如果 SQL Server 无法将经常访问的数据存储在缓存中,则必须从磁盘检索数据。
-
是否可以通过添加更多内存或增加数据缓存或 SQL Server 内部结构的可用内存来提高查询性能。
-
SQL Server 需要从磁盘读取数据的频率。 与其他操作(例如内存访问)相比,物理 I/O 会消耗大量时间。 尽可能减少物理 I/O 可以提高查询性能。
| Buffer Cache Hit Ratio |
在“缓冲池”(Buffer Cache/Buffer Pool) 中 没有被读过的页占整个缓冲池 中 所有页的比率。可在高速缓存 中 找到而不需要从磁盘 中 读取的页的百分比。这一比率是高速缓存命 中 总数除以自 SQL Server 实例启动后对高速缓存的查找总数。经过很长时间后,这一比率的变化很小。由于从高速缓存 中 读数据比从磁盘 中 读数据的开销要小得多,一般希望这一数值高一些。通常,可以通过增加 SQL Server 可用的内存数量来提高高速缓存命 中 率。计数器值依应用程序而定,但比率最好为90% 或更高。增加内存直到这一数值持续高于90%,表示90% 以上的数据请求可以从数据缓冲区 中 获得所需数据。 |
| Lazy Writes/sec(惰性写/秒) |
惰性写进程每秒写的缓冲区的数量。值最好为0。 |
| Page Reads/sec: |
每秒发出的物理数据库页读取数。这一统计信息显示的是在所有数据库间的物理页读取总数。由于物理 I/O 的开销大,可以通过使用更大的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,使开销减到最小。 |
| Page Writes/sec (.写的页/秒) |
每秒执行的物理数据库写的页数。 |
3、 Locks(锁) 提供有关个别资源类型上的 SQL Server 锁的信息。
锁加在 SQL Server 资源上(如在一个事务 中 进 行的行读取或修改),以防止多个事务并发使用资源。例如,如果一个排它 (X) 锁被一个事务加在某一表的某一行上,在这个锁被释放前,其它事务都不可以修改这一行。尽可能少使用锁可提高并发性,从而改善性能。可以同时监视 Locks 对象的多个实例,每个实例代表一个资源类型上的一个锁。
| Number of Deadlocks/sec |
(死锁的数量/秒) 导致死锁的锁请求的数量 |
| Average Wait Time(ms) |
(平均等待时间(毫秒)) 线程等待某种类型的锁的平均等待时间 |
| Lock Requests/sec |
(锁请求/秒) 每秒钟某种类型的锁请求的数量。 |
Lock Timeouts/sec |
每秒超时的锁请求数,包括对 NOWAIT 锁的请求。 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Zabbix自定义监控脚本配置详解
- frp 控制台监控dashboard配置
- 容器监控实践—Prometheus的配置与服务发现
- 告警系统主脚本,告警系统配置文件,告警系统监控项目
- Zabbix Proxy 分布式监控安装和配置实践
- sourcemap 上传到sentry异常监控系统的配置记录
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
High Performance JavaScript
Nicholas C. Zakas / O'Reilly Media / 2010-4-2 / USD 34.99
If you're like most developers, you rely heavily on JavaScript to build interactive and quick-responding web applications. The problem is that all of those lines of JavaScript code can slow down your ......一起来看看 《High Performance JavaScript》 这本书的介绍吧!
XML、JSON 在线转换
在线XML、JSON转换工具
HEX HSV 转换工具
HEX HSV 互换工具