zoukankan      html  css  js  c++  java
  • 用docker来安装zabbix总结

    在操作系统上直接部署安装zabbix太麻烦了,正好借这个机会研究学习下docker。

    使用CentOS7最小安装进行后续配置。

    配置各种源加快部署安装的速度

    配置CentOS源和Zabbix安装程序的yum源

    #安装系统需要的管理工具
    yum install -y bind-utils net-tools wget unzip 
    yum install -y yum-utils device-mapper-persistent-data lvm2
    #配置使用阿里的centos源
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    #使用阿里的docker源安装docker
    sudo yum-config-manager --add-repo 
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
    sudo yum makecache fast
    #安装免费社区版
    sudo yum -y install docker-ce
    systemctl start docker
    #设置开机自动启动
    systemctl enable docker

    让Docker使用国内的仓库

    #编辑docker配置文件,使用国内仓库进行镜像下载
    vi /etc/docker/daemon.json
    {
        "registry-mirrors": ["http://hub-mirror.c.163.com"]
    }
    #重启docker加载配置
    systemctl restart docker

    创建Docker容器

    创建MySQL容器

    注意!指定UTF8字符集为重要参数,否则安装后在配置过程中,不能使用中文字符。

    docker run --name mysql-server -t
    -e MYSQL_DATABASE="zabbix"
    -e MYSQL_USER="zabbix"
    -e MYSQL_PASSWORD="zabbix_pwd"
    -e MYSQL_ROOT_PASSWORD="root_pwd"
    -v /data/zabbix/mysql:/var/lib/mysql
    -d mysql:5.7
    --character-set-server=utf8 --collation-server=utf8_bin
     

    创建Zabbix数据库容器

    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" 
    --link mysql-server:mysql 
    -p 10051:10051 
    -d zabbix/zabbix-server-mysql:latest

    创建Zabbix Web容器

    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 80:80 
    -d zabbix/zabbix-web-nginx-mysql:latest

    这样你就可以通过IP地址直接访问到Zabbix了。用户名和密码是:Admin/zabbix

    设置这些容器可以跟随Docker启动

    #可以试用docker ps查看容器的id号
    docker update --restart=always 容器id号

    安装后续问题

    Zabbix绘制图形中文字符乱码

    需要安装中文字体来解决

    #找个地方下载文泉驿中文字体
    wget http://xze.197946.com/wenquanyiziti.zip
    unzip wenquanyiziti.zip
    #将解压缩的字体拷贝到容器中
    docker cp ~/文泉驿点阵正黑.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/wqy.ttf
    #进入容器返回的终端进行之后配置,我覆盖了默认字体文件
    docker exec -it zabbix-web-nginx-mysql bash
    cp DejaVuSans.ttf DejaVuSans.ttf.bak
    mv wqy.ttf DejaVuSans.ttf

    Zabbix绘制图形的时间不正确

    #进入容器的终端执行下面命令修改时区
    docker exec -it zabbix-web-nginx-mysql bash
    vi /usr/share/zabbix/include/config.inc.php
    #第一行添加如下内容,无需重启直接生效
    date_default_timezone_set('Asia/Shanghai');

    Zabbix仪表板提示“Zabbix agent is not available (for 3m)”

    这其实是因为默认安装好Zabbix之后自带一个监视本地系统的配置“Zabbix Server”。使用Docker安装几个容器后默认没有安装zabbix-agent,自然无法链接到本机自己的代理。

    解决的办法是直接在真机上安装个zabbix-agent不就解决了吗?没有必要再创建一个zabbix-agent容器。这里我直接把zabbix-agent安装在Centos上了,没有创建容器。

    配置–主机–Zabbix server将agent代理程序的接口更改为“172.17.0.1”即可。

    #安装zabbix 软件源
    rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
    # 安装zabbix-agent
    yum install zabbix-sender zabbix-agent zabbix-get
    #在/etc/zabbix/zabbix_agentd.conf中更改:
    
    Server=<zbx-server的ip例如172.17.0.3>
    ServerActive=<zbx-server的ip例如172.17.0.3>
    Hostname=<本机的名字> Zabbix server我没有改动
     
    #设置启动和开机项
    systemctl start zabbix-agent.service
    systemctl enable zabbix-agent.service
    #允许访问本地的10050端口
    firewall-cmd --permanent --add-port=10050/tcp
    firewall-cmd --reload
    #配置是否正确,可以进入容器中测试
    docker exec -it zabbix-server-mysql bash
    zabbix_get -s 172.17.0.1 -k system.cpu.num
  • 相关阅读:
    文档视图
    引入缓冲池技术
    数据库访问与查询
    OnInitialUpdate函数
    显示股票视图的全局函数
    切换视图的核心代码
    GuiEdit的使用
    操作方法
    SQL 使用 解析
    调用API 实现 窗体 拖动
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12615747.html
Copyright © 2011-2022 走看看