• zabbix--独立部署zabbix-web


    迁移yum部署的zabbix组件zabbix-web

    背景描述:业主对项目生产环境所有服务器进行了漏洞扫描,结果zabbix监控服务器扫描出大量php和apache的漏洞。

    原因分析:

    ​ 由于我们zabbix服务器上面只是部署了zabbix相关的服务,没有运行其它服务,故排除为zabbix-web服务依赖php和apache。官方默认依赖包php的版本为5.4.16,而这个版本在php官方也提到过有很多漏洞。

    问题解决:

    ​ 方式一:可以升级php版本和httpd版本。

    ​ 方式二:将docker-web服务通过docker运行。(这里采用方式)

     

    安装docker

    ✏️ 1.安装依赖

    # yum install -y yum-utils device-mapper-persistent-data lvm2
    

    ✏️ 2.配置docker源

    # yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    

    ✏️ 3.安装docker-ce

    # yum -y install docker-ce
    

    ✏️ 4.更改docker.service配置文件

    # vim /usr/lib/systemd/system/docker.service
    ExecStart=/usr/bin/dockerd
    

    ✏️ 5.配置daemon.json文件(说明:graph迁移docker默认目录)

    # mkdir /etc/docker /data/docker
    # cat >/etc/docker/daemon.json<<EOF
    {
      "registry-mirrors": ["https://15y9mzqb.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"],
      "graph": "/data/docker"
    }
    EOF
    

    ✏️ 6.启动docker

    # systemctl daemon-reload 
    # systemctl enable docker
    # systemctl start docker
    # systemctl status docker
    

     

    部署zabbix-web

    这里采用zabbix-web-nginx-mysql镜像, 官网zabbix镜像仓库中也有zabbix-web-httpd-mysql的镜像。

    ✏️ 1.去到dockerhub上面找到对应版本的镜像

    https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql

    ✏️ 2.下载镜像

    # docker pull zabbix/zabbix-web-nginx-mysql:centos-4.2.8
    

    ✏️ 3.启动容器

    # docker run --name zabbix-web-nginx-mysql 
    	-e DB_SERVER_HOST="172.xx.xx.xx" 
    	-e MYSQL_DATABASE="zabbix" 
    	-e MYSQL_USER="zabbix" 
    	-e MYSQL_PASSWORD="xxx" 
    	-e ZBX_SERVER_HOST="172.xx.xx.xx" 
    	-e PHP_TZ="Asia/Shanghai" 
    	-p 80:80 
    	-d zabbix/zabbix-web-nginx-mysql:centos-4.2.8
    

    ✏️ 4.查看状态

    # docker ps 
    CONTAINER ID        IMAGE                                        COMMAND                  CREATED             STATUS              PORTS                         NAMES
    7be0a106109f        zabbix/zabbix-web-nginx-mysql:centos-4.2.8   "docker-entrypoint.sh"   3 hours ago         Up 3 hours          0.0.0.0:80->80/tcp, 443/tcp   zabbix-web-nginx-mysql
    

    ✏️ 5.访问测试

    访问测试:http://IP/,说明我在再宿主机上面部署时访问需要在地址后面加上/zabbix,而容器则不需要。直接访问映射的端口即可。

     

    grafana修改

    如果配置了连接grafana,对应的数据源zabbix的连接地址也需要发生改变。否则grafana会获取不到数据。

    ✏️ 1.当我们把zabbix-web部署在宿主机时通过如下命令可以测试grafana能否获取数据

    # curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "Zabbix@123"},"id": 1}' http://localhost/zabbix/api_jsonrpc.php
    

    ✏️ 2.使用docker部署时通过如下命令即可:

    # curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "Zabbix@123"},"id": 1}' http://localhost:80/api_jsonrpc.php
    

    所以grafana数据源中的zabbix设置也需要设置为http://localhost:80/api_jsonrpc.php

    通过上面部署就完成了zabbix-web独立部署,其实zabbix-server等都是可以在docker中部署,后面补充

  • 相关阅读:
    Unity使用代码动态给按钮赋值各个状态下的图片
    设计模式之建造者模式
    设计模式之原型模式
    Unity加载外部图片
    Unity跳转场景
    设计模式之工厂模式
    设计模式之单例模式
    Unity、C#读取XML
    Unity3D使用EasyMovieTexture插件播放视频
    字符串相似度算法——Levenshtein Distance算法
  • 原文地址:https://www.cnblogs.com/yanjieli/p/13405225.html
Copyright © 2020-2023  润新知