【zabbix】Windows服务器获取IIS站点以及程序池状态
在使用zabbix做Windows服务器监控的时候遇到一个比较棘手的问题,检测IIS站点状态。
普通情况下,只要用浏览器访问iis站点测试一下返回码是不是200即可判断状态,但是我这次遇到的是iis使用了主机头,也就是说iis上的站点使用的是同一个IP地址,同一个端口号。外部请求是根据域名来判断访问哪个站点,并且IIS前面还有负载均衡器,这样我就不能让zabbix也通过域名的方式测试IIS了,因为这样不能判断是不是所有的IIS都没有问题。
为此,研究了如何在本地使用命令行的方式获取iis站点的运行状态,做成一个批处理文件供zabbix分析如下:
@echo off
C:\Windows\System32\inetsrv\appcmd.exe list site | find "Stopped" >> D:\zabbix\iis.txt
C:\Windows\System32\inetsrv\appcmd.exe list apppool | find "Stopped" >> D:\zabbix\iis.txt
for /f "tokens=1 delims=(" %%1 in (D:\zabbix\iis.txt)do (set x=%%1&& call set x=%%x:"=%%
call echo %%x%%)
cd.>D:\zabbix\iis.txt
脚本说明:
第一行:关闭echo输出。
第二行:获取所有站点的状态,查找状态为stopped的站点,将结果放在iis.txt文件里。
第三行:获取所有应用程序池的状态,查找状态为stopped的程序池,将结果放在iis.txt文件里。
第四行:以左括号为分隔符(delims指定分隔符),截取iis.txt里第一列的数据(tokens=1指定第一列),并去掉双引号(如果有双引号,zabbix使用微信告警的时候,引号后面的内容就没了)
第五行:将iis.txt文件清空。方便下次使用。
如果所有站点都正常,该脚本返回为空。
如果有站点异常,该脚本返回如下:
表示名字为:portal的站点停了,但是portal的程序池没有停
名字为:defaultapppool的程序池停了,但是站点没有停
第一列的site表示站点故障,apppool表示应用程序池故障。

zabbix里调用这个脚本即可实现对iis站点的监控,如何添加监控项这里就不讲了。触发器可以选择:最近获取到的字符串长度大于1即报警。原因为这个脚本只有在iis站点或者程序池有停止的时候,才会返回停止的值。
【zabbix】Windows服务器获取IIS站点以及程序池状态的更多相关文章
- [2015-11-23]分享一个批处理脚本,创建iis站点及程序池
建站批处理 batch_createSites.bat @echo off rem 以管理员身份执行本脚本,可添加多条call 以建立多个站点 call path\to\createSites.bat ...
- pageadmin建站软如何修改和设置iis站点应用程序池
很多用户第一次安装PageAdmin建站系统时候会出现这个错误,主要原因: 1.首选打开iis站点基本设置,可以看到当前站点对应的应用程序池,如下图: 可以看到当前站点用的程序池名为MyAppPool ...
- windows服务器下iis的性能优化 服务器
IIS性能优化 1.调整IIS高速缓存 HKEY_LOCAL_MACHINE SystemCurrentControlSetServicesInetInfoParametersMemoryCacheS ...
- 服务器资源共享--IIS站点/虚拟目录中访问共享目录(UNC)
本文重点描述如何使用IIS访问共享资源来架设站点或执行 ASP.Net 等脚本. 通常情况下,拥有多台服务器的朋友在使用IIS建立站点的时候,会遇到如何把多台服务器的资源合并到一起的问题.如何让A服务 ...
- C# 获取IIS站点及虚拟目录信息
using System; using System.DirectoryServices; using System.Collections.Generic; using System.Text; n ...
- IIS监控应用程序池和站点假死,自动重启IIS小工具
文章技术适合初学者.高级的C#开发工程师这些估计都熟悉到烂了,望不要喷. 第一.C#代码要操作IIS 就必须先导入 Microsoft.Web.Administration.dll ,方便控制台程序做 ...
- IIS7.5 用 IIS AppPool\应用程序池名 做账号 将各站点权限分开
IIS6里面,要把服务器上的各站点权限分开,要建一堆帐号,再一个一个站点绑定.IIS7.5就不用了. 选择 "应用程序用户" 选择 "应用程序用户",启动应用程 ...
- 【转载】Windows Server2012安装IIS服务器
在云服务器的使用过程中,很多人由于习惯或者实际需要,会选择Windows Server系统服务器,较常用的版本有Windows Server2008.Windows Server2012.在Windo ...
- 使用appcmd命令创建iis站点及应用程序池
参考文章:iis7 appcmd的基础命令及简单用法 验证环境:Windows 7 IIS7 AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下, ...
随机推荐
- Dcokerfile 参考
Dcokerfile 包含了所有用来组装image的命令.通过docker build来自动创建image. 用法 需要指定本地路径作为上下文目录,路径是本地系统的目录.而docker build ...
- 开始docker
安装 docker 目前只支持64位系统 1.下载并安装,简直太方便了 $ curl -fsSL https://get.docker.com/ | sh 用例 .docker run hel ...
- Mac测试模拟慢网速
先普及一下Kb,KB,Kbps,Mb,Mbps等一些列概念 1Byte = 8bit 1KB (Kilobyte 千字节)=1024Byte 1MB (Megabyte,兆字节,简称“兆”)=1024 ...
- 前台页面获取servlet传过来的数据
servlet中的代码: public void doGet(HttpServletRequest request, HttpServletResponse response) throws Serv ...
- 2016.10.18kubernetes 的8080和6443端口的区别与联系
由看过的资料知道,可以使用kubectl,client libraries和REST请求来访问api. 来自官方资料: By default the Kubernetes APIserver se ...
- poj 3307 Smart Sister 打表解因子生成数问题
题意: 给i,求由仅以2,3,5,7为因子的数中第i个是多少. 分析: 打表. 代码: //poj 3307 //sep9 #include <iostream> using namesp ...
- POJ 题目3264 Balanced Lineup(RMQ)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 39046 Accepted: 18291 ...
- 超出用省略号function()
//判断是否微信浏览器 function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/M ...
- Robot Framework ---Selenium API
一.浏览器驱动 通过不同的浏览器执行脚本. Open Browser Htpp://www.xxx.com chrome 浏览器对应的关键字: firefox FireFox ff internete ...
- 图片压缩CompressUtil解析
CompressUtil 流程图: CompressUtil 类 具体解释 public class CompressUtil { /** * 终于封装的压缩方法 * @param imgPath * ...