一、zabbix agent2 介绍

从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监控各类应用及微服务。

以下为官方对zabbix agent2的介绍:

Zabbix agent2是新一代Zabbix代理,可以代替Zabbix代理使用。Zabbix agent2已开发为:

  • 减少TCP连接数
  • 具有更大的支票并发
  • 易于通过插件扩展。插件应该能够:
  • 提供仅由几行简单代码组成的琐碎检查
  • 提供由长期运行的脚本和独立的数据收集组成的复杂检查,并定期发送回数据
  • 替代Zabbix代理(因为它支持所有以前的功能)
  • agent2用Go编写(重用了Zabbix代理的一些C代码)。构建Zabbix agent2需要配置的Go版本1.13+环境。

本文主要介绍如何通过zabbix agent2 来监控你的docker应用。


二、zabbix 5.x 安装

1.安装docker 版本不限制,过程参考网络不再赘述。
2.容器化方式安装 zabbix server
  • 安装华为zabbix 5.2 yum源
rpm -ivh https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/zabbix-release-5.2-1.el7.noarch.rpm
  • 创建容器网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
  • 创建数据库容器
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--network=zabbix-net \
-d mysql:8.0 \
--restart unless-stopped \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
  • 创建 zabbix-java-getway 容器
 docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-5.2-latest
  • 创建 zabbix-server-mysql 容器
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_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-5.2-latest # 暴露 10051/TCP端口
  • 创建web前端容器
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="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" \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-5.2-latest
#暴露 80端口
3. 登录server ip地址验证安装
# docker ps  四个容器已正常启动
[root@VM-0-5-centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5dc24c3d05e5 mysql:8.0 "docker-entrypoint..." 3 weeks ago Up 3 weeks 3306/tcp, 33060/tcp mysql-server
12aa15d78de2 zabbix/zabbix-web-nginx-mysql:alpine-5.0-latest "docker-entrypoint.sh" 3 weeks ago Up 3 weeks 8443/tcp, 0.0.0.0:80->8080/tcp zabbix-web-nginx-mysql
0deae5fc6fc0 zabbix/zabbix-server-mysql:alpine-5.0-latest "/sbin/tini -- /us..." 3 weeks ago Up 3 weeks 0.0.0.0:10051->10051/tcp zabbix-server-mysql
a417d9958ad2 zabbix/zabbix-java-gateway:alpine-5.0-latest "docker-entrypoint..." 3 weeks ago Up 3 weeks 10052/tcp zabbix-java-gateway

安装方式可参考官方文档:容器化方式安装zabbix server

三、zabbix监控docker应用

1.安装zabbix-agent2
yum install zabbix-aget2

#启动agent2
[root@VM-0-5-centos ~]# ps -ef|grep agent2
zabbix 23184 1 0 Mar30 ? 00:12:40 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root 30458 30414 0 14:33 pts/6 00:00:00 grep --color=auto agent2
2.将docker模板链接到zabbix-server主机,并更新。



docker模板监控项如下

3.给/var/run/docker.sock 所有用户可读权限(zabbix用户)

chmod 666 /var/run/docker.sock

4.docker中的应用列表如下

可以看到docker模板已经自动发现了docker中的应用,如下所示

以监控mysql应用为例,其部分监控项如下

5. 添加docker 仪表盘

在仪表盘中添加图形,选择需要展示的监控项

多个图形构成的mysql docker应用的仪表盘



后续可添加告警相关内容,本文不做展开,小伙伴们可自行探索哈。 有不理解的地方可在评论区指出。


欢迎收藏、点赞、提问。关注顶级饮水机管理员,除了管烧热水,有时还做点别的。

zabbix容器化安装及监控docker应用的更多相关文章

  1. Kong/Konga - Docker容器化安装

    1.0 安装kong + postgresDB docker network create kong-net docker pull postgres:latest docker run -d --n ...

  2. 研发环境容器化实施过程(docker + docker-compose + jenkins)

    目录 背景介绍 改造思路 容器构建 基础准备 中间件容器 外部依赖容器 业务应用容器 容器整合 自动构建容器 Maven相关 非Maven项目 总结 背景介绍 目前公司内部系统(代号GMS)研发团队, ...

  3. [容器]docker-ce安装最新版-docker常用操作

    社区: http://www.dockerinfo.net/rancher http://dockone.io/ https://www.kubernetes.org.cn/ 1,docker安装配置 ...

  4. Zabbix系列之八——安装agent监控windows

    一.下载zabbix-agent客户端 被监控的主机装在windows server 2012 64位操作系统,被监控端需要安装: http://www.zabbix.com/downloads/3. ...

  5. 容器化安装Mysql 8.0 并部署主从复制

    系统: Centos 7.4 数据库版本:8.0.20 两台机器做相同操作 安装Docker export VERSION=18.06 && curl -fsSL http://rai ...

  6. 容器化-Docker-1-速查手册-Docker常用命令

    目录 备注 常用命令 Docker镜像管理(操作对象是镜像) Docker容器管理(操作对象是容器) 容器外挂目录(宿主目录映射到容器中) 这篇文章的目的就是把最常用的命令列出来,没时间看速查命令使用 ...

  7. Docker最全教程之MySQL容器化 (二十四)

    前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明  运行MySQL容器镜像  1.运行MySQL容器  ...

  8. Docker容器化技术(上)

    目录 Docker容器化技术 一.介绍 二.Docker的发展 三.Docker安装 四.阿里云Docker镜像加速 五.Docker的基本概念 六.命令 七.Docker宿主机与容器通信 八.容器内 ...

  9. Docker之容器化学习之路v20.10.3

    Docker概述 **本人博客网站 **IT小神 www.itxiaoshen.com Docker文档官网 Docker是一个用于开发.发布和运行应用程序的开放平台.Docker使您能够将应用程序与 ...

随机推荐

  1. Java基础语法:abstract修饰符

    一.简介 描述: 'abstract'修饰符可以用来修饰方法,也可以修饰类. 如果修饰方法,那么该方法就是抽象方法:如果修饰类,那么该类就是抽象类. 抽象类和抽象方法起到一个框架作用,方便后期扩展的重 ...

  2. deepin 340 USB转console线驱动安装及使用

    刚换DEEPIN系统, 有个路由器要做调整,的确是没windows友好,查了网上资料,归总一下. zhaodong@zhaodong-PC:sudo find / -name serial 进入 zh ...

  3. 行业动态 | 通过使用Apache Cassandra实现实时供应链管理

    借助基于Apache Cassandra的DataStax Enterprise,C&S Wholesale确实得到了他们所需要的东西--一个持续在线的仓库运作整体视图.   视图中包含了原本 ...

  4. springboot源码(4)

    我们上3个篇章写了springboot的自动装配.servlet组件的注入以及web容器实现内嵌的原理,现在我们来看springboot启动过程中到底做了些什么,也就是打开我们的run方法: 这里我们 ...

  5. 05.从0实现一个JVM语言之目标平台代码生成-CodeGenerator

    从0实现JVM语言之目标平台代码生成-CodeGenerator 源码github仓库, 如果这个系列文章对你有帮助, 希望获得你的一个star 本节相关代码生成package地址 阶段性的告别 非常 ...

  6. 网络好不好,ping一下就知道

    摘要:在测试和部署网络通信应用时,我们经常会遇到网络不通的问题,一般都会想到ping一下.本文将带您了解ping命令的作用和原理~ 在测试和部署网络通信应用时,我们经常会遇到网络不通的问题.一般都会想 ...

  7. SpringBoot项目创建与单元测试

    前言   Spring Boot 设计之初就是为了用最少的配置,以最快的速度来启动和运行 Spring 项目.Spring Boot使用特定的配置来构建生产就绪型的项目. Hello World 可以 ...

  8. 虚拟机安装centos系统【史上最详细的】

    因为文章中有很多的图片,在博客园中还需要单张上传,所以使用了将markdown的文件链接存入网盘中让大家下载 windows系统请使用Typora软件打开 如果不知道Typora是什么软件,请在百度搜 ...

  9. 敏捷史话(九):用做面包的方式做敏捷——Alistair Cockburn

    在一次用例和敏捷技术交流大会上,Alistair给大家分享了自己比较崇尚的三个字: "守""破""离",他用做面包的例子,形象地将这三个字与 ...

  10. ES6学习笔记(3)- 对象的功能性扩展

    一.什么是对象字面量 对象字面量就是创建对象(Object)的一种简单容易理解的方式,再通俗点就是所谓的键值对的集合.举个简单的例子: let book = { name: 'JavaScript', ...