docker-compose部署zabbix

前期准备工作

新建必要文件夹

mkdir -p zabbix/{etc,fonts}

准备字体文件

存放在 ./zabbix/fonts/ 下就可以
不过名字必须叫DejaVuSans.ttf
可以根据自己的需求,在windows的字体库里找到想要的ttf格式的字体,修改成上面的名字就可以。

准备mysql的配置文件

存放位置: ./zabbix/etc/
名称就是my.cnf
范例配置文件(可以根据实际情况自行优化)

[mysqld]
skip-host-cache
skip-name-resolve
datadir=/var/lib/mysql
symbolic-links=0
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
#最大连接数
max_connections = 4000
#最大错误数
max_connect_errors = 6000
#单用户最大连接数
max_user_connections=1000
#独立表空间
innodb_file_per_table = 1
#5.7版本 单位天
#expire_logs_days=7

#8版本 单位秒
binlog_expire_logs_seconds=604800

pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/

docker-compose文件部分

---
version: '3'
services:
  mysql:
    image: mysql:8.0.31
    container_name: mysql
    restart: always
    environment:
      #数据库root用户密码
      MYSQL_ROOT_PASSWORD: root8943
      #允许空密码
      #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
    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
    container_name: zabbix-java-gateway
    restart: always
    networks:
    - zabbix-net
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    ports:
      - 10052:10052
  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:centos-6.2.4
    container_name: zabbix-server-mysql
    restart: always
    networks:
    - zabbix-net
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    #脚本存放目录
    - ./zabbix/alertscripts:/usr/lib/zabbix/alertscripts
    - snmptraps:/var/lib/zabbix/snmptraps
    #数据卷存放zabbix配置文件
    - zabbix-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
      #root用户密码
      MYSQL_ROOT_PASSWORD: root8943
      #开启snmp
      ZBX_ENABLE_SNMP_TRAPS: true
      #起始主动收集数据的进程
      ZBX_STARTPOLLERS: 10
      #起始负责处理Agentd推送过来的数据的进程
      ZBX_STARTTRAPPERS: 100
      #起始自动发现的进程
      ZBX_STARTDISCOVERERS: 3
      #其实ping的进程
      ZBX_STARTPINGERS: 10
      #开启java网关
      ZBX_JAVAGATEWAY_ENABLE: true
      #指定java网关的地址
      ZBX_JAVAGATEWAY: zabbix-java-gateway
      #端口
      ZBX_JAVAGATEWAYPORT: 10052
      #缓存的大小
      ZBX_CACHESIZE: 1024M
      #缓存数值项的大小
      ZBX_VALUECACHESIZE: 1024M
      ZBX_VMWARECACHESIZE: 256M
      #删除数据相关设置
      ZBX_HOUSEKEEPINGFREQUENCY: 6
      ZBX_MAXHOUSEKEEPERDELETE: 10000
      #历史缓存索引
      ZBX_HISTORYINDEXCACHESIZE: 1024M
      #历史缓存
      ZBX_HISTORYCACHESIZE: 1024M
    depends_on:
    - mysql
    - zabbix-java-gateway
  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:centos-6.2.4
    container_name: zabbix-web-nginx-mysql
    restart: always
    networks:
    - zabbix-net
    volumes:
    - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime
    - ./zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
    environment:
      DB_SERVER_HOST: mysql
      DB_SERVER_PORT: 3306
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      ZBX_SERVER_HOST: zabbix-server-mysql
      PHP_TZ: Asia/Shanghai
      ZBX_SERVER_PORT: 10051
      MYSQL_DATABASE: zabbix
      ZBX_SERVER_NAME: admin
    ports:
    - 8080:8080
    depends_on:
    - mysql
    - zabbix-server-mysql
networks:
  zabbix-net:
volumes:
  snmptraps:
  zabbix-conf:
  mibs:
  zabbix-proxy-conf:

运行文件

这里没有把agent也放在里面,是因为,agent一般是不运行在容器中的,因为还需要监控docker,放在容器中运行反而复杂了,在宿主机上运行agent来监控宿主机,更方便。

监控docker,只需要给zabbix用户加入到docker组就可以了

usermod -aG docker zabbix

然后重启服务就好了

posted @   厚礼蝎  阅读(939)  评论(0编辑  收藏  举报
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示