Zabbix 统计与聚合展示授权软件使用详情

近期在公司,经常遇到设计研发人员绘图软件授权不足的情况,其实也不是授权不足,我司按照研发设计人员配比1:2的比例购买的绘图授权,正常来说是完全够用的,只是设计人员习惯性开着软件,占用授权,后面人员真正需要用的时候,又没有授权,经常出现这样的事,每次都要跑到授权服务器去查看当前使用连接的人员设备,由于绘图软件有好几个,授权服务分布在不同的几台服务器查起来比较麻烦,于是乎就有了个聚合显示的想法,然后就有了这个推送。

思路

首先,由于是网络浮动授权,授权服务器授权是在客户端软件授权的时候使用port@授权服务器IP的方式,于是就可以想到,直接在授权服务器上,查询端口,确认端口使用的进程,然后就可以确定端口对应的授权软件。

操作

授权服务器中查询操作首先,在授权服务器上查看所有端口连接详情,此处授权服务器IP地址为172.16.252.168

netstat -ano 

活动连接
 协议		本地地址				外部地址				状态		   PID
  TCP    172.16.252.168:25735     172.16.25.124:60764    ESTABLISHED     1916
  TCP    172.16.252.168:25735     172.16.25.124:64043    ESTABLISHED     1916
  TCP    172.16.252.168:49182     172.16.25.209:50703    ESTABLISHED     1696
  TCP    172.16.252.168:49182     172.16.25.209:53878    ESTABLISHED     1696
  TCP    172.16.252.168:49259     172.16.25.43:60165     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.127:64993    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.30:49375     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.37:56325     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.38:59556     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.39:63363     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.82:60511     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.85:58277     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.103:60427    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.107:59358    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.110:58717    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.111:51405    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.116:52519    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.207:52466    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.234:57244    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.108:56114  ESTABLISHED     3208
... ...

因为此服务器只作软件授权使用,所以看到有客户端连接的基本就可以确认是授权的端口,只需关注这些就可以,通过上述就可以知晓 2573549259 端口肯定是某个软件的授权端口,接着可以通过上述PID可以查看到具体进程。

在授权服务器上操作:

C:\>tasklist | findstr "3208"
zwflex.exe                    3208 Services                   0     19,040 K

这样就查到具体进程信息,然后可以根据自己安装的授权软件,八九不离十的才出来了。

此处zwflex.exe 对应的授权软件为中望CAD,同理查另一个端口

C:\>tasklist | find "1916"
sw_d.exe                      1916 Services                   0     13,692 K

此处sw_d.exe 对应的授权软件为solidworks 。通过上述查询我们可以就已经知晓25735端口对应的软件为solidworks 49259 端口对应的软件为中望CAD然后在此服务器中找到安装Zabbix_agent路径,在路径中新建文件夹Script 并新增脚本,授权服务器中脚本编写脚本内容如下:

@echo off
# 脚本1--统计使用solidworks的数量,此处保存为solidworks.cmd
# 统计连接25735端口的数量,即为连接使用solidworks的数量
netstat -navo -p tcp | find "25735" | find "ESTABLISHED" /c
@echo off
# 脚本2--统计使用中望CAD的数量,此处保存为zwcad.cmd
# 统计连接49259端口的数量,即为连接使用中望CAD的数量
netstat -navo -p tcp | find "49259" | find "ESTABLISHED" /c
@echo off
# 脚本3--使用solidworks的详情,此处保存为solidworks_detail.cmd
# 统计连接25735端口的数量,即为连接使用solidworks的设备详情
netstat -navo -p tcp | find "25735" | find "ESTABLISHED" 
@echo off
# 脚本3--使用中望CAD的详情,此处保存为zwcad_detail.cmd
# 统计连接49259端口的数量,即为连接使用中望CAD的设备详情
netstat -navo -p tcp | find "49259" | find "ESTABLISHED" 

如图:

修改授权服务器中的Zabbix_agent配置文件

修改配置文件,此处为windows默认路径C:\Program Files\Zabbix Agent

修改zabbix_agentd.conf文件,在末尾处添加如下:

# 自定义脚本执行,名称为zwcad,脚本路径为C:\Program Files\Zabbix Agent\Script\zwcad.cmd,依次类推
UserParameter=zwcad,C:\Program Files\Zabbix Agent\Script\zwcad.cmd
UserParameter=solidworks,C:\Program Files\Zabbix Agent\Script\solidworks.cmd
UserParameter=zwcad_detail,C:\Program Files\Zabbix Agent\Script\zwcad_detail.cmd
UserParameter=solidworks_detail,C:\Program Files\Zabbix Agent\Script\solidworks_detail.cmd

修改保存后,重启一下Zabbix_agent服务

Zabbix新增监控项与图形

在前台,找到配置---主机,找到授权服务器,新增监控项

定义名称

此处为:中望CAD使用数

类型:Zabbix客户端

键值:此处应该与配置文件中定义的统计数量的定义的脚本名称对应

UserParameter=zwcad,C:\Program Files\Zabbix Agent\Script\zwcad.cmd

应该与UserParameter=xxx,=号后的值对应,切记。

使用详情监控项

与统计数量监控项差不多,唯一改变的地方为修改信息类型处为文本

另外,还可以新增图形,直观展示使用数的变化在Zabbix前台找到授权服务器,点击图形,创建图形,名称随意,自己理解即可,监控项选择上面新增的统计数量的监控项即可。

完成后,需要等待数据采集,并不会立刻显示数据,如需要检测是否错误,可以通过在Zabbix服务器上执行脚本

# 使用zabbix_get -s 授权服务器IP -k 监控项名称即为自定义脚本的名称
[root@zabbix zabbix]# zabbix_get -s 172.16.252.168 -k zwcad
17 # 当前有17个终端设备使用中望CAD
[root@zabbix zabbix]# zabbix_get -s 172.16.252.168 -k zwcad_detail
# 使用中望CAD的设备的具体信息为
  TCP    172.16.252.168:49259     192.168.1.43:59981     ESTABLISHED     3208
  TCP    172.16.252.168:49259     192.168.1.116:49245    ESTABLISHED     3208
  TCP    172.16.252.168:49259     192.168.1.127:64993    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.39:63363     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.45:60947     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.85:58277     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.96:57870     ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.103:60427    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.107:59358    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.110:49483    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.111:51405    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.116:52519    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.118:57968    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.207:52466    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.25.234:57244    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.26.108:56114    ESTABLISHED     3208
  TCP    172.16.252.168:49259     172.16.26.117:54959    ESTABLISHED     3208

等待十分钟左右,Zabbix图形界面的数据已有采集,有曲线图出现

在Zabbix看板,新增一个文本展示框,选择上面新增使用详情的监控项

数据有采集后,即可在此处看到如图:

结语

经过如上述所有操作可以完成对使用授权软件数量,以及哪些设备当前正在使用授权的聚合查看了,如果还有其他服务器,参照上述即可完成。通过此处我们可以知道,如果具体需要统计某个设备,服务器的某个端口,连接数,与连接详情,统一聚合展示,跟上述操作基本如出一辙。

 

相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3