-
2022-03-25 13:51:02
Docker搭建zabbix,配置zabbix-agent基于Ubuntu系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vEOEjvSr-1648187439073)(/uploads/article/20220325/623d56b7e5aba.png)]
Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。用户群:90%以上中小型的泛互联网企业
优点:
- 支持多平台的企业级分布式开源监控软件
- 安装部署简单,多种数据采集插件灵活集成
- 功能强大,可实现复杂多条件告警,
- 自带画图功能,得到的数据可以绘成图形
- 提供多种API接口,支持调用脚本
- 出现问题时可自动远程执行命令(需对agent设置执行权限)
缺点:
- 项目批量修改不方便
- 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发,难度较大;
- 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;并且自定义的项目报警需要自己设置,过程比较繁琐(但是网上的模板比较,也可以使用模板导入的方法);
- 缺少数据汇总功能,如无法查看一组服务器平均值,需进行二次开发;
- 数据报表需要特殊二次开发定义;
Docker zabbix 安装流程
最近研究关于服务器监控,由于一直用阿里云资源,但是查询各种监控比较麻烦,早期了解到zabbix运维工具,也受益于docker的流行,使我们安装使用更加的方便;由于搭建非本地数据库相对麻烦,以下以本机数据库为例演示,后续在更独立RDS数据库部署;
使用内置MySQL
Zabbix 应用实例将 10051/TCP 端口(Zabbix trapper)和80/TCP 端口(HTTP)暴露给主机。
我这里配置到物理机,对应的端口是:9091和9092,这里可以自行配置docker run --name zabbix-appliance -t \ -p 9091:10051 \ -p 9092:80 \ -d zabbix/zabbix-appliance:latest
- 访问地址:http://ip:9092
- 默认账户:Admin
- 默认密码:zabbix
存在错误:
1.Zabbix agent is not available (for 3m) 2.Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused 配置docker 容器的IP也出错,需要配置docker容器对应的gateway的IP 3.Get value from agent failed: cannot connect to [[172.17.0.2]:10050]: [111] Connection refused
解决思路:
- 使用Docker安装几个容器后默认没有安装zabbix-agent,自然无法链接到本机自己的代理。
- 宿主机和dokcer容器的网络不通原因
第一步:apt install zabbix-agent (Ubuntu 16.04 64位)
第二步:获取安装zabbix容器的IP(zabbix server ip)
docker inspect zabbix-appliance | grep IPAddress "Gateway": "172.17.0.1", # 配置到zabbix的agent代理程序的接口-主机IP地址中; "IPAddress": "172.17.0.2", # zabbix server ip
第三步:vim /etc/zabbix/zabbix_agentd.conf
Server=172.17.0.2 # zabbix server ip ServerActive=172.17.0.2 # zabbix server ip Hostname=Zabbix server # 默认
第四步:修改zabbix web界面中主机配置
配置–主机–Zabbix server将agent代理程序的接口更改为“172.17.0.1”(容器里的Gateway IP)即可
第五步: zabiix-agent的操作
- systemctl restart zabbix-agent
- systemctl status zabbix-agent
- systemctl start zabbix-agent.service
- systemctl enable zabbix-agent.service
Docker安装zabbix
参考官方地址:https://www.zabbix.com/documentation/current/zh/manual/installation/containers更多相关内容 -
docker部署zabbix_agent的方法步骤
2021-01-09 00:06:50docker run --rm --network zabbix --name zabbix_agent--link zabbix_server:zabbix-server -e ZBX_HOSTNAME=mythird -e ZBX_SERVER_PORT=10051 -e ZBX_SERVER_HOST=172.22.0.3 -p 3998:10050 -d zabbix/zabbix-... -
DOCKER搭建zabbix
2022-04-19 18:16:471.搭建数据库 docker run -name mysql-server -t -e MYSQL_USER=“zabbix” -e MYSQL_PASSWORD=“zabbix_pwd” -e MYSQL_ROOT_PASSWORD=...docker run --name zabbix-java-gateway -t -d zabbix/zabbix-java-ga1.搭建数据库
docker run -name mysql-server -t
-e MYSQL_USER=“zabbix”
-e MYSQL_PASSWORD=“zabbix_pwd”
-e MYSQL_ROOT_PASSWORD=“root_pwd”
-p 3306:3306
-d mysql:5.7docker ps -a
搭建Java-gateway
docker run --name zabbix-java-gateway -t
-d zabbix/zabbix-java-gateway:latest
搭建Zabbix server
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”
–link mysql-server:mysql
–link zabbix-java-gateway:zabbix-java-gateway
-p 10051:10051
-d zabbix/zabbix-server-mysql:latest
搭建zabbix web
docker run --name zabbix-web-nginx-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”
–link mysql-server:mysql
–link zabbix-server-mysql:zabbix-server
-p 80:8080
-d zabbix/zabbix-web-nginx-mysql:latest -
Docker 搭建zabbix
2020-08-15 18:50:43查找zabbix镜像:docker search zabbix 找到镜像zabbix/zabbix-appliance 下载:docker pull zabbix/zabbix-appliance 长期使用需要创建卷:docker volume create zabbix_data 生成容器:docker run --name zabbix...server 端
查找zabbix镜像:docker search zabbix
找到镜像zabbix/zabbix-appliance
下载:docker pull zabbix/zabbix-appliance
长期使用需要创建卷:docker volume create zabbix_data
生成容器:docker run --name zabbix -p 80:80 -p 10051:10051 -v zabbix_data:/var/lib/mysql -d zabbix/zabbix-appliance
需要确认宿主机80/10051端口没被占用,占用需要更换其他端口
登陆宿主机IP:80 进入zabbix登陆界面
agent 端
下载agent镜像(需要和zabbix server 兼容)
实现原理创建其他容器(nginx,mysql,tomcat等)和agent使用同一个网络名称空间形成新的应用+agent的容器,对新的容器进行监控
创建被监控容器
docker run --name mysql -e MYSQL_ROOT_PASSWORD=redhat -d mysql:5.7备注:
#docker exec -it mysql-agent bash (进入容器修改配置文件)
vi /etc/zabbix/zabbix_agentd.conf
Server= IP (server端IP地址)
更改后按Ctrl+P+Q 进行不关闭退出容器需要知道server的name
docker inspect zabbix(zabbix server端 容器的名称)
获取到IP地址
查找:docker search zabbix-agent
下载agent:docker pull zabbix/zabbix-agent:centos-4.4.6
生成容器:docker run --name nginx01_agent --network=container:nginx_web01 -e ZBX_HOSTNAME=“nginx_web01” -e ZBX_SERVER_HOST=“172.17.0.5” -d zabbix/zabbix-agentdocker run --name mysql_agent --network=container:mysql -e ZBX_HOSTNAME=“mysql” -e ZBX_SERVER_HOST=“172.17.0.5” -d zabbix/zabbix-agent
被监控容器需要和zabbix server在同一网段,加入到同一个network
创建局域网:docker network create zabbix_net
加入到局域网:docker network connect zabbix_net nginx01_agent
查看是否在同一网段:docker network inspect zabbix_net其中nginx_web01是我之前创建的测试容器,也可以用其他的
创建好后,进入zabbix server控制台,添加主机
主机名是被监控容器名称,IP需要进行查询,添加到对应的主机组
docker inspect nginx_web01
然后添加模板
设置开机启动systemctl enable docker service
docker update --restart always 容器名 -
基于Docker安装与部署Zabbix
2021-01-10 12:42:32今天测试了一天的Zabbix-Docker,部署起来确实方便,就需要在安装了Docker的linux系统中输入以下命令就可以了。 1.安装mysql数据库, 启动一个空的MySQL服务器实例 docker run –name zabbix-DB -t \ -e MYSQL_... -
docker+zabbix,使用docker搭建zabbix服务
2021-02-05 02:23:112. 下载zabbix-server镜像,zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-...打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有下...2. 下载zabbix-server镜像,zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。
打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有下面这些版本
Zabbix server 3.0 (tags: alpine-3.0-latest, ubuntu-3.0-latest, centos-3.0-latest)
Zabbix server 3.0.* (tags: alpine-3.0.*, ubuntu-3.0.*, centos-3.0.*)
Zabbix server 3.2 (tags: alpine-3.2-latest, ubuntu-3.2-latest, centos-3.2-latest)
Zabbix server 3.2.* (tags: alpine-3.2.*, ubuntu-3.2.*, centos-3.2.*)
Zabbix server 3.4 (tags: alpine-3.4-latest, ubuntu-3.4-latest, centos-3.4-latest, alpine-latest, ubuntu-latest, centos-latest, latest)
Zabbix server 3.4.* (tags: alpine-3.4.*, ubuntu-3.4.*, centos-3.4.*)
Zabbix server 4.0 (tags: alpine-trunk, ubuntu-trunk)
因为我的服务器是centos7版本,所以选择的是centos-latest版本。还有后面如果想自己重做镜像的话,选择centos版本,用着会更简单一点。在linux终端使用
docker pull zabbix/zabbix-server-mysql:centos-latest
下载zabbix-server的镜像。再通过
docker image ls
查看下载的镜像。如下图:
3. 下载Zabbix web镜像,这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。这里是用的是latest版本,在linux终端使用
docker pull zabbix/zabbix-web-nginx-mysql:latest
下载web镜像。再通过
docker image ls
查看下载的镜像。如下图:
4. 下载zabbix-java-gateway镜像, Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。这里我们使用latest版本,在linux终端使用
docker pull zabbix/zabbix-java-gateway:latest
下载zabbix-java-gateway镜像。再通过
docker image ls
查看下载的镜像。如下图:
镜像运行
1. 启动zabbix等镜像之前,需要先创建一个新的 Docker 网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。在终端使用下面命令创建。
docker network create -d bridge zabbix_net
创建后,可以查看是否创建成功。
docker network ls
2. 运行mysql 镜像,创建mysql容器。
docker run -dit -p 3306:3306 --name zabbix-mysql --network zabbix_net --restart always -v /etc/localtime:/etc/localtime -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd" mysql:5.7
其中-p 是将容器中的3306端口映射到服务器的3306端口,
--network zabbix_net是将容器加入到zabbix_net网络中,
-v /etc/localtime:/etc/localtime是同步服务器和容器内部的时区,
--restart always设置自启动,
-e MYSQL_DATABASE="zabbix",创建环境变量。
--name zabbix-mysql,给容器命名。
3. 运行zabbix-java-gateway镜像,创建zabbix-java-gateway容器。
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name=zabbix-java-gateway --network zabbix_net zabbix/zabbix-java-gateway:latest
4. 运行zabbix-server-mysql镜像,创建zabbix-server-mysql容器。
首先创建数据卷zabbix-server-vol,通过命令
docker volume create zabbix-server-vol
启动zabbix-server-mysql容器。
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix -v /etc/localtime:/etc/localtime -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts --name=zabbix-server-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -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" zabbix/zabbix-server-mysql:centos-latest
5. 运行zabbix-web-nginx-mysql镜像,创建zabbix-web-nginx-mysql容器。
docker run -dit -p 80:80 -v /etc/localtime:/etc/localtime --name zabbix-web-nginx-mysql --restart=always --network zabbix_net -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -e MYSQL_ROOT_PASSWORD="root_pwd" -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest
zabbix所需容器已经全部启动,可以通docker ps 查看容器状态,如下图:
6. 在浏览器中输入http://IP/zabbix,打开zabbix首页,其中用户名密码分别是admin/zabbix。
出现下面页面,zabbix搭建成功。是不是比自己创建数据库,搭建zabbix-server简单很多。
-
使用docker搭建zabbix
2018-04-22 20:36:43再次之前我们要知道zabbix的主要架构是怎样的,zabbix有一个server端是最主要的,主要是用来收集agent传来的数据然后进行处理等一系列操作,当然有server端肯定有agent端用来收集数据的,数据为了可以图形化展示给... -
使用Docker搭建Zabbix服务
2018-07-30 22:51:34Zabbix官方提供有Docker镜像,本文结合资料记录一次使用Docker搭建Zabbix的过程,Docker、Zabbix的使用及介绍不再赘述。 Docker源文件 所有Zabbix组件都下列Docker源码库中提供: Zabbix agent : zabbix/zabbix... -
Docker搭建zabbix-server
2021-11-01 16:34:04安装docker #更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源 #sudo apt update #sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common #导入... -
使用docker搭建zabbix环境
2019-09-01 19:02:16一、下载mysql,这里下载mysql:5.7, docker image pull mysql:5.7 二、下载zabbix-server镜像,zabbix-server镜像有两种,一种是支持PostgreSQL,一种是支持mysql的。...docker search zabbix-ser... -
通过docker搭建zabbix监控系统
2018-11-14 09:05:46zabbix系统由数据库、监控服务、管理...故障处理:控制台页面报错zabbix server is not running: the information displayed may not be current,根据网友非docker部署环境的排查方法,查了半天都没找到原因,居... -
基于docker 安装 zabbix
2021-11-19 15:10:301.docker+zabbix,使用docker搭建zabbix服务 Zabbix 介绍 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统... -
Docker部署Zabbix
2021-10-03 11:04:43docker部署 Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker [root@localhost ~]# uname -r 3.10.0-1127.el7.x86_64 安装需要的软件包(yum-util 提供yum-... -
docker搭建zabbix
2021-02-17 18:37:51docker run --name mysql-server -t \ -p 3307:3306 \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_PASSWORD="admins" \ -d mysql:5.7 \ --... -
2021-07-15 docker 安装zabbix proxy
2021-07-15 15:57:36关于docker 安装 zabbix proxy 的过程 近期公司使用的是FreeBSD的OS搭载的zabbix proxy,因为需要上百个proxy,还有vlan的限制, 所以就自己研究了一下; 是研究的vlan,因为是使用了esxi6.7的虚拟机,虚拟了2块... -
docker部署zabbix监控平台并通知钉钉来报警
2020-11-10 21:16:57docker搭建zabbix系统监控服务器并通知钉钉群报警 一.环境说明 OS:Ubuntu 16.04 x86_64 IP: 172.18.29.120 Docker version :19.03.5 Docker Compose: version 1.24.0 环境变量文件说明 .env_agent zabbix-agent ... -
docker部署zabbix
2021-01-17 01:06:55下面咱们来看看如何在docker中搭建zabbix并且监控部署环境2台物理机机器:zabbix-server:192.168.254.13zabbix-agent:192.168.254.17docker版本:Server Version: 19.03.1zabbix版本:4.0docker的镜像网... -
Docker-Zabbix 监控平台的搭建与Agent的安装
2021-09-30 10:15:29一、基于Docker环境的安装以下为docker环境安装方法: ... 二、镜像的获取 你需要有一个dockerhub开源平台的账户: https://hub.docker.com/ linux链接dockerhub平台 docker login --username=你...三、搭建Zab -
使用 Docker 安装 Zabbix,并配置自定义监控项
2022-04-13 10:19:24一、Zabbix 简介 Zabbix 可以用来监控各种网络参数,来保证服务器和系统的安全运行。并且 Zabbix 还提供了灵活的通知机制,以此来让系统管理员快速定位/解决存在的各种问题。是一个基于 Web 界面提供的分布式系统... -
Docker安装Zabbix+Granafa
2021-11-30 08:48:52Docker安装Zabbix+Granafa 一、安装Zabbix 1.添加docker-repo yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 2.拉取镜像 docker pull mysql:5.7 docker ... -
docker安装zabbix4.0监控系统
2019-09-18 05:48:48器化zabbix。 容器部署zabbix更简单 准备两台机器:192.168.22.200 zabbix-server192.168.22.8 zabbix-agent 软件版本:docker: 18.06.1-cezabbix: 4.0.1 安装docker可以使用阿里镜像源的repo安装:... -
基于docker搭建zabbix
2019-05-26 15:02:42作者:【吴业亮】 博客:... 启动一个空的MySQL服务器实例 创建数据库目录 # mkdir /data # docker run --name mysql-server -t \ -v /data:/var/lib/mysql \ -e MYSQL_DATABASE="zabbix" \ -e... -
一:基于docker 配置zabbix
2021-02-24 18:33:40一:基于docker 配置zabbix 1、下载zabbix相关的4个镜像 1.下载mysql:5.7 sudo docker pull mysql:5.7 2.下载zabbix/zabbix-server-mysql sudo docker pull zabbix/zabbix-server-mysql 3.下载zabbix/zabbix-web-... -
使用 docker 部署 zabbix5.0LTS 及实践分享
2021-07-21 09:55:23docker 部署 Zabbix5.0 版本,Zabbix 优化,生产环境 zabbix 部署实践,通过 Docker 搭建一个最小化版本的 Zabbix,安装 Docker,可参考阿里云镜像站 Docker 镜像加速 -
docker用docker-compose快速搭建zabbix最新版
2021-11-13 12:12:05编写docker-compose.yml文件 根据需求更改自己的配置,这里配置mysql为5.7版本,其他版本默认为最新的。由于80已被占用,这里为8088端口登录。 version: "3" services: mysql-server: image: mysql:5.7 container... -
基于 Docker 安装 zabbix
2020-09-11 14:09:30docker+zabbix,使用docker搭建zabbix服务 zabbix中文文档https://www.zabbix.com/documentation/3.4/zh/start Zabbix 相关镜像下载 docker pull mysql:5.7 docker pull zabbix/zabbix-server-mysql:centos-... -
docker部署zabbix_proxy
2018-12-11 18:01:07↵docker部署zabbix_proxy,因为设置了zabbix_proxy通过psk加密方式连接到zabbix_server,因此需要生成psk密钥 目录结构: [root@container1 zabbix_proxy]# cat etc/env_mysql MYSQL_DATABASE=zabbix_proxy...