当前位置 博文首页 > Stefan的博客:部署安装 Zabbix 详解 --- 分别使用 Docker 和 rp

    Stefan的博客:部署安装 Zabbix 详解 --- 分别使用 Docker 和 rp

    作者:[db:作者] 时间:2021-07-21 19:12

    一、 Zabbix介绍

    docker hub
    运维离不开系统监控,鱼儿哭了大海知道,服务器崩了,监控知道。一款强大的监控系统可以有力保证设备和业务的稳定。作为老牌的监控系统,Zabbix 的架构包括了被监控设备和 Zabbix 监控服务器两大部分。

    Zabbix Agent 运行在被监控设备上,负责和 Zabbix Server 通信获取和控制被监控设备,它有主动和被动两种工作模式。

    Zabbix Server 作为监控核心,可以直接与 Zabbix Agent 连接也可以通过 Zabbix Proxy 进行连接,再由 Zabbix Proxy 连接 Zabbix Agent。后面这种方式用在分布式监控的场景。

    Zabbix Server 获取的数据存放到 Zabbix Server 的数据库中,Zabbix UI(Web)可以读取服务器中的数据,通过图表的方式展示出来。

    Zabbix 构建过程,分为安装 Zabbix Agent/Server/UI,Host 配置,Item 配置,Trigger 配置,Action 配置。

    这个配置过程完美地回答了,“监控谁?监控什么?出现异常以后如何处理?”的问题。

    最后,针对不同应用场景,Zabbix 还支持多种监控方式,有 Zabbix Agent,SNMP,IPMI 以及 JMX。

    二、 Docker 安装与部署 Zabbix

    从容器安装 Zabbix Documentation 3.4

    Download and install Zabbix

    1. 启动一个空的Mysql服务器实例
    docker run --name mysql-server -t \
          -e MYSQL_DATABASE="zabbix" \
          -e MYSQL_USER="zabbix" \
          -e MYSQL_PASSWORD="zabbix" \
          -e MYSQL_ROOT_PASSWORD="zabbix" \
          -d mysql:5.7  \
    --character-set-server=utf8 --collation-server=utf8_bin
    
    1. 启动Zabbix Java gateway实例,Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能
    docker run --name zabbix-java-gateway -t \
          -d zabbix/zabbix-java-gateway:latest
    
    1. 启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例
    docker run --name zabbix-server-mysql -t \
          -e DB_SERVER_HOST="mysql-server" \
          -e MYSQL_DATABASE="zabbix" \
          -e MYSQL_USER="zabbix" \
          -e MYSQL_PASSWORD="zabbix_pwd" \
          -e MYSQL_ROOT_PASSWORD="root_pwd" \
          -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
          --link mysql-server:mysql \
          --link zabbix-java-gateway:zabbix-java-gateway \
          -p 10051:10051 \
          -d zabbix/zabbix-server-mysql:latest
    
    docker run --name zabbix-server-mysql -t \
          **-e DB_SERVER_HOST="119.18.193.26" \**
          -e DB_SERVER_PORT="3306" \
          -e MYSQL_DATABASE="zabbix" \
          -e MYSQL_USER="zabbix" \
          -e MYSQL_PASSWORD="root" \
          -e MYSQL_ROOT_PASSWORD="123456" \
          -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
          --link zabbix-java-gateway:zabbix-java-gateway \
          -v /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
          -v /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
          -p 10051:10051 \
          -d zabbix/zabbix-server-mysql:alpine-4.2.6
    
    1. 启动Zabbix web 接口 10050 ,并将它与MySQL服务器实例和Zabbix server实例关联
    docker run --name zabbix-web-nginx-mysql -t \
          -e DB_SERVER_HOST="mysql-server" \
          -e MYSQL_DATABASE="zabbix" \
          -e MYSQL_USER="zabbix" \
          -e MYSQL_PASSWORD="zabbix_pwd" \
          -e MYSQL_ROOT_PASSWORD="root_pwd" \
          --link mysql-server:mysql \
          --link zabbix-server-mysql:zabbix-server \
          -p 10050:80 \
          -d zabbix/zabbix-web-nginx-mysql:latest
    
    docker run --name zabbix-web -t \
    -p 10050:80 \
    --hostname zabbix-web \
    -e PHP_TZ="Asia/Shanghai" \
    -e DB_SERVER_HOST="119.18.193.26" \
    -e DB_SERVER_PORT="3306" \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix" \
    -e MYSQL_ROOT_PASSWORD="123456" \
    **--link zabbix-server-mysql:zabbix-server \**
    -d zabbix/zabbix-web-nginx-mysql:alpine-4.2.6
    
    1. 查看已经启动的端口
    [root@ken ~]# ss -tnl
    State    Recv-Q  Send-Q   Local Address:Port   Peer Address:Port
    LISTEN   0       128     127.0.0.1:9000        *:*
    LISTEN   0       50      *:3306                *:*
    LISTEN   0       50      *:139                 *:*
    LISTEN   0       128     *:80                  *:*
    LISTEN   0       128     *:22                  *:*
    LISTEN   0       50      *:445                 *:*
    LISTEN   0       50      :::139                :::*
    LISTEN   0       128     :::80                 :::*
    LISTEN   0       128     :::10050              :::*
    LISTEN   0       50      :::445                :::*
    LISTEN   0       128     :::10051              :::*
    
    1. 查看容器启动情况
    [root@zabbix_server ~]# docker ps
    CONTAINER ID        IMAGE                                  COMMAND                  CREATED              STATUS              PORTS                           NAMES
    98cbe8d8a6bd        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   6 seconds ago        Up 5 seconds        443/tcp, 0.0.0.0:8080->80/tcp   zabbix-web-nginx-mysql
    de040d43d60f        zabbix/zabbix-server-mysql:latest      "docker-entrypoint.sh"   59 seconds ago       Up 59 seconds       0.0.0.0:10051->10051/tcp        zabbix-server-mysql
    3276f18def8d        mysql:5.7                              "docker-entrypoint.s…"   About a minute ago   Up About a minute   3306/tcp                        mysql-server
    
    1. 查看docker镜像
    [root@zabbix_server ~]# docker images
    
    REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
    zabbix/zabbix-web-nginx-mysql   latest              4db891b4393a        10 hours ago        177MB
    zabbix/zabbix-server-mysql      latest              f5e58dafe9ac        10 hours ago        62.2MB
    mysql                           5.7                 f0f3956a9dd8        7 days ago          409MB
    
    1. 访问web界面

    docker run --name gitlab -d --link postgresql:postgresql -e ‘REDIS_HOST=119.18.193.26’ -e ‘REDIS_PORT=6379’ -p 10022:22 -p 9099:80 -e ‘GITLAB_PORT=9099’ -e ‘GITLAB_SSH_PORT=10022’ -e ‘GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string’ -e ‘GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string’ -e ‘GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string’ -e ‘GITLAB_HOST=119.18.193.26’ -e ‘GITLAB_EMAIL=15509853198@sina.com’ -e ‘SMTP_ENABLED=true’ -e ‘SMTP_DOMAIN=www.sina.com’ -e ‘SMTP_HOST=smtp.sina.com’ -e ‘SMTP_STARTTLS=false’ -e ‘SMTP_USER=stefan_muriel’ -e ‘SMTP_PASS=59d554225a0c52fb’ -e ‘SMTP_AUTHENTICATION=login’ -e ‘GITLAB_BACKUP_SCHEDULE=week’ -e ‘GITLAB_BACKUP_TIME=0’ -v /data/gitlab/data:/home/git/data sameersbn/gitlab

    三、 Zabbix 源码包安装与部署

    1. 使用 rpm 安装,或者 wget 下载包。
    3.4版本
    
    [root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    
    3.0版本
    
    [root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    
    [root@localhost ~]# wget http://www.zabbix.com/downloads/3.0/zabbix_agents_3.0.linux2_6.x64.tar.gz
    
    1. 安装zabbix的包
    [root@localhost ~]# yum install