目录
一、一分钟部署一个docker环境
1、 Docker的基础理念
打包应用以及依赖环境到一个可移植的容器中,然后发布到任何平台的主机上都能正常运行。
2、安装docker引擎
[root@yu ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@yur ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@yu ~]# yum makecache fast
[root@yu ~]# yum install docker-ce -y
[root@yu ~]# systemctl restart docker
[root@yu ~]# systemctl enable docker
[root@yu ~]# docker version
二、docker中的镜像、容器和仓库
1、docker镜像
Docker镜像是一个特殊的文件系统,它提供了容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如数据卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。(只读属性)
2、docker容器
镜像(Image)和容器(Container)有紧密的关系,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。 容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。 容器可以理解为一个或一组相互依赖的服务。 运行容器: docker run -d images
3、Docker仓库
docker仓库是用来存放镜像的地方。 仓库可分为公共仓库和私有仓库,公共仓库提供公开服务允许用户免费上传、下载公开的镜像,官方的Docker Hub(https://hub.docker.com) ,提供公共仓库服务。此仓库拥有大量的高质量的官方镜像。 除了使用公共仓库外,用户还可以在本地搭建私有仓库,比如,VMWare Harbor这些第三方私钥仓库软件。
三、zabbix应用组件、服务进程介绍
Zabbix主要有几个组件构成,这些组件的功能介绍如下:
1、Zabbix Server Zabbix Server是Zabbix的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 它主要负责接收客户端发送的报告和信息,同时,所有配置、统计数据及配置操作数据均由其组织进行。
2、Zabbix Database Storage 主要用于存储数据,所有配置信息和Zabbix收集到的数据都被存储在数据库中。常用的存储设备有MySQL、Oracle、SQLite等。
3、Zabbix Web 界面 这是Zabbix提供的GUI接口,通常(但不一定)与Zabbix Server运行在同一台物理机器上。
4、Zabbix Proxy代理服务器 这是一个可选组件,常用于分布监控环境中,代理Server可以替Zabbix Server收集性能和可用性数据,汇总后统一发往Zabbix Server端。
5、Zabbix Agent监控代理 Zabbix Agent部署在被监控主机上,能够主动监控本地资源和应用程序,并负责收集数据发往Zabbix Server端或Zabbix Proxy端。从zabbix5版本开始,zabbix_agent分为zabbix_agent和zabbix_agent2,zabbix_agent2是第二个agent版本,功能更加强大,采用go语言编写,支持zabbix_agent所有功能。使用zabbix_agent2可监控docker容器、ceph、mysql、oracle、redis等。
根据功能和用途,默认情况下zabbix包含5个进程,分别是zabbix_agentd/zabbix_agent2、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,另外还有一个zabbix_java_gateway是可选的功能,需要另外安装。下面分别介绍下它们各自的作用。
1、zabbix_agentd/zabbix_agent2 zabbix_agentd/agent2是Zabbix Agent监控代理端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘、网络使用情况等,推荐使用zabbix_agent
2、zabbix_get zabbix提供的一个工具,通常在Zabbix server或者Zabbix proxy端执行用来获取远程客户端信息,这其实是Zabbix server去Zabbix Agent端拉取数据的过程,此工具主要用来进行用户排错。例如在Zabbix server端获取不到客户端的监控数据时,可以使用zabbix_get命令测试获取客户端数据来做故障排查。
3、zabbix_sender zabbix提供的一个工具,用于发送数据给Zabbix server或者Zabbix proxy,这其实是Zabbix Agent端主动推送监控数据到Zabbix Server端的过程,通常用于耗时比较长的检查或者有大量主机(千台以上)需要监控的场景。此时通过主动推送数据到Zabbix server,可以在很大程度上减轻Zabbix server的压力和负载。
4、zabbix_proxy Zabbix Proxy的代理守护进程。功能类似Zabbix server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交或者被提交到Zabbix server上。
5、zabbix_java_gateway Zabbix2.0之后引入的一个功能。顾名思义:Java网关,主要用来监控JAVA应用环境,类似zabbix_agentd进程。需要特别注意的是,它只能主动去推送数据,而不能等待zabbix server或者zabbix proxy来拉取数据。它的数据最终会给到zabbix server或者zabbix proxy上。
6、zabbix_server Zabbix server是整个Zabbix系统的核心进程。其它进程zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到Zabbix server来统一进行处理。
四、下载zabbix所需镜像
zabbix的安装部署非常简单,官方提供了四种安装途径,分别是二进制rpm包安装方式、源码安装方式、容器安装方式和虚拟机镜像安装方式,根据学习方式和运维经验,这里推荐大家用docker容器安装zabbix-server、zabbix-web,而通过rpm包方式安装zabbix agent/agent2。 Zabbix web端是基于HTTP服务器和PHP脚本语言进行构建的,HTTP服务器可以是nginx或apache,zabbix的数据存储支持多种数据库,可以是MySQL、Oracle、PostgreSQL、SQLite等,这里我们选择MySQL数据库作为后端存储。 采用docker安装zabbix,需要下载多个镜像,分别是:Mysql镜像、zabbix-server镜像、Zabbix web镜像、zabbix-java-gateway镜像以及zabbix-agent镜像。 这些镜像都可以从docker官方镜像站https://hub.docker.com/下载进行安装