基于docker安装zabbix的详细教程

目录
  • 基于docker安装zabbix
  • 1、zabbix配置
  • 2、存储配置
    • 格式化磁盘
    • 创建pv
    • 创建vg
    • 创建lv
    • 创建文件系统
    • 创建挂载目录
    • 挂载分区
    • 写入启动项
  • 3、安装docker
  • 4、修改docker存储路径
  • 5、创建专用于 Zabbix 组件容器的网络:
  • 6、创建mysql库
    • [废弃]6、docker安装mysql
    • 拉取mysql镜像
    • 创建mysql容器
    • 添加防火墙端口
  • 7、安装zabbix-java-gateway
  • 8、安装zabbix-server
    • 安装zabbix-server(基于Alphine)
    • 配置企业微信脚本
    • 安装python环境
    • 添加防火墙端口
  • 9、安装zabbix-web-nginx-mysql 创建容器
    • 添加防火墙端口
    • 访问zabbix服务
  • 10、安装zabbix-agent(yum安装)
    • a. 安装Zabbix资源库
    • b. 安装 Zabbix agent
    • c. 启动 Zabbix agent
    • d.root用户启动
    • e.配置防火墙

基于docker安装zabbix

1、zabbix配置

用途 ip 账户
zabbix服务端 192.168.1.1 账户:Admin 密码:zabbix
zabbix-mysql数据库 192.168.1.2 数据库:zabbix,用户:zabbix 密码:123456

2、存储配置

存储规划

docker镜像文件默认存储路径:/var/lib/docker
为避免系统磁盘空间不足影响docker服务正常运行,需要调整docker默认存储路径。

通用存储建议:
1、目录/data:用于存储数据文件;
2、目录/app:用于存储应用文件;
3、数据盘建议使用卷管理模式,便于后期扩容

综上,对应zabbix服务安装,建议:
1、目录/data/docker用于存储docker文件;
1、目录/data/zabbix用于存储zabbix相关配置文件;

格式化磁盘

[root@s01 ~]# fdisk -l

Disk /dev/vda: 64.4 GB, 64424509440 bytes, 125829120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0001598a

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1            2048     8390655     4194304   82  Linux swap / Solaris
/dev/vda2   *     8390656   125829086    58719215+  83  Linux

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@s01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   60G  0 disk
├─vda1 253:1    0    4G  0 part [SWAP]
└─vda2 253:2    0   56G  0 part /
vdb    253:16   0  100G  0 disk
[root@s01 ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x4dee972c.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199
Partition 1 of type Linux and of size 100 GiB is set

Command (m for help): p

Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4dee972c

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   209715199   104856576   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@s01 ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
vda    253:0    0   60G  0 disk
├─vda1 253:1    0    4G  0 part [SWAP]
└─vda2 253:2    0   56G  0 part /
vdb    253:16   0  100G  0 disk
└─vdb1 253:17   0  100G  0 part

创建pv

[root@s01 ~]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created.
[root@s01 ~]# pvs
  PV         VG Fmt  Attr PSize    PFree
  /dev/vdb1     lvm2 ---  <100.00g <100.00g

创建vg

[root@s01 ~]# vgcreate vg0 /dev/vdb1
  Volume group "vg0" successfully created
[root@s01 ~]# vgs
  VG  #PV #LV #SN Attr   VSize    VFree
  vg0   1   0   0 wz--n- <100.00g <100.00g

创建lv

[root@s01 ~]# lvcreate -l 100%VG -n lv_1 vg0
  Logical volume "lv_1" created.
[root@s01 ~]# lvs
  LV   VG  Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_1 vg0 -wi-a----- <100.00g

创建文件系统

[root@s01 ~]# mkfs.xfs /dev/vg0/lv_1
meta-data=/dev/vg0/lv_1          isize=512    agcount=4, agsize=6553344 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=26213376, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=12799, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建挂载目录

[root@s01 ~]# mkdir /data

挂载分区

[root@s01 ~]# mount /dev/vg0/lv_1 /data

[root@s01 ~]# df -Th
Filesystem           Type      Size  Used Avail Use% Mounted on
devtmpfs             devtmpfs  7.8G     0  7.8G   0% /dev
tmpfs                tmpfs     7.8G     0  7.8G   0% /dev/shm
tmpfs                tmpfs     7.8G  8.7M  7.8G   1% /run
tmpfs                tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/vda2            ext3       55G  2.7G   50G   6% /
/dev/mapper/vg0-lv_1 xfs       100G   33M  100G   1% /data
tmpfs                tmpfs     1.6G     0  1.6G   0% /run/user/0

写入启动项

# vi /etc/fstab
# 新增内容:
/dev/vg0/lv_1  /data xfs    defaults        1 2

3、安装docker

# 查看操作系统版本
$ cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
# 安装docker
$ yum install -y docker
# 查看docker版本
$ docker -v
Docker version 1.13.1, build 7d71120/1.13.1

4、修改docker存储路径

docker默认存储路径:/var/lib/docker
新存储路径:/data/docker

$ docker -v
Docker version 1.13.1, build 7d71120/1.13.1

# 停止docker
$ systemctl stop docker
# 设置docker新存储路径
$ mv /var/lib/docker /data/docker

# 修改docker路径
$ vim /etc/docker/daemon.json
{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
    "graph": "/data/docker"
}
# 启动docker
$ systemctl start docker

# 查看docker进程信息
$ docker info

5、创建专用于 Zabbix 组件容器的网络:

# 1.bridge模式
docker默认网络模式。此模式将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。开启的容器会自动分配和IP在一个网段的ip地址,并且开启的容器的ip以IP为基础递增关闭容器之后,ip会自动释放。bridge模式只有宿主机才能与运行在其上面的容器进行通信。
# 2.host模式
容器将不会虚拟出自己的网卡,配置自己的IP等,而是直接与宿主机的共享P和端口。
如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的。
使用host模式的容器可以直接使用宿主机的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT,host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好,网络的安全性变差。
# 3.none模式
该模式关闭了容器的网络功能。
使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Docker容器进行任何网络配置。也就是说,这个Docker容器没有网卡、IP、路由等信息。需要我们自己为Docker容器添加网卡、配置IP等。
这种网络模式下容器只有lo回环网络,没有其他网卡。none模式可以在容器创建时通过–network=none来指定。这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。

# 创建专用于 Zabbix 组件容器的网络
$ docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

# 查看的docker network
$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
14c25119dd06        bridge              bridge              local
4e2782140647        host                host                local
b25888b8c26a        none                null                local
cfc3bf2124af        zabbix-net          bridge              local

# 查看新增的网络
$ ip a
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:31:ce:6a:ce brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever

6: br-cfc3bf2124af: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:cd:35:b7:4c brd ff:ff:ff:ff:ff:ff
    inet 172.20.240.0/16 scope global br-cfc3bf2124af
       valid_lft forever preferred_lft forever

6、创建mysql库

如果生产环境已有mysql实例,仅需创建数据库。

$ mysql -uroot -p -h 192.168.1.2
password  root_pwd
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@192.168.1.1 identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@192.168.1.1;
mysql> quit;

[废弃]6、docker安装mysql

建议使用平台提供mysql实例。

拉取mysql镜像

$ docker pull mysql

创建mysql容器

# -----------------------------------------------
# 创建mysql服务器实例
# 注意:此命令用于创建mysql容器实例后提取配置文件,如果已有配置文件,可直接进入下一步:
$ docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
--ip=172.20.240.1 \
-p 3306:3306 \
-d mysql:latest \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

# -----------------------------------------------
# 创建mysql配置与数据存储路径
$ mkdir -p /app/mysql/conf
$ mkdir -p /app/mysql/data
# 拷贝已有mysql配置文件到宿主机目录
$ docker cp mysql-server:/etc/mysql/ /app/mysql/conf/

# 使用新路径创建mysql-server
$ docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e TZ=Asia/Shanghai \
-v /app/mysql/conf:/etc/mysql \
-v /app/mysql/data:/var/lib/mysql \
--network=zabbix-net \
--ip=172.20.240.1 \
-p 3306:3306 \
-d mysql:latest \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password

# 关于mysql容器重启策略
问题描述:
如果创建mysql容器时指定--restart参数,则无法启动容器
--restart unless-stopped \
解决办法:
需要创建后,手工更新容器重启策略:
$ docker update --restart=unless-stopped mysql-server

# 查看启动日志
$ docker logs mysql-server
2022-04-15 05:43:59+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-04-15 05:43:59+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-04-15 05:43:59+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.28-1debian10 started.
2022-04-15T05:44:00.942337Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.28) starting as process 1

# 查看进程
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
28c91f44958a        mysql:latest        "docker-entrypoint..."   22 hours ago        Up 5 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-server

# 连接mysql
$ docker exec -it mysql-server /bin/bash
root@28c91f44958a:/# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql
root@28c91f44958a:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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 |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

添加防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

7、安装zabbix-java-gateway

Zabbix Java gateway 的守护进程是用 Java 编写。为了在特定主机上找到 JMX 计数器的值,Zabbix server 向 Zabbix Java gateway 发送请求,后者使用 JMX 管理 API 来远程查询相关的应用。该应用不需要安装额外的软件。只需要在启动时,命令行添加-Dcom.sun.management.jmxremote选项即可。

# 运行zabbix-java-gateway
$ docker run --name zabbix-java-gateway -t \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
--ip=172.20.240.2 \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:latest

# 查看进程
$ docker ps
CONTAINER ID        IMAGE                               COMMAND                  CREATED             STATUS              PORTS               NAMES
85a594ad32d9        zabbix/zabbix-java-gateway:latest   "docker-entrypoint..."   9 seconds ago       Up 9 seconds        10052/tcp           zabbix-java-gateway

# 查看日志
$ docker logs zabbix-java-gateway
** Preparing Zabbix Java Gateway
** Preparing Zabbix Java Gateway log configuration file
Updating /etc/zabbix/zabbix_java_gateway_logback.xml 'DebugLevel' parameter: 'info'... updated
2022-04-15 06:43:36.232 [main] INFO  com.zabbix.gateway.JavaGateway - Zabbix Java Gateway 6.0.3 (revision 506e2b5) has started
2022-04-15 06:43:36.247 [main] INFO  com.zabbix.gateway.JavaGateway - listening on 0.0.0.0/0.0.0.0:10052

8、安装zabbix-server

安装zabbix-server(基于Alphine)

# ------------------------------------------------
# 安装zabbix-server(latest版本基于Alphine Linux)
$ docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="192.168.1.2" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
--ip=172.20.240.3 \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:latest

# 不需要的参数
# --link mysql-server:mysql \
# --link zabbix-java-gateway \

# ------------------------------------------------
# 使用外部存储目录
# 创建zabbix-server配置目录
$ mkdir -p /data/zabbix/conf
$ mkdir -p /data/zabbix/alertscripts
# 拷贝zabbix配置文件
$ docker cp zabbix-server-mysql:/etc/zabbix/zabbix_server.conf /data/zabbix/conf
$ ll /data/zabbix/conf
total 28
-rw-rw-r-- 1 root root 24804 May 30 15:14 zabbix_server.conf

# 移除容器
$ docker stop zabbix-server-mysql
$ docker rm zabbix-server-mysql
# 重新创建容器
$ docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="192.168.1.2" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-e TZ=Asia/Shanghai \
-v /data/zabbix/conf/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
-v /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
--network=zabbix-net \
--ip=172.20.240.3 \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:latest

# 查看日志,此版本是:5.4.9
$ docker logs zabbix-server-mysql
Starting Zabbix Server. Zabbix 5.4.9 (revision d81e506).

配置企业微信脚本

# 将企业微信发送脚本:pyweixin.py,存储到目录:alertscripts
$ cd /data/zabbix/alertscripts
$ vim pyweixin.py
$ chmod +x pyweixin.py

# 修改python3地址
# 微信脚本默认的python3地址为与实际不符:
#!/usr/local/python3/bin/python3.5
# 需要修改为以下地址:
#!/usr/bin/python3

安装python环境

发送企业微信需要python环境支持。

# 使用root用户进入容器安装python
$ docker exec --privileged -u root -it zabbix-server-mysql /bin/bash
$ cat /etc/issue
Welcome to Alpine Linux 3.14
Kernel \r on an \m (\l)

# 修改Alpine镜像源
$ sed -i s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g /etc/apk/repositories
# 安装python
$ apk add --update --no-cache curl jq py3-configobj py3-pip py3-setuptools python3 python3-dev
# 验证python3版本
$ python3 -V
Python 3.9.5

添加防火墙端口

# 开启防火墙
$ systemctl enable firewalld
$ systemctl start firewalld

# 添加防火墙端口
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

9、安装zabbix-web-nginx-mysql 创建容器

# 创建容器
$ docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="192.168.1.2" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e PHP_TZ=Asia/Shanghai \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
--ip=172.20.240.4 \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:latest

# 取消以下参数
# --link mysql-server:mysql \
# --link zabbix-server-mysql:zabbix-server \

# 查看日志
$ docker logs zabbix-web-nginx-mysql
** Deploying Zabbix web-interface (Nginx) with MySQL database
** Using MYSQL_USER variable from ENV
** Using MYSQL_PASSWORD variable from ENV
********************
* DB_SERVER_HOST: mysql-server
* DB_SERVER_PORT: 3306
* DB_SERVER_DBNAME: zabbix
********************
** Adding Zabbix virtual host (HTTP)
**** Impossible to enable SSL support for Nginx. Certificates are missed.
** Preparing Zabbix frontend configuration file

# 进程列表
$ docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS              PORTS                               NAMES
a707c1ff30c9        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   6 minutes ago       Up 6 minutes        8443/tcp, 0.0.0.0:80->8080/tcp      zabbix-web-nginx-mysql
27f3c4948691        zabbix/zabbix-server-mysql:latest      "/sbin/tini -- /us..."   24 hours ago        Up About an hour    0.0.0.0:10051->10051/tcp            zabbix-server-mysql
fa0a386f2459        zabbix/zabbix-java-gateway:latest      "docker-entrypoint..."   25 hours ago        Up About an hour    10052/tcp                           zabbix-java-gateway

添加防火墙端口

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

访问zabbix服务

# 经过上述配置后,Zabbix 前端已准备就绪! 默认用户名是Admin,密码zabbix。
http://192.168.1.1
# 访问zabbix-web服务时,发现监控首页提示错误:
Zabbix agent is not available (for 3m)
需要安装zabbix-agent,并配置zabbix-agent的ip,详见下面小结:

10、安装zabbix-agent(yum安装)

由于zabbix-agent用于监控服务器状态,建议直接安装在服务器上,不要使用docker安装。

a. 安装Zabbix资源库

产品手册

$ rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
$ yum clean all

b. 安装 Zabbix agent

$ yum install -y zabbix-agent

# 配置agent,设置服务端地址
$ vim /etc/zabbix/zabbix_agentd.conf
# 如果在zabbix-server上安装agent,需要配置zabbix-server的docker地址:
Server=172.20.240.3
ServerActive=172.20.240.3
# 如果在被监控服务器上安装agent,需要配置zabbix-server的宿主机地址:
Server=192.168.1.1
ServerActive=192.168.1.1

# 注释掉Hostname配置,让agent自动解析
# Hostname=****
# 如果操作系统不允许创建zabbix用户,需要使用root运行agent,修改配置:
AllowRoot=1

c. 启动 Zabbix agent

设置开机zabbix-agent开机启动

$ systemctl enable zabbix-agent
$ systemctl restart zabbix-agent
$ systemctl status zabbix-agent

d.root用户启动

启动agent服务时,提示以下错误:

# 问题描述:
Failed at step USER spawning /usr/sbin/zabbix_agentd: No such process
zabbix-agent.service: control process exited, code=exited status=217
Failed to start Zabbix Agent.
Unit zabbix-agent.service entered failed state.

# 问题分析
此问题主要是因为操作系统限制不允许创建用户导致的,需要使用root账户启动服务。

# 解决办法
修改启动用户:
vim /usr/lib/systemd/system/zabbix-agent.service
修改默认用户zabbix为root,
修改前:
User=zabbix
Group=zabbix
修改后:
User=root
Group=root

# 然后重载服务配置,并启动服务
systemctl daemon-reload
systemctl start zabbix-agent.service

e.配置防火墙

firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

到此这篇关于基于docker安装zabbix的文章就介绍到这了,更多相关docker安装zabbix内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • zabbix监控docker容器状态【推荐】

    前言:前段时间在部署zabbix,有个需求就是需要监控容器的状态 也就是cpu 内存 io的占用,于是就自己写了一个脚本,以及模板,在这里分享一下 嘿嘿 : ) 废话我也就不多说,直接开始 首选,zabbix_agentd 配置  vim /usr/local/zabbix/etc/zabbix_agentd.conf UserParameter=docker.discovery,/usr/local/zabbix/script/docker.py UserParameter=docker.[*

  • 基于Docker安装与部署Zabbix

    今天测试了一天的Zabbix-Docker,部署起来确实方便,就需要在安装了Docker的linux系统中输入以下命令就可以了. 1.安装mysql数据库, 启动一个空的MySQL服务器实例 docker run –name zabbix-DB -t \      -e MYSQL_DATABASE="zabbix" \      -e MYSQL_USER="zabbix" \      -e MYSQL_PASSWORD="zabbix_pwd&quo

  • zabbix监控docker应用配置

    容器的应用越来越普遍了,但是大量的容器我们怎么进行管理呢?当然是监控起来! 今天这篇文章讲的就是使用zabbix监控docker容器! 关于zabbix监控的docker的原理: agent2监控docker就是通过调用docker的API来获取数据 插件目录存放于zabbix-agent2/src/go/plugins/docker client.go文件定义了 使用Unix套接字地址进行docker客户端与服务端的通信 默认套接字位置为/var/run/docker.sock 通过zabbi

  • 使用 Docker安装 Zabbix并配置自定义监控项的过程详解

    目录 一.Zabbix 简介 1.监控功能 2.Zabbix 工作原理 3.Zabbix 组件 4.Zabbix 进程 二.使用 Zabbix 配置自定义监控项 1.安装 Zabbix 2.开启自定义监控项 3.编写 Nginx 自定义监控脚本 一.Zabbix 简介 Zabbix 可以用来监控各种网络参数,来保证服务器和系统的安全运行.并且 Zabbix 还提供了灵活的通知机制,以此来让系统管理员快速定位/解决存在的各种问题.是一个基于 Web 界面提供的分布式系统监控以及网络监控功能的企业级

  • 基于Dockerfile创建zabbix监控体系代码实例

    使用for循环将zabbix的镜像导入到容器中 for n in `ls *.tar.gz`;do docker load -i $n ;done 使用docker运行zabbix-server docker run --name mysql-server -t \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e M

  • docker部署zabbix_agent的方法步骤

    zabbix_agent部署: 建议:zabbix_agent使用docker-compose方式单独部署 启动方式: 1.run方式启动 docker run --rm --network zabbix --name zabbix_agent--link zabbix_server:zabbix-server -e ZBX_HOSTNAME="mythird" -e ZBX_SERVER_PORT="10051" -e ZBX_SERVER_HOST="

  • 基于docker安装zabbix的详细教程

    目录 基于docker安装zabbix 1.zabbix配置 2.存储配置 格式化磁盘 创建pv 创建vg 创建lv 创建文件系统 创建挂载目录 挂载分区 写入启动项 3.安装docker 4.修改docker存储路径 5.创建专用于 Zabbix 组件容器的网络: 6.创建mysql库 [废弃]6.docker安装mysql 拉取mysql镜像 创建mysql容器 添加防火墙端口 7.安装zabbix-java-gateway 8.安装zabbix-server 安装zabbix-server

  • 基于docker部署Jenkins的详细教程

    0.我做这个文档的时候,大概是19年12月前后,那会er2.200是最新版的. 1.下载镜像 docker pull jenkins/jenkins 一定要安装最新版的 jenkins,旧版本,很多插件无法安装 2.查看jenkins的详细信息 docker inspect jenkins:2.200 3.创建jenkins 目录(做持久化) mkdir /home/jenkins_home 4.启动容器 docker run -d --name Jenkins_01 -p 8081:8080

  • docker安装influxdb的详细教程(性能测试)

    一.前提 1.项目已经部署好 2.docker已经安装好 二.docker安装influxdb 1.下载influxdb镜像:docker pull tutum/influxdb 1)超时报错: 2)解决办法:vim /etc/docker/daemon.json(应该只有一个key.json文件而没有daemon.json文件,如果没有daemon.json文件就直接新建就好了.) 添加阿里的镜像源: { "exec-opts": ["native.cgroupdriver

  • 使用Docker安装SonarQube的详细教程

    目录 1.拉取镜像 1.1拉取相关镜像并运行 1.1.1拉取相关镜像 1.1.2运行镜像 1.2保存并提交已修改的镜像 2.安装成功 3.插件安装 3.1安装Chinese插件 4.docker安装gitlab 4.1.Gitlab镜像拉取 4.2运行gitlab镜像 4.3设置root用户名和密码 4.4保存镜像并推送dockerhub 5.碰到的问题 5.1虚拟内存不够 6.整合Sonar和gitlab 6.1安装Gitlab-runner 6.1.1获取gitlab-Token 6.1.2

  • docker安装nacos的详细教程

    目录 拉取nacos 创建文件夹 日志文件夹 配置文件夹 mysql新建nacos的数据库,并执行脚本 sql脚本地址如下: 运行nacos 解读 拉取nacos docker pull nacos/nacos-server 创建文件夹 日志文件夹 mkdir -p /root/apply/docker/apply/nacos/logs/ 配置文件夹 mkdir -p /root/apply/docker/apply/nacos/init.d/ mysql新建nacos的数据库,并执行脚本 sq

  • 5分钟教你docker安装启动redis全教程(全新方式)

    什么是redis 根据百度百科介绍,Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.是一个高性能(NOSQL)Key-Value数据库,并提供多种语言的API,redis也是完全开源免费的,遵守BSD协议. 什么又是NOSQL NOSQL,泛指非关系型的数据库,提到非关系型的数据库,我们就来简单讲讲关系型数据库,关系型数据库,大家都知道的oracle,mysql,postgre等都是关

  • Ubuntu16.04上安装CUDA9.0 详细教程

    前言: 本篇文章是基于安装CUDA 9.0的经验写,CUDA9.0目前支持Ubuntu16.04和Ubuntu17.04两个版本,如下图所示(最下面的安装方式我们选择第一个,即runfile方式): 大家可以先将CUDA文件下载下来,但是最好不要急于安装,一定要先将NVIDIA给出官方指导手册仔细看一下,然后再找几篇好的博客看一下,大致了解一下CUDA的安装过程,对安装过程中可能出现的问题要大致有一个了解,不到万不得已不要重装系统. 安装建议: 1)去官网下载CUDA的同时,一定要找份相应官方的

  • Gradle 6.6.1 安装配置的详细教程

    Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具.它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置. 面向Java应用为主.当前其支持的语言限于Java.Groovy.Kotlin和Scala,计划未来将支持更多的语言. 简介 Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依

  • mysql8.0.23 linux(centos7)安装完整超详细教程

    上篇文章给大家介绍了MySQL 8.0.23 主要更新一览(新特征解读) ,感兴趣的朋友点击查看吧! 最新版windows mysql-8.0.23-winx64,点击下载 mysql8.0.23 linux(centos7)安装教程(附:配置外网连接用户授权 与 不区分大小写配置) (博主在这里叨叨几句,稍后进入正题.在使用开发过程中,有时候数据库结合使用,会成倍提高程序效率) 什么是关系型数据库? 常见的关系型数据库: (其实博主也只使用过 MySQL Oracle sqlServer) O

随机推荐