Docker 官方镜像构建部署 你的zabbix web

12 篇文章 0 订阅
4 篇文章 0 订阅

Docker 官方镜像构建你的zabbix 5.x

【说明】:
Windows 安装的 VWware 挂载安装的 centos 7 ,进行安装部署 zabbix 过程:
准备工作如下:

在这里插入图片描述
踩坑的过程记录:

1、在这一步,先启动一个单独的数据库mysql用于保存zabbix数据

1#注: 启动命令中不要添加 MYSQL_DATABASE="zabbix" 参数,不然后期同样在server上注册不上,会报user表为空的错误。同时--restart=always写在-d mysql:5.7的前面,要不然容器启动失败
 
[root@www ~]# docker run  --name mysql-server -t \
> -p 3306:3306 \
> -e MYSQL_USER="zabbix" \
> -e MYSQL_PASSWORD="zabbix" \
> -e MYSQL_ROOT_PASSWORD="zabbix" \
> -v /home/zabbix/data:/var/lib/mysql \
> --restart=always \
> -d mysql:5.7  \
> --character-set-server=utf8 \
> --collation-server=utf8_bin
2d2c59d6900f226cf68259ac9ebed05eb4ea0e7ee2325bd789d31de86fb50952
 
[root@www ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
2d2c59d6900f        mysql:5.7           "docker-entrypoint.s??   3 minutes ago       Up 3 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-server
 
[root@www ~]# ll /home/zabbix/data/
total 188484
-rw-r----- 1 polkitd ssh_keys       56 Aug 19 14:27 auto.cnf
-rw------- 1 polkitd ssh_keys     1676 Aug 19 14:27 ca-key.pem
-rw-r--r-- 1 polkitd ssh_keys     1112 Aug 19 14:27 ca.pem
-rw-r--r-- 1 polkitd ssh_keys     1112 Aug 19 14:27 client-cert.pem
-rw------- 1 polkitd ssh_keys     1680 Aug 19 14:27 client-key.pem
-rw-r----- 1 polkitd ssh_keys     1353 Aug 19 14:27 ib_buffer_pool
-rw-r----- 1 polkitd ssh_keys 79691776 Aug 19 14:27 ibdata1
-rw-r----- 1 polkitd ssh_keys 50331648 Aug 19 14:27 ib_logfile0
-rw-r----- 1 polkitd ssh_keys 50331648 Aug 19 14:27 ib_logfile1
-rw-r----- 1 polkitd ssh_keys 12582912 Aug 19 14:27 ibtmp1
drwxr-x--- 2 polkitd ssh_keys     4096 Aug 19 14:27 mysql
drwxr-x--- 2 polkitd ssh_keys     8192 Aug 19 14:27 performance_schema
-rw------- 1 polkitd ssh_keys     1680 Aug 19 14:27 private_key.pem
-rw-r--r-- 1 polkitd ssh_keys      452 Aug 19 14:27 public_key.pem
-rw-r--r-- 1 polkitd ssh_keys     1112 Aug 19 14:27 server-cert.pem
-rw------- 1 polkitd ssh_keys     1680 Aug 19 14:27 server-key.pem
drwxr-x--- 2 polkitd ssh_keys     8192 Aug 19 14:27 sys
 
 
 
root@e1953f899da5 :/# mysql -uzabbix -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)
 
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
 
root@e1953f899da5 :/# mysql -uroot -p 
mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| root          | %         |
| zabbix        | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
5 rows in set (0.01 sec)

[定义了数据库名zabbix,数据库用户zabbix,密码zabbix,在本地目录/home/zabbix/data中持久化保存mysql容器运行中的数据,确保容器退出运行后,数据不会丢失,最后两条是定义了数据库的字符集为utf8,解决了mysql数据库保存中文的问题]

在这里插入图片描述
查看是创建成功的,进入数据库容器时 有问题:
在这里插入图片描述

查看日志:docker logs mysql-server
在这里插入图片描述
解决方法:(我用的是 临时方法)
在这里插入图片描述
在这里插入图片描述
可以看到已经进入容器了!!
数据库目录下也有文件了:
在这里插入图片描述

查看数据库在这里插入图片描述

2、然后启动Zabbix Server实例,并关联这个实例到已创建的MySQL实例

[root@www ~]# docker run  --name zabbix-server-mysql -itd \
> -e DB_SERVER_HOST="mysql-server" \
> -e MYSQL_DATABASE="zabbix" \
> -e MYSQL_USER="zabbix" \
> -e MYSQL_PASSWORD="zabbix" \
> -e MYSQL_ROOT_PASSWORD="zabbix" \
> --restart=always \
> --link mysql-server:mysql \
> -p 10051:10051 \
> zabbix/zabbix-server-mysql:latest 
4efa86f7b73a6e5ecaf01d300b38c14eb4a1fd13514b58bdbf80b55d6dc75f31
 
 
[root@www ~]# docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                               NAMES
4efa86f7b73a        zabbix/zabbix-server-mysql:latest   "/sbin/tini -- /usr/??   2 seconds ago       Up 2 seconds        0.0.0.0:10051->10051/tcp            zabbix-server-mysql
e1953f899da5        mysql:5.7                           "docker-entrypoint.s??   10 seconds ago      Up 9 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-server
 
#查看zabbix-server容器日志,看看有什么报错,下面输出没有报错
[root@www ~]# docker logs -f 4efa86f7b73a 
** Preparing Zabbix server
** Using MYSQL_USER variable from ENV
** Using MYSQL_PASSWORD variable from ENV
** Using MYSQL_ROOT_PASSWORD variable from ENV
********************
* DB_SERVER_HOST: mysql-server
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
Starting Zabbix Server. Zabbix 5.0.2 (revision 352ca05).
Press Ctrl+C to exit.
 
     6:20200819:070225.777 Starting Zabbix Server. Zabbix 5.0.2 (revision 352ca05).
     6:20200819:070225.777 ****** Enabled features ******
     6:20200819:070225.777 SNMP monitoring:           YES
     6:20200819:070225.777 IPMI monitoring:           YES
 
#查看zabbix-server配置文件,只修改两个地方(这些都是在启动容器的时候环境变量指定的),其他都是默认
[root@www ~]# docker exec -it 4efa86f7b73a  /bin/bash
bash-5.0$ cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.2	mysql e1953f899da5 mysql-server  #--link的作用体现出来了
172.17.0.3	4efa86f7b73a
 
#zabbix server数据库配置信息如下:
 
#指定数据库主机
bash-5.0$ cd /etc/zabbix/
bash-5.0$ grep DBHost zabbix_server.conf 
DBHost=mysql-server
 
#指定密码
bash-5.0$ grep DBPassword  zabbix_server.conf 
DBPassword=zabbix

启动zabbix server服务,并关联这个服务到上面已经启动的mysql数据库实例上,确保zabbix的数据可以保存到mysql数据库,如果想要数据持久化根据生产环境实际情况灵活决定是否挂载,上面我没有挂载,即没有使用卷持久化。

3、最后启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix Server实例关联

[root@www ~]# docker run --name zabbix-web-nginx-mysql -t \
>       -e DB_SERVER_HOST="mysql-server" \
>       -e MYSQL_DATABASE="zabbix" \
>       -e MYSQL_USER="zabbix" \
>       -e MYSQL_PASSWORD="zabbix" \
>       -e MYSQL_ROOT_PASSWORD="zabbix" \
>       -e PHP_TZ="Asia/Shanghai" \
>       --link mysql-server:mysql \
>       --link zabbix-server-mysql:zabbix-server\
>       -p 8080:8080 \
>       -d zabbix/zabbix-web-nginx-mysql
d3dc509209b9349267b48f80ce8aa36e051c30199a98dc2199d37f3314ea6795
 
[root@www ~]# docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS                               NAMES
d3dc509209b9        zabbix/zabbix-web-nginx-mysql       "docker-entrypoint.sh"   2 seconds ago       Up 2 seconds        0.0.0.0:8080->8080/tcp, 8443/tcp    zabbix-web-nginx-mysql
4efa86f7b73a        zabbix/zabbix-server-mysql:latest   "/sbin/tini -- /usr/??   16 minutes ago      Up 16 minutes       0.0.0.0:10051->10051/tcp            zabbix-server-mysql
e1953f899da5        mysql:5.7                           "docker-entrypoint.s??   16 minutes ago      Up 16 minutes       0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-server


# 进入该容器

[root@www ~]# docker exec -it d3dc509209b9 /bin/bash
 
bash-5.0$ find / -name zabbix.conf.php
/etc/zabbix/web/zabbix.conf.php
 
#web端数据库信息配置如下:
bash-5.0$ cat /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB, $HISTORY;
 
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'mysql-server';
$DB['PORT']     = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'zabbix';
 
$ZBX_SERVER      = 'zabbix-server';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Zabbix docker';
 
bash-5.0$ cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.3	zabbix-server 4efa86f7b73a zabbix-server-mysql
172.17.0.2	mysql e1953f899da5 mysql-server
172.17.0.4	d3dc509209b9

【 link mysql-server:mysql 连接数据库实例,mysql-server必须要与第一步的–name mysql-server完全一致

–link zabbix-server-mysql:zabbix-server 连接zabbix服务器实例,zabbix-server-mysql必须要与第二步的–name zabbix-server-mysql完全一致

在这里插入图片描述

4、打开zabbix web界面

(VWware 的 127.0.0.1 是联不通的,需要ifconfig 查下,或者当时安装 centos 7 的时候,记录的有 以太网的 IP地址 也可以)

http://ip:8080/zabbix (Admin/zabbix)


设置下中文:

在这里插入图片描述

【比较好的参考】:https://blog.csdn.net/qq_34556414/article/details/108099556

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix 是一个企业级分布式开源监控解决方案。  Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。  Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。  Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。 本课程主要讲解以下方面: 1.  网络设备的监控,如 Dell R420、Juniper ssg5等。2.  Linux 和 Windows 服务器的监控。3.  应用服务的监控,如 httpd、nginx等。4.  Zabbix 代理的配置与使用以及 Zabbix 的多种告警方式。 注意:该课程,需要有一定的 zabbixLinux 基础,建议您先把>和>看完,再看此套课程,这个是在它的基础上进行讲解的。                                                                   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值