docker安装zabbix

  • Post author:
  • Post category:其他


一、概述

Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。

官方安装文档:

https://www.zabbix.com/documentation/5.4/zh/manual/installation/containers

二、安装

环境说明

master-server

ip地址:192.168.1.3

下载镜像

docker pull mysql:5.7
docker pull zabbix/zabbix-java-gateway:5.4-alpine-latest
docker pull zabbix/zabbix-server-mysql:5.4-alpine-latest
docker pull zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest

创建目录

mkdir -p /data/zabbix/mysql/data
mkdir -p /data/zabbix/master

安装mysql

docker run -d \
  --name mysql-server \
  --restart=always \
  --privileged=true \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  -v /data/zabbix/mysql/data:/var/lib/mysql \
  -d mysql:5.7 \
  --character-set-server=utf8 \
  --collation-server=utf8_unicode_ci

查看日志

docker logs -f mysql-server

出现以下日志,说明启动成功

Version: '5.7.41'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)

安装zabbix-java-gateway

docker run -d \
  --restart=always \
  --name zabbix-java-gateway  \
  zabbix/zabbix-java-gateway:5.4-alpine-latest

安装zabbix-server

先临时启动,这里需要拷贝一个sql文件。

docker run -d --name zabbix-server-mysql zabbix/zabbix-server-mysql:5.4-alpine-latest

拷贝sql文件到当前目录

docker cp zabbix-server-mysql:/usr/share/doc/zabbix-server-mysql/create.sql.gz .

解压文件

gunzip create.sql.gz

将sql文件拷贝到mysql容器中

docker cp create.sql mysql-server:/tmp/

进入mysql容器,导入sql文件

docker exec -it mysql-server /bin/bash

登录mysql,注意要先删除zabbix,然后指定编码创建数据库,导入sql

mysql -u root -proot_pwd

> drop database zabbix;
> create database zabbix character set utf8 collate utf8_bin;
> use zabbix;
> source /tmp/create.sql;

等待1分钟,差不多就结束了。

复制zabbix文件

docker cp zabbix-server-mysql:/usr/lib/zabbix /data/zabbix/master/

重启zabbix-server-mysql

docker rm -f  zabbix-server-mysql
docker run -d \
  --name zabbix-server-mysql \
  -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" \
  -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
  --link mysql-server:mysql \
  --link zabbix-java-gateway:zabbix-java-gateway \
  -p 10051:10051 \
  -v /data/zabbix/master/zabbix:/usr/lib/zabbix \
  zabbix/zabbix-server-mysql:5.4-alpine-latest

查看日志

docker logs -f zabbix-server-mysql

出现以下日志,说明启动成功

   196:20230402:102723.147 item "Zabbix server:zabbix[process,service manager,avg,busy]" became not supported: Invalid second parameter.

启动zabbix-web-nginx-mysql

docker run -d \
  --name zabbix-web-nginx-mysql \
  -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 8080:8080 \
  zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest

查看日志

docker logs -f zabbix-web-nginx-mysql

出现以下日志,说明启动成功

2023-04-01 07:45:07,450 INFO success: php-fpm81 entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)

编辑系统配置文件,开启ipv4转发

vi /etc/sysctl.conf

最后一行增加

net.ipv4.ip_forward=1

如果有的话,就不需要增加了。

刷新配置

sysctl -p

访问web页面

http://192.168.1.13:8080/

默认的用户名:Admin,密码:zabbix

登录成功如下

点击下面的User settings–>Profile,设置语言为中文

效果如下

图表中文乱码问题

zabbix默认的字体不支持中文,因此需要替换掉容器zabbix-web-nginx-mysql中的/usr/share/zabbix/assets/fonts/DejaVuSans.ttf文件

需要复制windows系统的字体文件进行替换,路径为:C:\Windows\Fonts,找到楷体常规,复制到桌面,就会有一个文件simkai.ttf

进入linux服务器,拷贝默认的字体文件

cd /data/zabbix
docker cp zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts nginx-fonts
cd nginx-fonts
cp DejaVuSans.ttf DejaVuSans.ttf.bak

将simkai.ttf文件上传到此目录,然后覆盖

cp simkai.ttf DejaVuSans.ttf

重启zabbix-web-nginx-mysql,挂载字体目录

docker rm -f zabbix-web-nginx-mysql

docker run -d \
  --name zabbix-web-nginx-mysql \
  -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 8080:8080 \
  -v /data/zabbix/nginx-fonts:/usr/share/zabbix/assets/fonts \
  zabbix/zabbix-web-nginx-mysql:5.4-alpine-latest

重新刷新页面,就可以显示中文了



版权声明:本文为shykevin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。