感谢本文作者李根,Zabbix高级认证专家。

Zabbix除了可以通过HTTP代理及WEB场景监控网站的响应结果、响应时间和传输速度等,也可以通过读取网站的后台日志,获取有用的统计信息。

下面我以Grafana为例,介绍如何通过日志统计网站的访问量。

操作如下:


1、读取grafana日志 首先要基于Zabbix Agent针对日志进行读取,其安装请参考Zabbix官方手册在此就不再赘述。 

1.1、Agent启动后,可通过自动注册或者手动创建一个主机。

Zabbix+Grafana:如何根据日志统计网站访问量?_用户登录

1.2、再创建一个“Zabbix客户的(主动式)”类型的监控项“grafana log file”,通过“log[/var/log/grafana/grafana.log]”这个健值,针对grafana日志进行读取。如下图:

1.3、创建好上述监控项后,可在最新数据中查看到grafna的日志内容,如下图:


2、截取用户登录信息 然后根据读取的日志内容,通过正则表达式,匹配关键值,获取所需的用户登录信息。 

2.1、创建一个类型为“相关项目”的监控项“grafana login user”,主要项为之前创建的“grafana log file”监控项。

2.2、在预处理进程中,根据“Successfull Loing”等关键字,截取对应的登录用户信息。如下图

Zabbix+Grafana:如何根据日志统计网站访问量?_用户登录_02

2.3、创建好上述监控项后,可在最新数据中查看到对应的登录用户信息,如下图:

Zabbix+Grafana:如何根据日志统计网站访问量?_数据_03

3、统计用户登录数据 再根据截取用户登录信息,通过可计算项进行相关数据统计。

3.1、创建一个类型为“可计算项”的监控项“grafana login user num”,用于计算每一分钟内,用户登录的次数。如下图:

3.2、创建一个类型为“可计算项”的监控项“grafana login user num sum”,用于统计最近一天用户登录的总次数。如下图:

3.3、也可以创建一个类型为“可计算项”的监控项“grafana login user count unique”,用于统计最近一天登录的用户数。如下图:

3.3、创建好上述监控项后,可通过登录grafana,观察对应监控项数据收集情况。如下图:。如下图:

注:上图中客户端IP及请求数的统计同用户登录数统计类似,除了上述方法,也可通过log.count或者logrt.count进行关键信息统计。

4、定制Dashboard展示 最后有对应的数据后,可以通过定制Dashboard针对上述数据进行展示。 

4.1、在“监测->仪表板”页面中,点击“创建仪表板”后,输入新仪表板的名称。

Zabbix+Grafana:如何根据日志统计网站访问量?_用户登录_04

4.2、再点击“添加新构建”,输入对应的名称,选择对应的类型及监控项。如下图:

Zabbix+Grafana:如何根据日志统计网站访问量?_数据_05

4.3、将收集到的数据,通过添加不同的构建,将数据进行展示。如下图:

Zabbix+Grafana:如何根据日志统计网站访问量?_数据_06