两台VMware 虚拟机

一台充当zabbix server(安装docker)ip:192.168.73.133

一台充当zabbix agent(安装docker)ip:192.168.73.136

基础环境

cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
dcoker安装
#关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux:
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0

安装依赖包

yum install -y yum-utils device-mapper-persistent-data lvm2

添加Docker软件包源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装Docker ce

yum install -y docker-ce

启动Docker服务并设置开机启动

systemctl start docker
systemctl enable docker

查看版本号

[root@localhost ~]# docker version
Client: Docker Engine - CommunityVersion:           19.03.1API version:       1.40Go version:        go1.12.5Git commit:        74b1e89Built:             Thu Jul 25 21:21:07 2019OS/Arch:           linux/amd64Experimental:      false
Server: Docker Engine - CommunityEngine:Version:          19.03.1API version:      1.40 (minimum version 1.12)Go version:       go1.12.5Git commit:       74b1e89Built:            Thu Jul 25 21:19:36 2019OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.2.6GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fbrunc:Version:          1.0.0-rc8GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87fdocker-init:Version:          0.18.0GitCommit:        fec3683

#配置镜像加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
#重启镜像
systemctl restart docker
docker安装完毕!

zabbix server端操作

提供两种不同的安装方式
1、采用zabbix官网中的docker安装章节内容,在官方镜像库中拉取镜像的方式进行安装
https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers
本文档主机的本地目录结构目录在/home/zabbix下,设置了用于保存容器的数据,其它目录根据实际应用情况可选,以下操作命令需要连接外网进行镜像拉取,没有外网需要离线下载镜像包
1)启动一个单独的数据库mysql用于保存zabbix数据

docker run  --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-v /home/zabbix/data:/var/lib/mysql \
-d mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_bin \
--restart=always \
-p 3306:3306

定义了数据库名zabbix,数据库用户zabbix,密码zabbix,在本地目录/home/zabbix/data中持久化保存mysql容器运行中的数据,确保容器退出运行后,数据不会丢失,最后两条是定义了数据库的字符集为utf8,解决了mysql数据库保存中文的问题;
2)启动zabbix server服务,并关联这个服务到上面已经启动的mysql数据库实例上,确保zabbix的数据可以保存到mysql数据库中,挂载在本地目录中的还有其它一些内容,根据生产环境实际情况灵活决定是否挂载,如果挂载可以通过容器直接加载本地目录中的脚本或认证信息,镜像版本使用的centos版本,便于后续能够使用python脚本,预装了py环境

docker run  --name zabbix-server-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" \
--link mysql-server:mysql \
-v /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
-v /home/zabbix/zabbixconfig:/etc/zabbix \
-v /home/zabbix/modules:/var/lib/zabbix/modules \
-v /home/zabbix/enc:/var/lib/zabbix/enc \
-v /home/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys \
-v /home/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs \
-v /home/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys \
-v /home/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca \
-v /home/zabbix/snmptraps:/var/lib/zabbix/snmptraps \
-v /home/zabbix/mibs:/var/lib/zabbix/mibs \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:centos-latest \
-restart=always

挂载说明:
/usr/lib/zabbix/alertscripts
该卷用于保存自定义警报脚本,它是AlertScriptsPath参数zabbix_server.conf
/usr/lib/zabbix/externalscripts
外部检查(项目类型)使用该卷,它是ExternalScripts参数zabbix_server.conf
/usr/lib/zabbix/alertscripts
该卷用于保存zabbix-server端的配置文件
/var/lib/zabbix/modules
该卷允许加载其他模块并使用LoadModule功能扩展Zabbix服务器。
/var/lib/zabbix/enc
该卷用于存储TLS相关文件。这些文件的名称使用规定ZBX_TLSCAFILE,ZBX_TLSCRLFILE,ZBX_TLSKEY_FILE和ZBX_TLSPSKFILE变量。
/var/lib/zabbix/ssh_keys
该卷用作SSH检查和操作的公钥和私钥的位置。它是SSHKeyLocation参数zabbix_server.conf。
/var/lib/zabbix/ssl/certs
该卷用作客户端身份验证的SSL客户端证书文件的位置。它是SSLCertLocation参数zabbix_server.conf。
/var/lib/zabbix/ssl/keys
该卷用作客户端身份验证的SSL私钥文件的位置。它是SSLKeyLocation参数zabbix_server.conf。
/var/lib/zabbix/ssl/ssl_ca
该卷用作SSL服务器证书验证的证书颁发机构(CA)文件的位置。它是SSLCALocation参数zabbix_server.conf。
/var/lib/zabbix/snmptraps
该卷用作snmptraps.log文件的位置。它可以由zabbix-snmptraps容器共享,并volumes_from在创建Zabbix服务器的新实例时使用Docker选项继承。
可以使用共享卷和交换ZBX_ENABLE_SNMP_TRAPS环境变量来启用SNMP陷阱处理功能true。
/var/lib/zabbix/mibs
该卷允许添加新的MIB文件。它不支持子目录,必须放置所有MIB /var/lib/zabbix/mibs
备注:通常会用到的是存放脚本的路径和配置文件的路径
3)启动zabbix前端web界面实例,将web界面实例与前面的mysql数据库服务实例

docker run --rm --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:80 \-d zabbix/zabbix-web-nginx-mysql:latest

挂载说明:
–link mysql-server:mysql 连接数据库实例,mysql-server必须要与第一步的–name mysql-server完全一致
–link zabbix-server-mysql:zabbix-server 连接zabbix服务器实例,zabbix-server-mysql必须要与第二步的–name zabbix-server-mysql完全一致
DB_SERVER_HOST变量的值要与第二步指定的-e DB_SERVER_HOST="mysql-server"一致
4)检查安装的三个容器是否都正常启动

以上状态就是三个容器全部正常启动
#如果有没有启动可以使用查看所有容器列表
[root@localhost ~]# docker ps -a

#找到未能启动的容器ID,然后查看日志
[root@localhost ~]# docker logs 0eeb1dbdb279
5)宿主机上,使用正常的zabbix-agent的安装,不使用容器

#rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.5-1.el7.x86_64.rpm
#yum install zabbix-agent
#vim /etc/zabbix/zabbix_agentd.conf     #修改配置文件
Server=172.17.0.3
ServerActive=172.17.0.3:10050
Hostname=Zabbix server
#systemctl restart zabbix-agent
#systemctl enable zabbix-agent

注意:如果要对宿主机进行监控,请编辑宿主机的zabbix_agentd.conf,将Server地址,默认127.0.0.1,修改为docker-server容器地址,否则不通;如果是对其他主机的监控则使用docker-zabbix-server宿主机的IP
6)验证登陆主机8080端口,查看是否能正常登陆
使用安装zabbix server的主机ip加端口8080登录,账号Admin,密码zabbix,默认是英文,白色背景,可以在右上角的用户按钮选项中调整语言和背景颜色

2、使用docker-compose,进行安装
1)安装docker-compose

# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# docker-compose --version
docker-compose version 1.23.1, build b02f1306

2)编写yml编排文件
创建文件夹

# mkdir /docker-compose
# cd /docker-compose/
# vim docker-compose.yml
编写docker-compose
version: '3'
mysql:image: mariadb:latestports:- "3306:3306"volumes:- ./home/zabbix/data:/var/lib/mysql- ./home/zabbix/data:/etc/mysql- ./home/zabbix/data:/var/log/mysqlenvironment:- MYSQL_USER=zabbix- MYSQL_DATABASE=zabbix- MYSQL_PASSWORD=zabbix- MYSQL_ROOT_PASSWORD=123321- LANG=en_US.utf8- TZ=Asia/Shanghairestart: always
services:zabbix-server:container_name: zabbix-serverimage: zabbix/zabbix-server-mysql:centos-latestrestart: alwaysnetwork_mode: host
#    ports:
#      - "10051:10051"environment:- DB_SERVER_HOST=192.168.73.133- MYSQL_USER=zabbix- MYSQL_DATABASE=zabbix- MYSQL_PASSWORD=zabbix- DB_SERVER_ROOT_USER=root- DB_SERVER_ROOT_PASS=123321- TZ='Asia/Shanghai'volumes:- /home/zabbix/zabbixconfig:/etc/zabbix- /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts- /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts- /home/zabbix/modules:/var/lib/zabbix/modules- /home/zabbix/enc:/var/lib/zabbix/enc- /home/zabbix/ssh_keys:/var/lib/zabbix/ssh_keys- /home/zabbix/ssl/certs:/var/lib/zabbix/ssl/certs- /home/zabbix/ssl/keys:/var/lib/zabbix/ssl/keys- /home/zabbix/ssl/ssl_ca:/var/lib/zabbix/ssl/ssl_ca- /home/zabbix/snmptraps:/var/lib/zabbix/snmptraps- /home/zabbix/mibs:/var/lib/zabbix/mibszabbix-web-nginx:image: zabbix/zabbix-web-nginx-mysql:latestrestart: alwaysnetwork_mode: bridgeports:- "8080:80"environment:- DB_SERVER_HOST=192.168.73.133- MYSQL_DATABASE=zabbix- MYSQL_USER=zabbix- MYSQL_PASSWORD=zabbix- MYSQL_ROOT_PASSWORD=123321- ZBX_SERVER_HOST=192.168.73.133- PHP_TZ="Asia/Shanghai"- TZ='Asia/Shanghai'zabbix-agent:image: zabbix/zabbix-agent:latestenvironment:- ZBX_HOSTNAME=Zabbix server- ZBX_SERVER_HOST=127.0.0.1- ZBX_SERVER_PORT=10051- TZ='Asia/Shanghai'network_mode: host
#    ports:
#      - "10050:10050"restart: alwaysprivileged: true
#    links:
#      - zabbix-server:zabbixhost

3)根据自己主机的ip地址进行修改,主要是修改编排文件docker-compose.yml
53行 - DB_SERVER_HOST=当前主机IP
105行 - DB_SERVER_HOST=当前主机IP
115行 - ZBX_SERVER_HOST=当前主机IP
4)加载yml编排文件(需要等待一些时间,因为需要下载镜像)
docker-compose -f docker-compose.yml up -d
5)加载完之后查看容器组是否运行

[root@localhost cmp_zabbix_server]# docker-compose psName                                     Command               State               Ports
--------------------------------------------------------------------------------------------------------------------------
cmp_zabbix_server_zabbix-agent_1_95447af24cfd       /sbin/tini -- /usr/bin/doc ...   Up
cmp_zabbix_server_zabbix-web-nginx_1_aeec36553371   docker-entrypoint.sh             Up      443/tcp, 0.0.0.0:8080->80/tcp
zabbix-server

zabbix agent端操作

1 如果该主机安装了docker就可以,一样可以使用docker-compose,编写编排yml文件安装,根据主机ip地址修改第8行ip

# mkdir /docker-compose
# cd /docker-compose/
# vim docerk-compose.yml
version: '3'
version: '3'
services:zabbix-agent:image: zabbix/zabbix-agent:latestcontainer_name: zabbix-agentenvironment:- ZBX_HOSTNAME=192.168.73.136- ZBX_SERVER_HOST=192.168.73.133- ZBX_SERVER_PORT=10051- TZ='Asia/Shanghai'network_mode: bridgeports:- "10050:10050"restart: alwaysprivileged: true

加载编排文件
docker-compose -f docker-compose.yml up -d --build
查看容器是否启动成功
docker-compose ps
如果主机没有安装docker,则使用rpm包进行安装即可,见zabbix-server主机的agent安装步骤
web端操作

验证登陆主机8080端口,查看是否能正常登陆,使用安装zabbix server的主机ip加端口8080登录,账号admin,密码zabbix,默认是英文,白色背景,可以在右上角的用户按钮选项中调整语言和背景颜色,在配置选项中添加刚才安装的agent的主机

考文档:https://www.cnblogs.com/yaun1498078591/p/10181106.html
https://www.cnblogs.com/shuaiyin/p/11070056.html
https://blog.csdn.net/firehadoop/article/details/84642907

CentOS 7.5基于Docker部署4.2 版本的zabbix监控平台相关推荐

  1. 基于docker部署的微服务架构(九): 分布式服务追踪 Spring Cloud Sleuth

    为什么80%的码农都做不了架构师?>>>    前言 微服务架构中完成一项功能经常会在多个服务之间远程调用(RPC),形成调用链.每个服务节点可能在不同的机器上甚至是不同的集群上,需 ...

  2. 推荐一款基于docker部署的个人免费笔记工具wiznote

    推荐一款基于docker部署的个人免费笔记工具wiznote 作为一个爱写作爱折腾的程序员,在做某个事情的时候,脑子里总是会联想并且不断蹦出各种奇怪的创意和想法,但是这些想法很多时候都是一闪而逝,事情 ...

  3. 分布式部署Zabbix监控平台

    Zabbix监控的优点 Zabbix是一个基于WEB界面的提供分布式系统监控的企业级的开源解决方案,Zabbix能监视各种网络参数,保证服务器系统的安全稳定的运行,并提供灵活的通知机制以让SA快速定位 ...

  4. 部署Zabbix监控平台,配置及使用Zabbix监控系统,自定义Zabbix监控项目

    案例1:常用系统监控命令 案例2:部署Zabbix监控平台 案例3:配置及使用Zabbix监控系统 案例4:自定义Zabbix监控项目 1 案例1:常用系统监控命令 1.1 问题 本案例要求熟悉查看L ...

  5. 基于java spring框架开发部标1078视频监控平台精华文章索引

    部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...

  6. 基于PHP爬虫的微博热搜实时监控平台

    基于PHP爬虫的微博热搜实时监控平台 背景 一.整体思路 二.数据爬取 1.获取HTML 2.提取数据 3.返回数据 三.数据可视化 1.画柱状图 2.ajax请求数据 四.效果展示 写在最后 背景 ...

  7. 云计算入门科普系列:基于Docker部署LNMP架构

    一. 什么是 docker  环境配置的难题  软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?  用户必须保证两件事:操作系统的设置,各种 ...

  8. 基于Docker部署LNMP架构

    一. 什么是 docker  环境配置的难题  软件开发最大的麻烦事之一,就是环境配置.用户计算机的环境都不相同,你怎么知道自家的软件,能在那些机器跑起来?  用户必须保证两件事:操作系统的设置,各种 ...

  9. 基于Docker部署Nginx

    一:docker安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2# 2)添加Docker软件包源(否则d ...

最新文章

  1. linux 无敌kill -KILL processID
  2. BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元
  3. python发送邮件带附件_在python中如何发送带有附件的邮件?
  4. Linux下系统函数open,read,write,lseek函数
  5. 阿里巴巴java开发手册学习
  6. Linux ALSA声卡驱动之七:ASoC架构中的Codec
  7. ARM AMBA 外围设备 的datasheet
  8. 天下为公:TCP堵塞控制
  9. linux系统下常用的打包/解压缩包命令
  10. easyui-datagrid加载时的效率低下,解决方案
  11. 熬了几个大夜,学完一套985博士总结的Pytorch学习笔记(20G高清/PPT/代码)
  12. Bootstrap 下拉菜单事件
  13. [转载] Python十大装B语法
  14. 关于c++初始化原理与性能的讨论
  15. 一道简单的但是经典的动态规划题目
  16. 9行python代码批量修改window屏保图文件
  17. web开发规范 - 图片规范
  18. 记录VS在线安装下载慢的解决
  19. iOS原生二维码扫描白屏问题
  20. 墨画子卿第三章第4节:躺着修行

热门文章

  1. mysql学习day04
  2. linux mysql 保护_linux – 在Puppet中,我如何保护密码变量(在这种情况下是MySQL密码)?...
  3. 南大电子机器人入驻云南_园区优秀企业| 中科恒清清淤机器人,以智能科技为水环境治理保驾护航...
  4. 毕业一年总结分享一些工作经验[PHP开发]
  5. 如何减少返工工作量?
  6. 2、买卖股票的最佳时机 II
  7. 在浪漫的巴黎,他们举行了世界上首个无人机节
  8. ortp编程示例代码
  9. [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
  10. VS2008编译错误:error PRJ0003 生成 cmd.exe 时出错