首页 > 其他分享 >容器部署分布式zabbix

容器部署分布式zabbix

时间:2023-02-12 19:35:05浏览次数:57  
标签:容器 MYSQL server zabbix proxy mysql 分布式 ZBX

之前有写过docker-compose部署zabbix的博客

这里再总结下分布式部署zabbix的笔记,这里重点是部署zabbix-proxy

同样需要准备数据库配置文件

数据库配置文件差不多

这里是docker-compose资源清单

---
version: '3'
services:
  mysql:
    image: mysql:5.7.41
    container_name: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 4pxstdzc8943
      #MYSQL_ALLOW_EMPTY_PASSWORD: yes
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    volumes:
    - ./zabbix/db:/var/lib/mysql
    - ./zabbix/etc/my.cnf:/etc/my.cnf
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    ports:
    - 3306:3306
    networks:
    - zabbix-net
    command:
      - --default-authentication-plugin=mysql_native_password
      - --character-set-server=utf8
      - --collation-server=utf8_bin
  zabbix-snmptraps:
    #image: zabbix/zabbix-snmptraps:centos-6.2.4
    image: zabbix/zabbix-snmptraps:centos-5.0.30
    container_name: zabbix-snmptraps
    restart: always
    ports:
    - 162:162/udp
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    - snmptraps:/var/lib/zabbix/snmptraps:rw
    - mibs:/var/lib/zabbix/mibs
  zabbix-java-gateway:
    #image: zabbix/zabbix-java-gateway:centos-6.2.4
    image: zabbix/zabbix-java-gateway:centos-5.0.30
    container_name: zabbix-java-gateway
    restart: always
    networks:
    - zabbix-net
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    ports:
      - 10052:10052
  zabbix-proxy-mysql:
    image: zabbix/zabbix-proxy-mysql:ubuntu-5.0.30
    container_name: zabbix-proxy-mysql
    restart: always
    networks:
    - zabbix-net
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    - snmptraps:/var/lib/zabbix/snmptraps
    - zabbix-proxy-conf:/etc/zabbix
    - mibs:/var/lib/zabbix/mibs
    ports:
    - 10051:10051
    environment:
      #数据库地址
      DB_SERVER_HOST: mysql
      #数据库端口
      DB_SERVER_PORT: 3306
      #数据库用户
      MYSQL_USER: zabbix
      #数据库密码
      MYSQL_PASSWORD: zabbix
      #数据库中的库名
      MYSQL_DATABASE: zabbix_proxy
      #数据库root用户密码
      MYSQL_ROOT_PASSWORD: 4pxstdzc8943

      #5版本
      #server端映射出来的IP
      ZBX_SERVER_HOST: 112.xxx.xxx.xx
      #server端映射出来的端口
      ZBX_SERVER_PORT: 10051

      #6版本
      ZBX_SERVER_HOST: 112.xxx.xxx.xx:10051


      #开启SNMP
      ZBX_ENABLE_SNMP_TRAPS: true
      #起始主动收集数据的进程
      ZBX_STARTPOLLERS: 10
      #起始负责处理Agentd推送过来的数据的进程
      ZBX_STARTTRAPPERS: 100
      #允许连接的ip地址,这里是允许所有的
      ZBX_STATSALLOWEDIP: ::/0
      #代理模式 0表示主动由proxy发送数据
      ZBX_PROXYMODE: 0
      #主机名,不用必须是主机名,可以是任何有效字符串,只是需要注意,多台发往同一server的不能相同,对应的是server端web界面创建proxy的proxy的名称
      ZBX_HOSTNAME: testproxy
      ZBX_STARTDISCOVERERS: 3
      ZBX_STARTPINGERS: 10
      ZBX_CACHESIZE: 1024M
      ZBX_VALUECACHESIZE: 1024M
      ZBX_VMWARECACHESIZE: 256M
      #同步配置的时间,单位秒
      ZBX_CONFIGFREQUENCY: 120
      #发送数据的时间间隔 秒
      ZBX_DATASENDERFREQUENCY: 3
      #如果未与 Zabbix 服务器连接,Proxy 将保留数据 N 小时。
      ZBX_PROXYOFFLINEBUFFER: 12
      #Proxy 会在本地保留数据 6 小时,即使数据已经与服务器同步。
      ZBX_PROXYLOCALBUFFER: 6
      #历史缓存的大小,以字节为单位。
      ZBX_HISTORYCACHESIZE: 1024M
      #历史索引缓存的大小,以字节为单位。
      ZBX_HISTORYINDEXCACHESIZE: 1024M
    depends_on:
    - mysql
networks:
  zabbix-net:
volumes:
  snmptraps:
  zabbix-conf:
  mibs:
  zabbix-proxy-conf:

注意事项:

  • 5版本和6版本略有不同,主要是ZBX_SERVER_HOST不通,6版本的要把端口ip写起,5版本必须分开写
  • ZBX_HOSTNAME 非常重要,是server端创建proxy的依据,不一定要server端能解析,可以是任何有效的字符串,但是必须保证同一个server下的唯一性
    比如与下图中标识的位置保持一直
  • 配置web端时要注意,在创建proxy的时候,代理地址可以不填,填了就相当去设置了白名单,只允许设置的ip通过这个proxy上传数据
    如果时容器部署的话,强烈建议不填,很容易认为设置了这个,导致proxy被拒绝
  • 操作顺序应该是 先在server的web端创建proxy,再起proxy的服务

都操作完了,然后等待出现上传的行为或者下发配置的行为

标签:容器,MYSQL,server,zabbix,proxy,mysql,分布式,ZBX
From: https://www.cnblogs.com/guangdelw/p/17114511.html

相关文章

  • 分布式专题 - Dubbo + Zookeeper
    雪花算法的原理第一位符号位固定为0,41位时间戳,10位workld,12位序列号,位数可以有不同实现优点:每个毫秒值包含的ID值很多,不够可以变动位数来增加,性能佳(依赖workld的实现)......
  • Docker consul的容器服务更新与发现
    一、Consul概述(1)什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的......
  • Redis(十五)——实现分布式锁
    1、基于set命令的分布式锁加锁:使用setnx进行加锁,该指令返回1时,加锁成功。解锁:使用del释放,以便其他线程可以继续获取锁存在问题:A线程获取锁后还没释放就挂了,死锁。解决......
  • redis实现分布式锁(包含代码以及分析利弊)
    redis实现分布式锁(基础版)使用redis实现分布式锁的方法有多种,基础版本是基于setnx命令,即如果不存在则设置。这个命令可以保证只有一个客户端能够成功设置一个key,从而获得锁......
  • 88、商城业务---认证服务---分布式session解决方案原理
    ......
  • 87、商城业务---认证服务---分布式session不共享不同步的问题
    session原理:但是session只在当前域名生效,如下:我们的登录是在认证服务下,但是登录成功后又跳转到商品服务下(首页),他俩是不同域名的即使我们在同一个域名下,在分......
  • 分布式配置nacos搭建踩坑指南(下)
     上一篇介绍了在配置nacos中的碰到的坑,这一篇介绍一下如何正确进行nacos的环境搭建和配置,所以本文分为两部分,第一部分为环境搭建,介绍如何安装和运行。第二部分为alibaba......
  • #yyds干货盘点# LeetCode面试题:盛最多水的容器
    1.简述:给定一个长度为n的整数数组 height 。有 n 条垂线,第i条线的两个端点是 (i,0) 和 (i,height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可......
  • 开源分布式存储
    开源分布式存储技术分享-施继成达坦科技skycomputing和全球性分布式左边是raft,右边是最开始的paxosRRT=Round-TripTime如果leader和follower放在不同的数据中......
  • 【Docker】MySQL容器定时备份
    我们通常使用原生的mysql会比较多,mysql的备份也耳熟能详。假如现在有个mysql数据库username为root,password为123456,且现在要导出schema为db1、db2的数据。在本地导出的时候......