Zabbix对Windows Server的监控

2019-09-12 15:32:20 浏览数 (1)

休对故人思故国,且将新火试新茶,诗酒趁年华

环境

zabbix server

ens192:10.127.0.133 ens256:172.168.0.2

windows server2012

ens192:172.168.0.3 gateway:172.168.0.2

配置共享上网以及端口转发

这里的windows server2012环境使用的是esxi虚拟机,由于上公网的ip不够用,这里我做了nat,但esxi不支持nat网络,所以我使用iptables在zabbix server上实现了端口转发以及共享上网

开启zabbix server的路由转发功能
代码语言:javascript复制
echo 1 > /proc/sys/net/ipv4/ip_forward

或者

代码语言:javascript复制
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
配置iptables
代码语言:javascript复制
iptables -t nat -A POSTROUTING -s 172.168.0.0/24 -o ens192 -j SNAT --to-source 10.127.0.133
iptables -t nat -A PREROUTING -d 10.127.0.133 -p tcp --dport 3389 -i ens192 -j DNAT --to-destination 172.168.0.3:3389
iptables-save
测试网络连通性
进行远程连接测试

由于Windows server2012没有开启远程连接服务,需要在服务器管理器中添加角色和功能,步骤比较简单,这里不再赘述,直接连接zabbix server的3389端口就可以连接内网Windows server的远程桌面了

下载zabbix agent客户端

下载地址:

https://assets.zabbix.com/downloads/4.2.6/zabbix_agent-4.2.6-win-amd64-openssl.msi

开始安装
安装完成之后,zabbix agent会添加到服务中并开始运行
也可以看到10050端口正处于监听状态

在zabbix上添加Windows主机

主机名称写Windows名称就可以了

创建完主机之后遇到一个问题,连接agent一直报104错误,查看了下agent日志,发现网络走的是内网网卡,可能是之前iptables规则有点多,而且iptables规则是从上往下匹配的,导致正确的规则没有匹配到

get value from agent failed: ZBX_TCP_READ() failed;[104] connection reset by peer

将正确的iptables规则放在链的最顶端可以解决

代码语言:javascript复制
iptables -t nat -I POSTROUTING -d 172.168.0.0/24 -p tcp -m tcp --dport 10050 -j SNAT --to-source 10.127.0.133
iptables-save

查看日志可以看到agent的状态变为可用

zabbix提供了一个Windows监控的模板,提供了很多系统上的监控,并且可以自动发现并监控服务状态

创建Windows监控项示例

获取IIS进程状态

agent提供了一个proc.num[]的键值用于对进程数量的监控

当进程数量为0时可以配置触发器报警

如果要对IIS进程进行详细的监控,可以使用Windows的性能监视器进行监控

zabbix agent提供了perf_counter[counter,interval]键值对性能监试器采集到的值进行监控,这里以获取windows可用内存为例,首先要添加一个计数器

创建完成之后只需要在zabbix上添加计数器的路径就可以了

当然,这些计数器的路径也可以用数字来表示,路径与数字的映射值存在于注册表中,需要运行regedit,然后找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPerflib09这个注册表。

比如上面的监控项也可以使用如下方法表示:

如果我们要监控web进程的详细信息,可以在process路径下添加计数器,inetinfo为web运行的软件名称

监控IIS的并发连接数

同样是使用性能监视器,添加一个IIS连接数的计数器来对其进行监控,存在于Web Service路径下,如果要对IIS的其他信息(比如处理的CGI请求数)进行获取,也是在Web Service路径下添加计数器


欢迎各位一起交流,有问题可在下方评论交流

0 人点赞