Zabbix在Docker中的应用和监控

目录

  • Zabbix在Docker中的应用和监控

    • 一.如何使Zabbix跑在Docker里

      • 1.Docker基础环境配置
      • 2.Docker-compose安装配置
      • 3.启动zabbix server
      • 4.基本配置
    • 二.使用Zabbix监控Docker
      • 1.部署方式
      • 2.模块方式
      • 3.使用Docker Agent方式
      • 4.关联模版
  • 转载文档

Zabbix在Docker中的应用和监控

一.如何使Zabbix跑在Docker里

Zabbix官方很早之前就提供里Zabbix的Docker镜像,而且提供里具体的配置及文件。具体地址:https://github.com/zabbix/zabbix-docker 官方提供三种Docker基础镜像的版本,分别为:

  • alpine
  • centos
  • ubuntu

基础镜像在使用上没有太大区别,这里推荐大家使用alpine,这是一个简化的linux版本,最小体积只有30MB多,建议大家使用。官方提供提供了docker-compose的编排文件,可以使用docker-compose编排工具,”一键”启动一套Zabbix系统。其中包括以下组件:

  • zabbix-server
  • zabbix-agent
  • zabbix-proxy
  • zabbix-web
  • zabbix-java-gateway
  • zabbix-snmptraps

1.Docker基础环境配置

环境
OS:CentOS 7 x86_64
Docker: docker-ce-18.09.0

1.1 安装必要的一些系统工具

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

1.2 添加软件源信息

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

1.3 更新并安装 Docker-CE

yum makecache fast
yum -y install docker-ce

1.4 开启Docker服务

systemctl start docker

1.5 设置开机启动

systemctl enable docker

1.6 配置docker镜像加速

vi /etc/docker/daemon.json
{
  "registry-mirrors": ["https://72idtxd8.mirror.aliyuncs.com"]
}

1.7 重启docker

systemctl restart docker

2.Docker-compose安装配置

环境
OS:CentOS 7 x86_64
Docker: docker-ce-18.09.0
Docker-compose:docker-compose version 1.23.1
docker-compose是docker推出的一款编排工具,由于zabbix有很多组件,zabbix server,zabbix-web,zabbix-proxy,db等组件,通过docker-compose的配置文件,可以统一编排,做到一键启动一套Zabbix 组件。

2.1 安装Docker-compose

curl "https://dl.cactifans.com/zabbix_docker/docker-compose" -o /usr/bin/docker-compose
chmod a+x /usr/bin/docker-compose

2.2 查看docker-compose版本

docker-compose version

2.3 安装git等工具

yum install git wget telnet net-tools -y

2.4 下载zabbix docker仓库文件并切换到4.0分支

cd /opt
git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker/
git checkout 4.0

由于github访问较慢,我已git一份到我服务器,大家可以使用以下命令下载使用,只是下载地址变化,其他么有大的变化。

cd /opt
wget https://dl.cactifans.com/zabbix_docker/zabbix-docker.tar.gz
tar zxvf zabbix-docker.tar.gz
cd zabbix-docker/
git checkout 4.0

3.启动zabbix server

  • zabbix官方提供的docker-compose文件有很多,导致大家感到困惑,下面为大家解释一下:
docker-compose_v3_alpine_mysql_latest.yaml
v3为docker-compose版本,分v3,v2,与docker-compose版本和docker版本有关系,具体对应关系在这里查看https://docs.docker.com/compose/compose-file/compose-versioning/
alpine为基础镜像类型,三种类型alpine/centos/ubuntu可选,三种镜像在Zabbix使用上没有任何区别,区别的的只有镜像大小及操作系统区别,推荐使用alpine
myql为zabbix server所使用的数据库类型,目前有MySQL/PostgreSQL二种,推荐使用mysql
latest表示为使用官方的最新镜像,local是下载本地进行build镜像,如网络不好,建议不要尝试,时间较长,很容易失败
本次使用docker-compose_v3_alpine_mysql_latest.yaml配置文件启动Zabbix

3.1 启动zabbix server组件

docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

3.2 查看运行状态

docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml ps

启动之后即可使用http://ip 直接访问zabbix server,默认账号密码为

账号:Admin 密码:zabbix

4.基本配置

安装好之后,部分配置可根据实际需求修改

4.1 修改web端口

1 修改docker-compose_v3_alpine_mysql_latest.yaml文件
vi docker-compose_v3_alpine_mysql_latest.yaml
修改端口为8812

zabbix-web-apache-mysql:
  image: zabbix/zabbix-web-apache-mysql:alpine-4.0-latest
  ports:
   - “80:80"        //修改为8812:80
   - “443:443”
2 停止zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml down
3 启动zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

即可使用http://ip:8812 访问应用

4.2 修改时区

1 修改.env_web
vi .env_web
修改为Asia/Shanghai

PHP_TZ=Europe/Riga
修改为 PHP_TZ=Asia/Shanghai
2 停止zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml down
3 启动zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

4.3 修改字体为中文

由于默认镜像中文字体乱码,需要添加中文字体,重新build镜像,此过程较长,需要网络良好。

1 修改配置文件
vi zabbix-docker/web-apache-mysql/alpine/Dockerfile
修改成如下内容

ADD conf/etc/zabbix/web/msty.ttf /usr/share/fonts/ttf-dejavu/msty.ttf
ln -s /usr/share/fonts/ttf-dejavu/msty.ttf /usr/share/zabbix/fonts/graphfont.ttf
2 下载字体文件到conf/etc/zabbix/web/目录
wget https://dl.cactifans.com/zabbix_docker/msty.ttf
3 生成镜像
zabbix-docker/web-apache-mysql/alpine/build.sh
4 修改docker-compose文件,并启动
vi  docker-compose_v3_alpine_mysql_latest.yaml
镜像地址修改为刚才build的

image: zabbix-web-apache-mysql:alpine-latest
5 启动zabbix server
docker-compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

二.使用Zabbix监控Docker

随着Docker的流行,监控Docker已势在必行,使用Zabbix可以利用LLD(自动发现)自动监控宿主机上所运行的所有Docker状态。具体地址可查看https://github.com/monitoringartist/zabbix-docker-monitoring/

1.部署方式

提供了二种部署方式

1.使用已有Zabbix Agent加载Docker监控模块方式.如已在Docker宿主机上安装Agent,可直接修改配置文件,加载对应的Docker监控模块,重新启动Agent即可。
2.使用加载了Zabbix Agent的Docker镜像方式.如未安装Zabbix Agent,可直接使用包含了Zabbix Agent的镜像即可。

2.模块方式

Zabbix 模块插件是很好用的,可使用C语言编写一个模块,直接加载模块即可使用,个人认为使用模块有以下好处:

  • 避免手动添加UserParameter带来的繁琐。模块自动添加UserParameter,无需手动添加
  • 避免脚本泄漏,保存重要信息。如部分脚本里保存数据库账号密码,普通用户可直接查看内容,加密之后,脚本执行又需要解密,比较繁琐,使用模块可避免此类问题。
  • 统一管理自定义监控项。监控某类指标,只需加载对应的模块即可,按需加载

在Zabbix Agent里添加模块只需修改以下二项即可

LoadModulePath=/usr/local/modules
LoadModule=docker.so

第一项为模块路径,第二项为模块文件。修改之后重启Zabbix Agent即可。

监控Docker模块可在https://github.com/monitoringartist/zabbix-docker-monitoring 下载,注意对应的版本。网站提供的模块有些有错误,需要自行编译。

3.使用Docker Agent方式

使用以下命令即可启动一个Agent,即可监控宿主机器上所有运行的Docker容器

docker run --name=dockbix-agent-xxl --net=host --privileged -v /:/rootfs -v /var/run:/var/run --restart unless-stopped -e "ZA_Server=<ZABBIX SERVER IP/DNS NAME/IP_RANGE>" -e "ZA_ServerActive=<ZABBIX SERVER IP/DNS NAME>" -e "ZA_StartAgents=10" -e "ZA_Timeout=30" -d monitoringartist/dockbix-agent-xxl-limited:latest
  • ZA_Server修改为你的Zabbix ServerIP
  • ZA_ServerActive修改为你的Zabbix ServerIP

即可完成Agent部署

4.关联模版

在Zabbix主机上导入模版,并关联主机。模版下载地址:

https://dl.cactifans.com/zabbix_docker/Zabbix-Template-App-Docker.tar.gz 

下载之后解压导入模版,添加主机即可。主要使用2个模版,一个为主动,一个为被动

Zabbix-Template-App-Docker-active.xml 主动模版
Zabbix-Template-App-Docker.xml 被动模式

添加主机的主机名为宿主机名称,也可以通过docker日志查看。

转载文档

https://blog.cactifans.com/2018/12/28/Zabbix%E5%9C%A8Docker%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8%E5%92%8C%E7%9B%91%E6%8E%A7/

原文地址:https://www.cnblogs.com/python-gm/p/12374756.html

时间: 2024-10-02 19:04:05

Zabbix在Docker中的应用和监控的相关文章

关于在zabbix监测脚本中使用ps命令监控进程CPU使用率和内存使用率,获得数据为0的情况描述

前提:想自己编写zabbix监测脚本,然后通过配置模板的方式,实现对资源(cpu和内存)使用率高的进程进行监控. 过程描述:zabbix版本为2.21,被监控主机操作系统为CentOS 6.4.脚本中主要命令如下:percent=0; #通过脚本输入参数process=$1; #通过ps aux参数,获取CPU%和MEM%值,使用awk将第四行的MEM%值筛选出来percent=ps aux | grep $process | grep -v grep | head -1 | awk '{pri

docker中跑zabbix

我相信大家都已经会再物理机上跑zabbix并且监控了,那么有没有想过在docker中跑zabbix?下面咱们来看看如何在docker中搭建zabbix并且监控 部署环境 2台物理机机器: zabbix-server:192.168.254.13 zabbix-agent:192.168.254.17 docker版本:Server Version: 19.03.1 zabbix版本:4.0 docker的镜像网站(清华大学):https://mirrors.tuna.tsinghua.edu.c

Zabbix基于Proxy分布式部署实现Web监控

前言 在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能.但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情.目前比较流行的开源监控工具有Cacti.Nagios(Icinga).Zabbix等.本文带来的是Zabbix基于Proxy分布式部署实现Web监控. Zabbix 简介 Zabbix是一个基于Web界面提供分布式系统

zabbix企业应用:利用自动发现监控IIS站点

如果一台windows server有许多个IIS站点,我们想实现这样一个监控目标:监控每个站点的状态.请求.流量.连接数,而且以后新增加的站点也可以自动加入到监控里,不需要再手动添加. 利用zabbix的自动发现(LLD)功能结合脚本可以实现上面的需求,实现对IIS站点的动态添加,动态监控. 先看一下监控的效果: 上图中的"Web Service(wskh)"是指IIS网站名称为wskh:"Web Service(_Total)"是指IIS下所有的站点. 网站流量

ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出

zabbix在模板中预定义了一些key,但通常情况,并不能满足我们的需求.幸运的是zabbix提供了自定义key的方法,因此我们可以灵活的监控各种我们想要监控的数据. 定义配置文件 通过yum安装的zabbix-agent配置文件路径为/etc/zabbix/zabbix_agentd.conf.大约在这个文件的255行左右,我们可以发现下面的代码: 1 Include=/etc/zabbix/zabbix_agentd.d/ 我们自定义的配置,可以放到这个目录.我们可以创建一个自定义的文件来定

zabbix专题:第四章 添加自定义监控项Items

添加监控项Items 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 本节目录大纲 什么是item item构成 实战添加网卡流入流出监控项 zabbix专题:第四章 添加监控项Items 什么是item Items是从主机里面获取的所有数据.通常情况下我叫itme为监控项,例如我需要监控它的cpu负载.监控网卡流入流出,那么实现这个方法的东西就叫item.接下来zabbix教程中提到的item都翻译为监

深入浅出Zabbix 3.0 -- 第十一章 VMware 监控

第十一章  VMware 监控 随着虚拟化技术应用的越来越广泛,Zabbix作为基础架构的监控系统,也可以很好的支持基于VMware的虚拟化平台及虚拟机进行监控.通过在Zabbix中预先定义的host prototypes(主机原型)利用low-level discovery rules会自动发现VMware hypervisors和虚拟机,并创建主机对它们进行监控. 在Zabbix中对虚拟机的监控分两步完成,首先,通过vmwarecollector实例收集虚拟机数据,这些实例使用SOAP协议从

深入浅出Zabbix 3.0 -- 第五章 开始监控

第五章  开始监控 通过前面的章节相信你已经了解Zabbix server提供的丰富的监控方式,也了解了主机.用户.组及权限的管理.在本章将通过一个主机监控的例子向你介绍Zabbix中配置监控的流程,全面了解配置监控的每一个步骤. 5.1 监控配置流程 一般Zabbix中监控配置流程如下: 1.  创建主机组. 2.  创建主机(通过设置New group字段可以同时创建主机组). 3.  创建监控项组. 4.  创建监控项(通过设置New application字段可以同时创建监控项组). 5

docker swarm cAdvisor+InfluxDB+Grafana 监控

docker swarm集群的监控方案很多,cAdvisor+InfluxDB+Grafana方案功能强大灵活.最重要的是这个方案开源.免费.易用,是不花钱版监控方案.参考文档:https://botleg.com/stories/monitoring-docker-swarm-with-cadvisor-influxdb-and-grafana/ 组件说明 cAdvisor:数据收集模块,需要部署在集群中的每一个节点上,当然前提条件是节点接受task.在本次实验中,共有三个节点,因为其中一个节