zoukankan      html  css  js  c++  java
  • Docker版zabbix

    1. docker-compose

           docker-compose :容器自带的编排工作,可以通过yaml编排文件,将容器要启动的命令写入文件,然后再利用docker-compose run file.yaml文件来直接启动,同时启动多个容器,方便应用服务的移植、共享。

    2. 部署zabbix服务

           部署zabbix服务,然后利用docker-compose启动。

    1> 上传压缩包,解压

    [root@node ~]# cd /opt/
    [root@node opt]# ls
    rh  zabbix-agent.tar.gz  zabbix-server.tar.gz
    [root@node opt]# tar xf zabbix-server.tar.gz
    [root@node opt]# ls
    cmp_mariadb  cmp_zabbix  rh  zabbix-agent.tar.gz  zabbix-server.tar.gz

    2> 启动数据库

    [root@node cmp_mariadb]# docker load -i  mariadb-latest.tar    #导入镜像
    [root@node cmp_mariadb]# docker images
    mariadb                       latest              901583bfdf5a        5 months ago        367MB
    
    启用编排文件文件名必须为docker-compose.ymal
    先查看文件内容
    [root@node cmp_mariadb]# ls
    docker-compose.yml  mariadb-latest.tar  mysqlconf  mysqllib  mysqllog
    [root@node cmp_mariadb]# vim docker-compose.yml
    mysql:
        image: mariadb:latest
        ports:
            - "3306:3306"                      #端口映射
        volumes:
            - ./mysqllib:/var/lib/mysql        #目录映射
            - ./mysqlconf:/etc/mysql
            - ./mysqllog:/var/log/mysql
        environment:                           #环境变量
            - MYSQL_USER=zabbix
            - MYSQL_DATABASE=zabbix
            - MYSQL_PASSWORD=zabbix
            - MYSQL_ROOT_PASSWORD=123321
            - LANG=en_US.utf8
            - TZ=Asia/Shanghai
        restart: always                       #一直重启,开机重启
    [root@node cmp_mariadb]# docker-compose up -d  #启动编排文件,-d表示放在后台启动
    Creating cmpmariadb_mysql_1 ... done
    [root@node cmp_mariadb]# docker ps        #启动成功
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
    a4bae322f4f6        mariadb:latest      "docker-entrypoint.s…"   4 minutes ago       Up 4 minutes        0.0.0.0:3306->3306/tcp   cmpmariadb_mysql_1

    由docker-compose启动的容器无法用命令docker命令控制,必须用docker-compose 在docker-compose所在的目录下执行相关命令。

    [root@node cmp_mariadb]# docker-compose ps
           Name                 Command          State          Ports       
    -------------------------------------------------------------------------
    cmpmariadb_mysql_1   docker-entrypoint.sh    Up      0.0.0.0:3306->3306/t
    
                         mysqld                          cp

    3> 启动zabbix

    [root@node opt]# cd cmp_zabbix/
    [root@node cmp_zabbix]# ls
    docker-compose.yml  zabbixconfig    zabbix-server-mysql.tar
    zabbix-agent.tar    zabbix-scripts  zabbix-web-nginx-mysql.tar
    
    导入镜像
    [root@node cmp_zabbix]# docker load -i zabbix-server-mysql.tar
    [root@node cmp_zabbix]# docker load -i zabbix-agent.tar
    [root@node cmp_zabbix]# docker load -i zabbix-web-nginx-mysql.tar
    
    编排文件内容
    [root@node cmp_zabbix]# vim docker-compose.yml
    version: '3'
    services:
      zabbix-server:
        container_name: zabbix-server
        image: zabbix/zabbix-server-mysql:latest
        restart: always
        network_mode: host
    #    ports:
    #      - "10051:10051"
        environment:
          - DB_SERVER_HOST=192.168.16.95
          - MYSQL_USER=zabbix
          - MYSQL_DATABASE=zabbix
          - MYSQL_PASSWORD=zabbix
          - DB_SERVER_ROOT_USER=root
          - DB_SERVER_ROOT_PASS=123321
          - TZ='Asia/Shanghai'
        volumes:
          - /etc/localtime:/etc/localtime:ro
          - ./zabbix-scripts:/usr/lib/zabbix
          - ./zabbixconfig:/etc/zabbix
      zabbix-web-nginx:
        image: zabbix/zabbix-web-nginx-mysql:latest
    restart: always
    network_mode: bridge
        ports:
          - "8080:80"
          - "8443:443"
        environment:
          - DB_SERVER_HOST=192.168.16.95
          - MYSQL_DATABASE=zabbix
          - MYSQL_USER=zabbix
          - MYSQL_PASSWORD=zabbix
          - MYSQL_ROOT_PASSWORD=123321
          - ZBX_SERVER_HOST=192.168.16.95
          - PHP_TZ="Asia/Shanghai"
          - TZ='Asia/Shanghai'
      zabbix-agent:
        image: zabbix/zabbix-agent:latest
        environment:
          - ZBX_HOSTNAME=Zabbix server
      - ZBX_SERVER_HOST=127.0.0.1
          - ZBX_SERVER_PORT=10051
          - TZ='Asia/Shanghai'
        network_mode: host
    #    ports:
    #      - "10050:10050"
        restart: always
        privileged: true
    #    links:
    #      - zabbix-server:zabbixhost
    
    启动
    [root@node cmp_zabbix]# docker-compose up -d
    Creating cmpzabbix_zabbix-web-nginx_1 ... done
    Creating cmpzabbix_zabbix-agent_1     ... done
    Creating cmpzabbix_zabbix-agent_1     ...
    [root@node cmp_zabbix]# docker-compose  ps
            Name                 Command          State          Ports      
    -------------------------------------------------------------------------
    cmpzabbix_zabbix-      docker-entrypoint.sh   Up                        
    agent_1                                                                 
    cmpzabbix_zabbix-      docker-entrypoint.sh   Up      0.0.0.0:8443->443/t
    web-nginx_1                                           cp, 0.0.0.0:8080->8
                                                          0/tcp             
    zabbix-server          docker-entrypoint.sh   Up  

    容器启动后,在web端查看

    若无法进入页面,修改文件/etc/sysctl.conf,加入net.ipv4.ip_forward=1

    [root@node cmp_zabbix]# vim /etc/sysctl.conf
    # sysctl settings are defined through files in
    # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
    #
    # Vendors settings live in /usr/lib/sysctl.d/.
    # To override a whole file, create a new file with the same in
    # /etc/sysctl.d/ and put new settings there. To override
    # only specific settings, add a file with a lexically later
    # name in /etc/sysctl.d/ and put new settings there.
    #
    # For more information, see sysctl.conf(5) and sysctl.d(5).
    net.ipv4.ip_forward=1

    用户/密码:Admin/zabbix

    4> 监控其他三个节点

    将zabbi-agent导入到三个节点

    [root@node1 ~]# cd /opt
    [root@node1 opt]# ls
    rh  zabbix-agent.tar.gz
    [root@node1 opt]# tar xf zabbix-agent.tar.gz 
    [root@node1 opt]# ls
    cmp_zabbix_agent  rh  zabbix-agent.tar  zabbix-agent.tar.gz
    
    导入zabbix镜像
    [root@node1 opt]# docker load -i zabbix-agent.tar
    
    进入编排文件所在目录
    [root@node1 opt]# cd cmp_zabbix_agent/
    [root@node1 cmp_zabbix_agent]# ls
    docker-compose.yml
    文件内容
    [root@node1 cmp_zabbix_agent]# vim docker-compose.yml
    version: '3'
    services:
      zabbix-agent:
        image: zabbix/zabbix-agent:latest
        container_name: zabbix-agent
        environment:
          - ZBX_HOSTNAME=node2
          - ZBX_SERVER_HOST=192.168.16.95
          - ZBX_SERVER_PORT=10051
          - TZ='Asia/Shanghai'
        network_mode: bridge
        ports:
          - "10050:10050"
        restart: always
    privileged: true
     
    启动
    [root@node1 cmp_zabbix_agent]# ls
    docker-compose.yml
    [root@node1 cmp_zabbix_agent]# docker-compose up -d
    Creating zabbix-agent ... done
    [root@node1 cmp_zabbix_agent]# docker-compose ps
        Name             Command          State            Ports         
    ----------------------------------------------------------------------
    zabbix-agent   docker-entrypoint.sh   Up      0.0.0.0:10050->10050/tcp

    监控节点已添加,在web界面添加主机进zabbix监控。

     

  • 相关阅读:
    websocketpp相关
    大地水准面、大地基准面
    ubuntu18.04 和 qt 5.13.1 安装
    高斯——克吕格投影反算
    高斯——克吕格投影正算
    缓和曲线10麦克康奈尔
    vsCode 需安装的扩展
    显示windows电脑上已连接过的wifi密码
    linux Java项目CPU内存占用高故障排查
    tcpdump常用参数说明及常见操作
  • 原文地址:https://www.cnblogs.com/ajunyu/p/11215174.html
Copyright © 2011-2022 走看看