当前位置: 首页 > news >正文

Zabbix结合Grafana统计日志网站访问量

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

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

操作如下:

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

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

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”等关键字,截取对应的登录用户信息。如下:

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

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、在“监测->仪表板”页面中,点击“创建仪表板”后,输入新仪表板的名称。

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

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

博主可能不能及时回答疑问,如技术问题欢迎加入交流。

博主具有丰富的模板资源和开发能力及项目落地管理经验分享欢迎加入交流

微信号:king_songax

相关文章:

  • 11.4商业伦理(全)
  • npm create vue@latest 原理
  • C++17中std::any的使用
  • 【教3妹学编程-算法题】2914. 使二进制字符串变美丽的最少修改次数
  • 如何从站长的角度选择高防CDN以节省成本
  • Python基础入门例程36-NP36 谁的数字大(运算符)
  • 部署ELK
  • [Machine Learning][Part 8]神经网络的学习训练过程
  • Windows下pm2调用npm和nuxt的办法
  • 【LeetCode刷题-栈与队列】--232.用栈实现队列
  • 论文阅读:One Embedder, Any Task: Instruction-Finetuned Text Embeddings
  • git reflog 恢复git reset --hard 回退的内容
  • 小程序如何设置用户同意服务协议并上传头像和昵称
  • Spring Boot spring.factories的原理
  • dockerfile避坑笔记(VMWare下使用Ubuntu在Ubuntu20.04基础镜像下docker打包多个go项目)
  • [笔记] php常见简单功能及函数
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 2017届校招提前批面试回顾
  • Android Volley源码解析
  • android 一些 utils
  • es的写入过程
  • Javascript编码规范
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • Magento 1.x 中文订单打印乱码
  • pdf文件如何在线转换为jpg图片
  • Python实现BT种子转化为磁力链接【实战】
  • python学习笔记-类对象的信息
  • spring-boot List转Page
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 近期前端发展计划
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 聊一聊前端的监控
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 区块链共识机制优缺点对比都是什么
  • 走向全栈之MongoDB的使用
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 从如何停掉 Promise 链说起
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (¥1011)-(一千零一拾一元整)输出
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (2022 CVPR) Unbiased Teacher v2
  • (arch)linux 转换文件编码格式
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (二)WCF的Binding模型
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (新)网络工程师考点串讲与真题详解
  • (转)c++ std::pair 与 std::make
  • .CSS-hover 的解释
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .gitignore文件---让git自动忽略指定文件