网站首页 | 范文大全 | 常用申请书 | 党团范文 | 讲话发言 | 作文大全 | 报告叙述 | 合同范文 | 党建教育 | 入党材料 | 心得体会 |
三晋范文网
  • 读书心得体会
  • 培训心得体会
  • 军训心得体会
  • 教师心得体会
  • 解放思想心得体会
  • 工作心得体会
  • 学习心得体会
  • 社会实践心得体会
  • 教师笔记
  • 您的位置:三晋范文网 > 心得体会 > 军训心得体会 > 正文 2019-10-17 07:25:35

    [Docker下实战zabbix三部曲之三:自定义监控项mi 10bt info] zabbix自定义

    摘要:为什么要自定义监控项 通过上一章Docker下实战zabbix三部曲之二:监控其他机器的实战,我们知道了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连上zabbix server后,将

    为什么要自定义监控项

    通过上一章Docker下实战zabbix三部曲之二:监控其他机器的实战,我们知道了对机器的监控是通过在机器上安装zabbix agent来完成的,zabbix agent连上zabbix server后,将自己所在机器的信息定时给到zabbix server,这样就实现了机器的监控;

    但是我们能监控到的只有cpu,磁盘这些基础信息,对于一些业务信息例如访问量,某个逻辑的执行成功失败次数等信息,我们也想进行监控,这就需要我们去制作自定义监控项了,郭超人简介,本章我们一起来实战自定义监控项。

    前文链接:

    Docker下实战zabbix三部曲之一:极速体验

    Docker下实战zabbix三部曲之二:监控其他机器

    机器部署情况一览

    总的来说,有四台机器,各自的功能如下:

    a. 假设有个机器在运行web应用,容器是Tomcat,这个应用有个接口:8080/zabbixcustomitemdemo/count,可以返回最近一分钟的某个业务量(例如网站访问次数);

    b. 有一台机器安装了zabbix agent,作为自定义监控项的载体;

    c. 有一台机器安装了zabbix server;

    d. 有一台机器安装了MySQL,作为zabbix系统的数据库;

    整体部署如下图所示:

    Docker下实战zabbix三部曲之三:自定义监控项

    运行web应用的server

    这是个基于maven的JAVA web应用,里面有个spring mvc的controller,提供一个http服务,范围某个业务每分钟的业务量,代码如下图所示:

    @Controllerpublic class CountController { @RequestMApping("/count") @ResponseBody public int count(String model, String type) { int base; int max; int min; if("a".equals(model)){ base = 50000; }else{ base =10000; } if("0".equals(type)){ max = 9000; min = 1000; }else{ max = 1000; min = 0; } return base + new Random().nextInt(max)%(max-min+1); }}

    从以上代码我们可以看出,http服务会返回随机数,此服务接受两个参数model和type,当model等于a时返回的随机数从50000开始,model不等于a时返回的随机数从10000开始,当type等于0时,在base的基础上增加的值是1000到9000之间,当type不等于0时,在base的基础上增加的值是0到1000之间;

    整个工程的代码已经上传到git上,地址是git@github.com:zq2599/blog_demos.git,这个目录下由多个工程,本次实战的工程是zabbixcustomitemdemo,如下图:

    Docker下实战zabbix三部曲之三:自定义监控项

    docker-compose.yml文件

    上面我们已经把四台机器的功能和关系梳理清楚了,现在就来制定docker-compose.yml文件吧:

    version: '2'services: zabbix-mysql-service: image: daocloud.io/lipary/mysql:8 container_name: zabbix-mysql-service environment: - MYSQL_ROOT_PASSWORD=888888 restart: always zabbix-server-service: image: monitoringartist/zabbix-xxl:3.2.6 links: - zabbix-mysql-service:mysqlhost container_name: zabbix-server-service restart: always depends_on: - zabbix-mysql-service ports: - "8888:80" environment: - ZS_DBHost=mysqlhost - ZS_DBUser=root - ZS_DBPassword=888888 zabbix-agent-a: image: zabbix/zabbix-agent:ubuntu-3.2.6 links: - zabbix-server-service:zabbixserverhost container_name: zabbix-agent-a restart: always depends_on: - zabbix-server-service environment: - ZBX_HOSTNAME=zabbix-agent-service-a - ZBX_SERVER_HOST=zabbixserverhost tomcat-server-service: image: bolingcavalry/bolingcavalrytomcat:0.0.1 container_name: tomcat-server restart: always ports: - "8080:8080"

    yml文件的内容如上所示,其中mysql、zabbix server,zabbix agent的配置和上一章Docker下实战zabbix三部曲之二:监控其他机器是一样的,新增的是一个tomcat的镜像,这个镜像是我在tomcat官方镜像的基础上做了点小改动,使得这个tomcat支持在线部署web应用(关于tomcat在线部署应用,请看文章)

    准备好yml文件之后,打开终端,在yml文件所在目录下执行docker-compose up -d可以将yml文件中所有的容器都启动;

    注意,如果您的电脑之前已经运行过上一章Docker下实战zabbix三部曲之二:监控其他机器中的docker-compose.yml文件,那么本次执行docker-compose up -d会提示启动失败,已有同样名称的容器存在,这时候可以去上一章的docker-compose.yml文件所在目录执行docker-compose down,也可以通过docker ps -a将所有容器列出,再通过docker stop命令依次停止所有容器,再执行docker-compose rm命令依次删除;

    部署web应用

    [Docker下实战zabbix三部曲之三:自定义监控项mi 10bt info] zabbix自定义》由(三晋范文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2023 三晋范文网 All Rights Reserved. 备案号:京ICP备14001712号-1