两年前在服务器上放了一套 Grafana + Zabbix + Prometheus 的监控系统,当时是照着文档和网上各路教程一个一个编译的,插件和配置文件丢得七零八落,很难维护,故这几天借迁移服务器的机会,改用 Docker 安装,基本只用一个配置文件,今后随时可以一键部署。目前写好了 MySQL + Grafana + Zabbix-Server + Zabbix-Agent 的配置,Prometheus(以前主要用来监控 MySQL)暂时还没做,以后补上。
安装 Docker
照文档安装即可,不再赘述。
Dockers 部署
version: '1.0' services: # zabbix-server 容器配置 server: image: zabbix/zabbix-server-mysql:latest container_name: zabbix-server depends_on: - mysql - agent environment: TZ: Asia/Shanghai DB_SERVER_HOST: "mysql" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix_pwd" MYSQL_ROOT_PASSWORD: "root_pwd" ports: - "10051:10051" volumes: - /etc/localtime:/etc/localtime:ro links: - mysql:zabbix-mysql - agent:zabbix-agent user: root networks: zabbixbr: ipv4_address: 172.20.0.6 restart: always # zabbix-agent 容器配置 agent: image: zabbix/zabbix-agent:latest container_name: zabbix-agent privileged: true ports: - "10050:10050" volumes: - /etc/localtime:/etc/localtime:ro user: root networks: zabbixbr: ipv4_address: 172.20.0.5 restart: always # zabbix web 环境容器配置 web: image: zabbix/zabbix-web-nginx-mysql:latest container_name: zabbix-web depends_on: - mysql - server environment: TZ: Asia/Shanghai DB_SERVER_HOST: "mysql" ZBX_SERVER_HOST: "server" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix_pwd" MYSQL_ROOT_PASSWORD: "root_pwd" volumes: - /etc/localtime:/etc/localtime:ro links: - mysql:zabbix-mysql - server:zabbix-server ports: - "90:80" user: root networks: zabbixbr: ipv4_address: 172.20.0.4 restart: always # mysql 容器配置 mysql: image: mysql:5.7 container_name: zabbix-mysql command: --character-set-server=utf8 --collation-server=utf8_general_ci environment: TZ: Asia/Shanghai MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix_pwd" MYSQL_ROOT_PASSWORD: "root_pwd" networks: zabbixbr: ipv4_address: 172.20.0.3 volumes: # 数据库 volume 路径:/home/data,根据自己需求调整 - /home/data/zabbix/database/mysql:/var/lib/mysql - /etc/localtime:/etc/localtime:ro restart: always # Grafana 容器配置 grafana: image: grafana/grafana:latest container_name: zabbix-grafana environment: TZ: Asia/Shanghai # 下面填写你想安装的插件,多项逗号分隔,当然也可以直接把插件上传到下面的 volume 中 GF_INSTALL_PLUGINS: alexanderzobnin-zabbix-app # 挂载储存用的 volume,映射到宿主目录 /var/lib/docker/volumes 下 volumes: # 插件和 Grafana 的用户配置数据放这里面 - grafana-storage:/var/lib/grafana # grafana.ini 配置文件在里面 - grafana-etc:/etc/grafana ports: - "3000:3000" networks: zabbixbr: ipv4_address: 172.20.0.2 restart: always # 创建 stack 内用的容器 volumes: grafana-storage: grafana-etc: # stack 内网配置 networks: zabbixbr: driver: bridge ipam: config: - subnet: 172.20.0.0/16 # 内网网关 gateway: 172.20.0.1
把整套系统部署到一个 stack 中,所有组建间通信通过内网完成,注意容器内访问使用各自的内网 IP 172.20.0.x
,容器内使用 127.0.0.1
和 localhost
是无效的!
保存以上配置文件为 docker-compose.yml
。
现在先 pull 要用到的镜像:
docker pull mysql:5.7 docker pull zabbix/zabbix-server-mysql:latest docker pull zabbix/zabbix-agent:latest docker pull zabbix/zabbix-web-nginx-mysql:latest docker pull grafana/grafana:latest
然后运行 docker compose:
docker-compose up -d docker-compose ps
看到下面的输出就 OK 了!
配置 Zabbix
之后访问 http://你的公网IP或者localhost:90/
配置 Zabbix,登陆 ID:Admin、密码:zabbix。
依次打开 Configuration > Hosts > Zabbix server,Agent interfaces 中 IP 改为 172.20.0.5
,Update 即可,返回 Hosts 列表,过几分钟刷新,看到 Zabbix server 的 Availability 标签 ZBX
变成绿色就说明 zabbix-server + zabbix-agent 部署成功了。
配置 Grafana
访问 http://你的公网IP或者localhost:3000/
,登陆 ID:admin、密码:admin。
启用 Zabbix,然后创建 Zabbix 数据源(data source),URL 填写 http://你的公网IP或者localhost:90/api_jsonrpc.php
,账号密码是刚刚的 Zabbix 账号密码,保存之后测试通过就说明 Grafana 已经连上 Zabbix 了,之后就可以 DIY 你的面板了!
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/9291.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~