一、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. Qstring和String的区别

    QString qTest; std::string sTest = qTest.toStdString(); qTest = QString::fromStdString(sTest); //进入两 ...

  2. javascript中的内存管理

    目录 简介 内存生命周期 JS中的垃圾回收器 引用计数垃圾回收算法 Mark-and-sweep回收算法 调试内存问题 闭包Closures中的内存泄露 javascript中的内存管理 简介 在c语 ...

  3. HDOJ-2181(深搜记录路径)

    哈密顿绕行世界问题 HDOJ-2181 1.本题是典型的搜索记录路径的问题 2.主要使用的方法是dfs深搜,在输入的时候对vector进行排序,这样才能按照字典序输出. 3.为了记录路径,我使用的是两 ...

  4. JVM笔记 -- JVM的发展以及基于栈的指令集架构

    2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认). 2017年,发布JDK9,G1成为默认GC,代替CMS.(一般公司使用jdk8的时候,会通过参数,指定GC为G1) ...

  5. Python--入门接口测试(1)

    1. 什么是接口测试?为什么要做接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换.传递和控制管理过 ...

  6. FreeBSD 乃至开源界中的孔乙己 再论苦难哲学之一

    在许多狂热的FreeBSD 粉丝里,他们甚至不允许别人把FreeBSD写作freebsd,要和你强调,F和BSD都是大写的.还说这是什么尊重之类的东西.大抵和孔乙己的茴香豆的茴的有四种写法一样吧:&q ...

  7. Min25筛求1-n内的素数和

    1 //#include <bits/stdc++.h> 2 #include<cstdio> 3 #include<cstring> 4 #include< ...

  8. 【牛客网】数据库SQL实战(题解)

    1.查找最晚入职员工的所有信息 [题解] hire_date可能存在重复值,所以需要找到hire_date的最大值,然后再筛选,才能hire_date最晚的记录都筛选出来. [代码] 1 SELECT ...

  9. 【linux】制作deb包方法 **

    目录 前言 概念 ** 创建自己的deb包 文件源码 前言 制作deb的方式很多 使用 dpkg-deb 方式 使用 checkinstall 方式 使用 dh_make 方式 修改原有的 deb 包 ...

  10. Redis实战篇(三)基于HyperLogLog实现UV统计功能

    如果现在要开发一个功能: 统计APP或网页的一个页面,每天有多少用户点击进入的次数.同一个用户的反复点击进入记为 1 次,也就是统计 UV 数据. 让你来开发这个统计模块,你会如何实现? 如果统计 P ...