Zabbix在Docker中的应用和监控
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/
Zabbix在Docker中的应用和监控的更多相关文章
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- 在Docker中监控Java应用程序的5个方法
译者注:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化.通常情况下,监控的主要目的在于:减少宕机 ...
- Zabbix-(五)监控Docker容器与自定义jvm监控项
Zabbix-(五)监控Docker容器与自定义jvm监控项 一.前言 前文中讲述了Zabbix对服务器硬件方面的监控功能,本文将讲述利用Zabbix监控Docker容器中的Java Web服务,并通 ...
- ZABBIX自定义用户KEY与参数USERPARAMETERS监控脚本输出
zabbix在模板中预定义了一些key,但通常情况,并不能满足我们的需求.幸运的是zabbix提供了自定义key的方法,因此我们可以灵活的监控各种我们想要监控的数据. 定义配置文件 通过yum安装的z ...
- 【zabbix教程系列】四、用户自定义监控
本篇介绍运用zabbix进行自定义监控,以系统用户登录数量为例. 一.zabbix自定义语法 UserParameter=<key>,<shell command> 二.age ...
- 总zabbix配置-搭建-邮件报警-微信报警-监控mysql
Centos7安装Zabbix4.0步骤 官方搭建zabbix4.0的环境要求: 1. 环境搭建LAMP 前提Centos系统安装完成: 确认一下: 1 2 cat /etc/redhat-rele ...
- zabbix实现自动发现功能添加磁盘监控
zabbix实现对磁盘动态监控 - Lenwood 原文 http://www.cnblogs.com/baizhantang/p/3253246.html 主题 Linux命令 zabbix 前言 ...
- nopCommerce 3.9 大波浪系列 之 使用部署在Docker中的Redis缓存主从服务
一.概述 nop支持Redis作为缓存,Redis出众的性能在企业中得到了广泛的应用.Redis支持主从复制,HA,集群. 一般来说,只有一台Redis是不可行的,原因如下: 单台Redis服务器会发 ...
- ASP.NET Core 3.0 : 二十八. 在Docker中的部署以及docker-compose的使用
本文简要说一下ASP.NET Core 在Docker中部署以及docker-compose的使用 (ASP.NET Core 系列目录). 系统环境为CentOS 8 . 打个广告,求职中.. 一 ...
随机推荐
- https://www.cnblogs.com/lfs2640666960/p/8529115.html
https://www.cnblogs.com/lfs2640666960/p/8529115.html
- ASP.NET Core搭建多层网站架构【5-网站数据库实体设计及映射配置】
2020/01/29, ASP.NET Core 3.1, VS2019, EntityFrameworkCore 3.1.1, Microsoft.Extensions.Logging.Consol ...
- python爬取course课程的信息
目录 1.大模块页面 2.每个大模块中小模块的简单信息 3.每个小课程的详细信息 4.爬取所有评论 @ 这几天爬取了course动态网页的课程信息,有关数据分析,机器学习,还有概率论和数理统计课程 ...
- opencv python:模糊操作
均值模糊 中值模糊 自定义模糊 模糊操作的基本原理 基于离散卷积 定义好每个卷积核 不同卷积核得到不同的卷积效果 模糊是卷积的一种表象 blur cv2.blur(image, (1, 3)) 第二个 ...
- sql 中u.*什么意思
i.* i是一个表的别名,i.*是这个表的所有列,比如 select i.* from customer i; 相当于 select id,name,password from customer;
- Codeforces Round #621 (Div. 1 + Div. 2) C. Cow and Message
Bessie the cow has just intercepted a text that Farmer John sent to Burger Queen! However, Bessie is ...
- 基于Modelsim的视频捕获模拟仿真
一.前言 针对牟新刚编著的<基于FPGA的数字图像处理原理及应用>中第五章系统仿真中关于视频捕获模拟的例子进行补充和仿真验证,简言之,吊书袋子. 2020-02-27 21:09:05 二 ...
- CentOS7 安装 OpenCV 的一些问题解决办法
由于强迫症,实在受不了root权限的旧gcc才能使用boost而普通权限却是最新版gcc,经过一番折腾后,终于把配置全部弄好了,实际上就只需要把新版gcc的各个文件放到系统找到旧gcc的地方,并建立新 ...
- AS布局篇
LinearLayout 线性布局 RelativeLayout 相对布局 FrameLayout 帧布局 AbsoluteLayout绝对布局 TableLayout 表格布局 GridLayout ...
- HDU 2680 最短路 迪杰斯特拉算法 添加超级源点
Choose the best route Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...