docker搭建zabbix及出现的问题解决

docker搭建zabbix

一、撰写配置

撰写docker-compose.yml文件

version: '3.5'
services:
  mysql-server:
    image: mysql:8.0.30
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_passwd
      MYSQL_ROOT_PASSWORD: zabbix_passwd
    volumes:
      - mysql_data:/var/lib/mysql
    networks:
      - zbx_net

  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_passwd
    depends_on:
      - mysql-server
    ports:
      - "10051:10051"
    networks:
      - zbx_net

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_passwd
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Shanghai
    ports:
      - "8080:8080"
      - "8443:8443"
    depends_on:
      - zabbix-server
    networks:
      - zbx_net

  zabbix-agent:
    image: zabbix/zabbix-agent:latest
    environment:
      ZBX_SERVER_HOST: zabbix-server
      ZBX_HOSTNAME: docker-agent
    depends_on:
      - zabbix-server
    networks:
      - zbx_net

networks:
  zbx_net:
    driver: bridge

volumes:
  mysql_data:

启动Zabbix服务

docker-compose.yml文件所在目录,运行以下命令来启动Zabbix:

docker-compose up -d

这将启动Zabbix Server、Zabbix Web Interface、MySQL数据库和Zabbix Agent容器。你可以使用docker ps命令查看运行的容器。

4. 访问Zabbix Web界面

Zabbix Web界面默认运行在容器的8080端口和8443端口。你可以通过浏览器访问以下URL来访问Zabbix:

http://<你的服务器IP>:8080

初始的登录用户名为Admin,密码为zabbix

二、 安装windows终端的zabbix agent代理

1、选择对应版本的agent

2、点击下载

3、进行安装

注意:这里的hostname记住,到server上面填加写,两个ip都填写server的IP

在这里插入图片描述

默认安装目录C:\Program Files\Zabbix Agent\,需要记住次安装目录(可修改),手动启动时需要进入此目录启动客户端

在这里插入图片描述

三. 检查是否启动

打开windows命令行终端使用命令netstat -an 查看

在这里插入图片描述

看到在监听10050端口就是正常启动啦,下面手动启动就不用管啦,做个了解。因为windows安装好会自行启动的。

五. 手动启动方式

在windows中安装zabbix-agent默认会自己启动,如果没启动的话这时候就需要手动启动。

在cmd命令终端进入安装的目录里,我的示例如下:

C:\Users\Administrator>d:

D:>cd /Zabbix Agent

D:\Zabbix Agent>

现在就要输入命令进行一些操作

启动服务:
net start "Zabbix Agent"

停止服务:
net stop "Zabbix Agent"

检查 Zabbix Agent 状态

查看服务状态:
sc query "Zabbix Agent"

#D:\Zabbix Agent 目录就是我的安装目录里,这里我进入到我的安装目录里执行
卸载服务:
D:\Zabbix Agent> zabbix_agentd.exe --uninstall
日志查看
查看 Zabbix Agent 日志文件以排查问题:
D:\Zabbix Agent> zabbix_agentd.log

六 .创建被监控主机

打开虚拟机监控server主机,进入到web页面

2、添加主机(创建主机),选择数据采集—主机—点击右上角创建主机
在这里插入图片描述

添加主机的主机名称要和zabbix agent配置文件中的一致

在这里插入图片描述

选择合适的群组(可自定义)

在这里插入图片描述

问题一:Zabbix Server容器(zabbix-zabbix-server-1)已经退出,状态码为Exited (1),这通常意味着容器启动过程中遇到错误,

页面显示:
在这里插入图片描述
查看zabbix-zabbix-server-1日志

cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)

得知:Zabbix Server无法使用数据库“zabbix”,因为users表是空的。这通常意味着Zabbix数据库没有被正确初始化,或者初始化过程中出现了问题

解决方法:

1、删除并重新创建数据库

首先,删除现有的 zabbix 数据库,并重新创建它:

mysql -uroot -p

在 MySQL 提示符下执行以下命令:

DROP DATABASE IF EXISTS zabbix;
CREATE DATABASE zabbix CHARACTER

问题二:重置 Zabbix Web 界面密码

如果你无法登录并且忘记了密码或账户被锁定,可以通过以下步骤重置 Zabbix Web 界面的管理员密码:

1、进入 MySQL 容器
  1. 获取容器 ID:

    docker ps
    
  2. 进入 MySQL 容器:

    docker exec -it zabbix-mysql-server-1 /bin/bash
    
2、重置管理员密码
  1. 登录 MySQL:

    mysql -uzabbix -p
    

    输入密码:zabbix_passwd

  2. 选择 Zabbix 数据库:

    USE zabbix;
    
  3. 更新管理员密码:

    UPDATE users SET passwd=md5('new_password') WHERE alias='Admin';
    

    这里的 new_password 是你要设置的新密码。

  4. 退出 MySQL:

    EXIT;
    
  5. 退出容器:

    exit
    

3. 检查用户是否被锁定

如果账户被锁定,你可以通过更新数据库表来解锁账户:

  1. 登录 MySQL:

    docker exec -it zabbix-mysql-server-1 /bin/bash
    mysql -uzabbix -p
    
  2. 选择 Zabbix 数据库:

    USE zabbix;
    
  3. 查看用户状态:

    SELECT * FROM users WHERE alias='Admin';
    

    查找 alias='Admin' 的行,查看 failedloginstatus 字段。

  4. 解锁账户: 如果 status 字段为 1,则表示账户被锁定。你可以将其更改为 0 来解锁:

    UPDATE users SET status=0 WHERE alias='Admin';
    
  5. 退出 MySQL:

    EXIT;
    
  6. 退出容器:

    exit
    

问题三:zabbix-zabbix-server-1仍重启,但是zabbix界面能登录进去

报错: 1:20240814:073838.167 using configuration file: /etc/zabbix/zabbix_server.conf 1:20240814:073838.262 1:20240814:073838.262 Unable to start Zabbix server due to unsupported MySQL database version (5.07.44). 1:20240814:073838.262 Must be at least (8.00.30). 1:20240814:073838.262 Use of supported database version is highly recommended. 1:20240814:073838.262 Override by setting AllowUnsupportedDBVersions=1 in Zabbix server configuration file at your own risk. 1:20240814:073838.262 1:20240814:073838.271 Zabbix Server stopped. Zabbix 7.0.2 (revision d1b0c33).

Zabbix Server 在启动时遇到了 MySQL 数据库版本不支持的问题。当前使用的 MySQL 版本是 5.7.44,而 Zabbix 7.0.2 需要至少 MySQL 8.0.30 版本。

解决方法

有两种解决方案:

1. 升级 MySQL 版本

最推荐的做法是升级 MySQL 到 Zabbix 兼容的版本(至少 8.0.30)。升级 MySQL 版本后,Zabbix Server 应该能够正常启动。(直接修改docker-compose.yml文件中mysql部分也可)

升级 MySQL 的步骤如下:

  1. 备份当前数据库。
  2. 移除旧的 MySQL 版本。
  3. 安装 MySQL 8.0.30 或更高版本。
  4. 恢复数据库,并确保配置与新的 MySQL 版本兼容。
  5. 重新启动 Zabbix Server。
2. 使用不支持的数据库版本(不推荐)

如果你暂时不能升级 MySQL,且愿意承担潜在的风险,你可以在 zabbix_server.conf 文件中添加以下配置来强制使用不支持的数据库版本:

AllowUnsupportedDBVersions=1

编辑 zabbix_server.conf 文件,添加该行后保存并退出,然后重启 Zabbix Server:

nano /etc/zabbix/zabbix_server.conf

添加上述配置并保存,之后重启服务:

systemctl restart zabbix-server

或者在 Docker 环境中:

docker restart zabbix-zabbix-server-1

请注意,这种方法可能会带来不稳定性或其他问题,因此仅在没有其他选择时使用。

问题四:服务器安装zabbix agent,zabbix显示不可用

报错问题:Zabbix agent is not available (for 3m)

原因:zabbix的配置文件没有更改正确的服务器指向

解决方法:修改正确服务器指向,重启zabbix-agent

# 修改zabbix agent配置文件
 vim /etc/zabbix/zabbix_agentd.conf
# 将 Zabbix_Server_IP 替换为你的 Zabbix Server 的 IP 地址。
Server=Zabbix_Server_IP(192.168.3.22)
# 设置为该 Agent 所在机器的主机名,确保与 Zabbix Server 上配置的主机名一致。(hostname查看)
Hostname=Your_Hostname
# 重启 Zabbix Agent 并设置为开机自启动。
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
  • 20
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值