docker安装zabbix +grafana

安装zabbix +grafana

1、部署


mkdir -p /opt/zabbix/{data,backups}

mkdir -p /opt/grafana




cat > docker-compose.yml <<-'EOF'
version: '3.3'

services:
  mysql-server:
    image: mysql:8.1
    container_name: mysql-server
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      TZ: Asia/Shanghai
    volumes:
      - /opt/zabbix/data:/var/lib/mysql
    networks:
      zabbix-net:
        ipv4_address: 172.20.0.2
    command: --character-set-server=utf8 --collation-server=utf8_bin --default-authentication-plugin=mysql_native_password

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:latest
    container_name: zabbix-java-gateway
    restart: always
    ports:
      - "10052:10052"
    environment:
      TZ: Asia/Shanghai
    networks:
      zabbix-net:
        ipv4_address: 172.20.0.3

  zabbix-server-mysql:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server-mysql
    restart: unless-stopped
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      ZBX_JAVAGATEWAY: zabbix-java-gateway
      TZ: Asia/Shanghai
    ports:
      - "10051:10051"
    networks:
      zabbix-net:
        ipv4_address: 172.20.0.4

  zabbix-web-nginx-mysql:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-web-nginx-mysql
    restart: unless-stopped
    environment:
      ZBX_SERVER_HOST: zabbix-server-mysql
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      TZ: Asia/Shanghai
    ports:
      - "80:8080"
    networks:
      zabbix-net:
        ipv4_address: 172.20.0.5

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    environment:
      TZ: Asia/Shanghai
    ports:
      - "3000:3000"
    volumes:
      - /opt/grafana:/var/lib/grafana
    networks:
      zabbix-net:
        ipv4_address: 172.20.0.6

networks:
  zabbix-net:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/24
EOF



#备份mysql脚本
cat > /opt/zabbix/backups/backup_mysql.sh <<-'EOF'
#!/bin/bash

# 获取当前日期
current_date=$(date +%Y%m%d_%H%M%S)

# 获取容器的 IP 地址
ipname=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql-server)

# 设置 MySQL 密码环境变量
export MYSQL_PWD=root_pwd

# 执行备份命令
mysqldump -h $ipname -u root zabbix > /opt/zabbix/backups/zabbix_$current_date.sql

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup successful!"
else
    echo "Backup failed!"
fi

# 清理超过15天的备份文件
find /opt/zabbix/backups/ -type f -name 'zabbix_*.sql' -mtime +15 -exec rm {} \;
EOF



chmod +x /opt/zabbix/backups/backup_mysql.sh

# 定义要添加的任务
TASK="0 0 * * * /opt/zabbix/backups/backup_mysql.sh"

# 添加新任务
(crontab -l; echo "$TASK") | crontab -

crontab -l



#部署
docker-compose up -d


安装备份工具,开放防火墙


yum install -y mariadb mariadb-server && yum clean all


firewall-cmd --zone=public --add-port=10052/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent

#--重载
firewall-cmd --reload

#--查询已经开放的端口
firewall-cmd --list-port


#清除zabbix
docker stop mysql-server zabbix-server-mysql zabbix-web-nginx-mysql zabbix_agent zabbix-java-gateway grafana

docker rm mysql-server zabbix-server-mysql zabbix-web-nginx-mysql zabbix_agent zabbix-java-gateway grafana


# 本机的agent 访问zabbix-server ,需要写 容器ip
# docker inspect zabbix-server-mysql |grep IPAdd



2、grafana安装插件

docker exec -it grafana bash

grafana-cli plugins install alexanderzobnin-zabbix-app


# grafana-cli plugins install grafana-image-renderer

docker restart grafana

http://192.168.2.225:3000

admin/admin

添加zabbix服务端信息

开启zabbix模板

添加zabbix监控数据

下载喜欢的版本

https://grafana.com/grafana/dashboards/8677-servidores-linux/

在这里插入图片描述

修改为中文

在这里插入图片描述

### 使用Docker安装配置ZabbixGrafana #### 创建部署目录并编辑`docker-compose.yaml` 为了便于管理和维护,建议创建一个专门的目录来存放所有的配置文件和持久化数据。可以按照以下方式操作: ```bash mkdir -p /data/zabbix/ && cd /data/zabbix/ ``` 接着,在该路径下编写或修改 `docker-compose.yaml` 文件以定义所需的服务实例[^3]。 #### 配置`docker-compose.yaml` 下面是一个简单的 `docker-compose.yaml` 示例,它包含了 Zabbix Server 和 Grafana 的基本设置: ```yaml version: '3' services: db: image: postgres:12-alpine environment: POSTGRES_DB: zabbix POSTGRES_USER: zabbix POSTGRES_PASSWORD: password volumes: - ./pg_data:/var/lib/postgresql/data zabbix-server-pgsql: depends_on: - db image: zabbix/zabbix-server-pgsql:latest ports: - "10051:10051" environment: DB_SERVER_HOST: "db" POSTGRESQL_DATABASE: "zabbix" POSTGRESQL_USER: "zabbix" POSTGRESQL_PASSWORD: "password" volumes: - ./zabbix_server.conf:/etc/zabbix/zabbix_server.conf grafana: image: grafana/grafana:latest ports: - "3000:3000" links: - zabbix-server-pgsql environment: GF_SECURITY_ADMIN_PASSWORD: admin volumes: - ./grafana-storage:/var/lib/grafana ``` 此配置指定了 PostgreSQL 数据库、Zabbix Server 及其依赖关系,还有 Grafana Web UI 所需的各项参数。 #### 启动服务 完成上述步骤之后,可以通过运行下列命令启动所有服务: ```bash docker-compose up -d ``` 这将会以后台模式启动所有指定的服务,并自动下载必要的镜像(如果本地不存在的话)。此时应该能够通过浏览器访问 http://localhost:3000 来打开 Grafana 登录界面[^5]。 #### 安装Grafana-Zabbix插件 为了让 Grafana 支持 Zabbix 数据源,还需要安装特定于 Zabbix 的插件。进入正在运行中的 Grafana 容器内部执行如下指令即可完成安装过程: ```bash docker exec -it grafana /bin/bash grafana-cli plugins install alexanderzobnin-zabbix-app docker restart grafana ``` 最后一步是为了使新安装的插件生效而重启 Grafana 实例[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大侠运维联盟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值