zoukankan      html  css  js  c++  java
  • Docker安装Zabbix

    Docker安装Zabbix

    CentOS7 默认使用的是firewall作为防火墙

    查看防火墙状态

    firewall-cmd --state

    停止firewall

    systemctl stop firewalld.service

    开启firewall

    firewall-cmd --state

    禁止firewall开机启动

    systemctl disable firewalld.service

    0)安装mysql

    0.0 下载镜像

    docker pull mysql:5.7

    0.1 创建容器

    docker run --name mysql-server -t 
          -p 3307:3306 
          -e MYSQL_DATABASE="zabbix" 
          -e MYSQL_USER="zabbix" 
          -e MYSQL_PASSWORD="zabbix_pwd" 
          -e MYSQL_ROOT_PASSWORD="admins" 
          -d mysql:5.7 
          --character-set-server=utf8 --collation-server=utf8_bin

    1)安装zabbix-java-gateway

    1.1 下载镜像

    docker pull zabbix/zabbix-java-gateway

    1.2 创建容器

    docker run --name zabbix-java-gateway -t 
      -d zabbix/zabbix-java-gateway:latest

    2)安装zabbix-server-mysql

    2.1 下载镜像

    docker pull zabbix/zabbix-server-mysql

    2.2 创建容器

    docker run --name zabbix-server-mysql -t 
      -e DB_SERVER_HOST="192.168.20.223" 
      -e DB_SERVER_PORT=3307 
      -e MYSQL_DATABASE="zabbix" 
      -e MYSQL_USER="zabbix" 
      -e MYSQL_PASSWORD="zabbix_pwd" 
      -e MYSQL_ROOT_PASSWORD="admins" 
      -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

    3)安装zabbix-web-nginx-mysql

    3.1 下载镜像

    docker pull zabbix/zabbix-web-nginx-mysql

    3.2 创建容器(注意:nginx在docker中默认端口是8080)

    docker run --name zabbix-web-nginx-mysql -t 
      -e PHP_TZ="Asia/Shanghai" 
      -e DB_SERVER_HOST="192.168.20.223" 
      -e DB_SERVER_PORT=3307 
      -e MYSQL_DATABASE="zabbix" 
      -e MYSQL_USER="zabbix" 
      -e MYSQL_PASSWORD="zabbix_pwd" 
      -e MYSQL_ROOT_PASSWORD="admins" 
      --link mysql-server:mysql 
      --link zabbix-server-mysql:zabbix-server 
      -p 80:8080 
      -d zabbix/zabbix-web-nginx-mysql:latest

    4)登录zabbix

    地址:http://192.168.20.223/

    登录账号:Admin

    登录密码:zabbix

    5)解决中文乱码问题

    5.1 上传字体

    找到C:WindowsFontssimkai.ttf(楷体),搜索楷体能找到该字体,将该字体上传到服务器

    5.2 拷贝到容器

    docker cp simkai.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/

    5.3 进入容器修改配置

    [root@tfryb-04-30-02 ~]# docker exec -it zabbix-web-nginx-mysql /bin/bash
    bash-5.0$ ls /usr/share/zabbix/assets/fonts/
    DejaVuSans.ttf  simkai.ttf
    bash-5.0$ vi /usr/share/zabbix/include/defines.inc.php
    #更改前
    // define('ZBX_GRAPH_FONT_NAME',                'DejaVuSans'); // font file name
    #更改后
    define('ZBX_GRAPH_FONT_NAME',           'simkai'); // font file name

    搜索文件内容命令,进入编辑模式时按下“/”键,然后输入搜索内容,找到相关文字以后,按下小写n,向下查找,

    按下大写N,向上查找。

    修改完输入exit退出编辑,查看界面发现乱码已解决。

    6)安装zabbix-agent

    5.1 下载安装包

    wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/6/x86_64/zabbix-agent-5.0.0-1.el6.x86_64.rpm

    5.2 安装

    [root@localhost ~]# ll -h zabbix-agent-5.0.0-1.el6.x86_64.rpm
    -rw-r--r-- 1 root root 436K 5月  11 20:06 zabbix-agent-5.0.0-1.el6.x86_64.rpm
    ​
    [root@localhost ~]# rpm -ivh zabbix-agent-5.0.0-1.el6.x86_64.rpm
    警告:zabbix-agent-5.0.0-1.el6.x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID a14fe591: NOKEY
    错误:依赖检测失败:
            libpcre.so.0()(64bit) 被 zabbix-agent-5.0.0-1.el6.x86_64 需要

    如果下载的zabbix-agent 5.0安装包使用rpm安装时提示错误:

    依赖检测失败:libpcre.so.0()(64bit),则可以使用zabbix 5.0 Yum源来安装zabbix-agent 5.0软件。

    5.3 修改配置

    安装Zabbix Yum源仓库

    [root@localhost ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
    ​
    [root@localhost ~]# yum clean all

    使用Zabbix 5.0 Yum源文件安装zabbix-agent 5.0软件,并且将gpgcheck=1修改为gpgcheck=0,防止出现“获取GPG密钥失败”报错。

    修改Zabbix 5.0 Yum源配置文件:

    [root@localhost ~]# sed -i "s/gpgcheck=1/gpgcheck=0/g" /etc/yum.repos.d/zabbix.repo
    ​
    [root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
    [zabbix]
    name=Zabbix Official Repository - $basearch
    baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
    enabled=1
    gpgcheck=0          //修改gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    ​
    [zabbix-frontend]
    name=Zabbix Official Repository frontend - $basearch
    baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
    enabled=1
    gpgcheck=0        //修改gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    ​
    [zabbix-debuginfo]
    name=Zabbix Official Repository debuginfo - $basearch
    baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
    gpgcheck=0        //修改gpgcheck=0
    ​
    [zabbix-non-supported]
    name=Zabbix Official Repository non-supported - $basearch
    baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
    gpgcheck=0        //修改gpgcheck=0
    ​
    [root@localhost ~]# yum -y install zabbix-agent     //安装zabbix-agent 5.0软件
    ...
    已安装:
      zabbix-agent.x86_64 0:5.0.0-1.el7
    ​
    完毕!
    12345678910111213141516171819202122232425262728293031323334353637

    修改zabbix-agent配置文件:

    [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
    119 Server=127.0.0.1,192.168.2.128   //Zabbix-server地址,多个用","隔开
    160 ServerActive=192.168.2.128     //主动检查本主机数据发送给Zabbix-server
    171 #Hostname=Zabbix server
    172 Hostname=192.168.2.129     //客户端IP地址
    ​
    [root@localhost ~]# systemctl start zabbix-agent
    [root@localhost ~]# systemctl enable zabbix-agent
    ​
    [root@localhost ~]# ss -antulp | grep :10050
    tcp    LISTEN     0      128       *:10050                 *:*                   users:(("zabbix_agentd",pid=3389,fd=4),("zabbix_agentd",pid=3388,fd=4),("zabbix_agentd",pid=3387,fd=4),("zabbix_agentd",pid=3386,fd=4),("zabbix_agentd",pid=3385,fd=4),("zabbix_agentd",pid=3384,fd=4))
    tcp    LISTEN     0      128      :::10050                :::*                   users:(("zabbix_agentd",pid=3389,fd=5),("zabbix_agentd",pid=3388,fd=5),("zabbix_agentd",pid=3387,fd=5),("zabbix_agentd",pid=3386,fd=5),("zabbix_agentd",pid=3385,fd=5),("zabbix_agentd",pid=3384,fd=5))

    注意:上面的Zabbix-server地址对应的是docker里面的ip地址,不是宿主机的地址;如果配置错误,则在设置主机时,zabbix会报错:

    Received empty response from Zabbix Agent at [192.168.20.223]. Assuming that agent dropped connection because of access permissions.

    查看容器所有信息:

    docker inspect 容器名称或容器ID

    查看IP:

    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名称或容器ID

    7)修正Zabbix时间

    查看当前时间:

    date

    修改服务器时间为上海时间:

    rm -rf /etc/localtime #删除当前默认时区www.kwx.gd
    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #复制替换默认时区为上海

    在创建容器的时候带上参数即可更正Zabbix时间格式:

    -e PHP_TZ="Asia/Shanghai"

    8)挂载配置文件

    zabbix_server.conf配置文件在容器里面,不方便修改,先将zabbix-server-mysql容器删除,再执行下面命令:

    docker run --privileged=true -v /usr/zabbix:/etc/zabbix --name zabbix-server-mysql -t 
      -e DB_SERVER_HOST="192.168.20.223" 
      -e DB_SERVER_PORT=3307 
      -e MYSQL_DATABASE="zabbix" 
      -e MYSQL_USER="zabbix" 
      -e MYSQL_PASSWORD="zabbix_pwd" 
      -e MYSQL_ROOT_PASSWORD="admins" 
      -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

    这时发现容器创建成功,但是无法启动,如果是CentOS7中的安全模块selinux把权限禁掉了,无法使用-v命令进

    行挂载,解决方案如下:

    先删除创建的容器,然后选择下面方式解决之后,再创建容器

    方式一:在创建命令上加:--privileged=true

    方式二:添加selinux规则,将要挂载的目录添加到白名单

    chcon -Rt svirt_sandbox_file_t /usr/zabbix

    方式三:关闭Selinux

    临时关闭:

    [root@localhost ~]# getenforce
    Enforcing
    [root@localhost ~]# setenforce 0
    [root@localhost ~]# getenforce
    Permissive

    永久关闭:

    [root@localhost ~]# vi /etc/sysconfig/selinux
    SELINUX=enforcing 改为 SELINUX=disabled

    重启服务reboot

    如果最终还是无法解决,则使用如下方式:

    先创建一个没有挂载目录的容器,在执行文件拷贝:

    docker cp zabbix-server-mysql:/etc/zabbix/zabbix_server.conf /usr/zabbix

    删除容器,创建一个挂载目录的容器,这时应该启动成功

  • 相关阅读:
    SSIS 学习之旅 FTP文件传输-脚本任务
    SSIS 学习之旅 FTP文件传输-FTP任务
    SSIS 学习之旅 数据同步
    SSIS 学习之旅 第一个SSIS 示例(二)
    SSIS 学习之旅 第一个SSIS 示例(一)(下)
    SSIS 学习之旅 第一个SSIS 示例(一)(上)
    图解 VS2015 如何打包winform 安装程序
    常用SQL Server 语句
    蓝桥杯 算法训练 Remember the A La Mode
    Competition in Swiss-system——2019CCPC哈尔滨 C题
  • 原文地址:https://www.cnblogs.com/xdzy/p/13805762.html
Copyright © 2011-2022 走看看