zabbix企业应用:利用自动发现监控IIS站点
如果一台windows server有许多个IIS站点,我们想实现这样一个监控目标:监控每个站点的状态、请求、流量、连接数,而且以后新增加的站点也可以自动加入到监控里,不需要再手动添加。
利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控。
先看一下监控的效果:
上图中的“Web Service(wskh)”是指IIS网站名称为wskh;“Web Service(_Total)”是指IIS下所有的站点。
网站流量:
网站请求:
下面讲一下监控方法:
一、zabbix服务端配置
1、配置过滤正则表达式
依次选择Administration->General->Regular expressions。创建新的正则表达式“IIS Site for discovery”,会在后面的模板中引用。正则表达式的名字不能有错,否则导入模板报错。
表达式的内容填“^none$”,表达式类型选择“Result is FALSE”,意思是过滤掉内容是none的结果。这么填写是为了配合自动发现的脚本,脚本内容见后面客户端的配置。
zabbix2.2版本配置方法:
zabbix3.0版本配置方法:
2、导入模板
现在可以导入模板了,模板见本文的附件。下面介绍一下模板的监控项和告警的配置:
监控项原型Item prototypes
这里使用了windows性能计数器来监控IIS站点各项指标。下面介绍下各监控项的含义:
{#WEB_SERVICE} Bytes Received/sec:IIS站点接收数据字节的速率
{#WEB_SERVICE} Bytes Sent/sec:IIS站点发送数据字节的速率
{#WEB_SERVICE} Bytes Total/sec:IIS站点的总传输数据字节的速率,是Received/sec和Sent/sec的和。
{#WEB_SERVICE} Get Requests/sec:IIS站点的GET请求速率
{#WEB_SERVICE} Post Requests/sec:IIS站点的POST请求速率
以上5个监控项是取的平均值,使监控数据更加准确、平滑。
{#WEB_SERVICE} Current Connections:当前与IIS站点建立连接的数量
{#WEB_SERVICE} Service Uptime:IIS站点的启动时间
以上2个监控项是取的当前瞬时值。
触发器原型Trigger prototypes
{#WEB_SERVICE} on {HOST.NAME} has just been restarted:重启IIS站点的报警
图形原型Graph prototypes
{#WEB_SERVICE} Bytes/sec:数据传输速率图形,包括数据接收速率、发送速率、总的速率。
{#WEB_SERVICE} Requests/sec:http请求速率图形,包括GET请求速率和POST请求速率。
zabbix server会根据以上原型对发现出来的每一个站点创建相应的监控项、触发器、图形。
二、zabbix客户端配置
下面要在被监控的IIS服务器上做配置。
首先上传IIS站点自动发现脚本LLD_Web_Service.bat到C盘根目录。
脚本内容如下:
@echo off SETLOCAL ENABLEDELAYEDEXPANSION echo { echo "data":[ for /F "tokens=* delims= " %%i IN ('typeperf -qx^|find "Web Service"^|find "Current Connections"') DO ( set j=%%i for /F "tokens=1 delims=\" %%k in ("%%i") DO ( echo { echo "{#WEB_SERVICE}": "%%k" echo }, ) ) echo { echo "{#WEB_SERVICE}": "none" echo } echo ] echo }
然后修改zabbix agent的配置文件,增加自定义参数:
UserParameter=iis.site.discovery,C:\LLD_Web_Service.bat
修改完毕重启zabbix agent使配置生效。
在zabbix server上测试一下客户端是否配置成功:使用zabbix_get命令获取脚本执行结果,脚本返回一段json数据。
最后在zabbix web上创建主机并导入模板,监控完成!
其他zabbix自动发现LLD的应用文章:
zabbix应用之Low-level discovery监控磁盘IO:http://qicheng0211.blog.51cto.com/3958621/1599776
zabbix应用之nginx统一监控:http://qicheng0211.blog.51cto.com/3958621/1557695
zabbix应用之low-level discovery监控mysql:http://qicheng0211.blog.51cto.com/3958621/1539101

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Heartbeat+Drbd+Mysql主从高可用实现
在上一篇中已经实现了MySQL服务的高可用,MySQL的数据目录放在drbd的共享目录中,并且只有获取到heartbeat资源的VIP才能挂载共享目录,从而启动MySQL服务,但是两端的数据使用drbd同步,保证发生故障时,服务和资源能够从一个节点切换到另外一个节点,下面是一个简略的架构图: 对于MySQL服务,一般在生产环境中都要做主从结构,从而保证数据的完整性,所以这次要在这个架构的前提下,在两个heartbeat节点下再部署一台MySQL从库,而主库是heartbeat集群中的一台(主库的IP设置为VIP地址),从而实现发生故障时,从库可以自动切换到另一台主库下面,主从同步的状态保持稳定。 当heartbeat01获取VIP时,MySQL主库跑在heartbeat01上,MySQL从库从heartbeat01同步数据,heartbeat02相当于备份服务器,通过drbd的块设备同步heartbeat01上drbd目录的内容。 当heartbeat02获取VIP时,MySQL主库跑在heartbeat02上,MySQL从库从heartbeat02同步数据,heartbeat01相当...
- 下一篇
安装Nano Server物理服务器Hyper-V角色
前面的步骤和安装Windows Nano Server虚拟机一致: 我把Windows Server 2016安装光盘的NanoServerImageGenerator复制到D:\Download\NanoSrv 首先导入Nano的PS模块 Import-Module .\NanoServerImageGenerator -Verbose 创建物理机的Wim文件的命令如下: New-NanoServerImage -Edition Standard -DeploymentType Host -MediaPath <path to root of media> -BasePath .\Base -TargetPath .\NanoServerPhysical\NanoServer.wim -ComputerName <computer name> -OEMDrivers -Compute -Clustering 在加入驱动和加域之前需要提前干些事情,比如: 先用一些类似驱动管理的软件把网络、存储、磁盘等驱动的sys和inf等文件抓出来,然后利用这些文件我们封装进w...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS关闭SELinux安全模块