教你如何部署Zabbix监控平台

目录

1、Zabbix工作原理

1.1、重要组件说明

■ zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
■ database storage:专用于存储所有配置信息,以及由zabbix收集的数据
■ web interface: zabbix 的GUI接口(图形化界面)
■ proxy:可选组件,常用于监控节点很多的分布式环境中(节点不在一个地方),代理server收集部分数据转发到server,可以减轻server的压力
■ agent: 部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端

注:zabbix server、proxy、 agent 都有自己的配置文件以及log文件,重要的参数需要在这里配置

1.2、监控系统运行流程

■ agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
■ zabbix_server将数据存储到数据库中,zabbix_web(图形化界面)根据数据在前端(web页面)进行展现和绘图

1.2.1、agentd收集模式

■ 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
■ 被动:server向agent请求获取监控项的数据,agent返回数据

1.2.2、主动检测通信过程

zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems 数据值server或者proxy,zabbix 多久获取一次active items? 它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分

1.2.2.1、获取ACTIVE ITEMS列表

Agent打开TCP连接( 主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent处理响应
关闭TCP连接

1.2.2.2、Agent开始收集数据主动检测提交数据过程

Agent建立TCP连接
Agent提交items列表收集的数据
Server处理数据,并返回响应状态
关闭TCP连接

1.2.3、被动监测通信过程

Server打开一个TCP连接
Server发送请求agent.ping\n
Agent接收到请求并且响应1
Server处理接收到的数据1
关闭TCP连接

注:被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了

1.3、主动被动实际监控应用

实际监控中是用主动的还是被动,主要涉及两个地方

■ 新建监控项目时,选择的是zabbix代理还是zabbix 端点代理程式(主动式),前者是被动模式,后者是主动模式
■ agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启

一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式

1.4、常用的监控架构平台

1.4.1、server-agentd 模式

最简单的架构,常用于监控主机比较少的情况下

1.4.2、server-proxy-agentd 模式

这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力

2、Zabbix部署安装流程

部署配置
zabbix-server:192.168.140.50
zabbix-client:192.168.140.60

注:Zabbix安装需要在LAMP平台上安装,因此第一步是部署LAMP架构

2.1、服务器端关闭防火墙,安装依赖包

[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
[root@zabbix-server ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash   #安装依赖包

在这里插入图片描述

2.1.2、修改apache和php配置文件

[root@zabbix-server ~]# ln -s /etc/httpd/conf/httpd.conf /etc/    #创建软连接
[root@zabbix-server ~]# vim /etc/httpd.conf

在这里插入图片描述
在这里插入图片描述

[root@zabbix-server ~]# vim /etc/php.ini    #yum安装,所以默认在etc下

在这里插入图片描述

2.1.3、开启apache和mariadb

[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# netstat -anpt | grep 3306
[root@zabbix-server ~]# netstat -anpt | grep 80

在这里插入图片描述

2.2、初始化数据库

[root@zabbix-server ~]# mysql_secure_installation

在这里插入图片描述

[root@zabbix-server ~]# mysql -uroot -p123456    #登录数据库

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Docker是一种容器化技术,可以方便地部署和管理应用程序。Zabbix是一种流行的开源监控系统,可以监控服务器、网络设备和应用程序等。在Docker中部署Zabbix监控集群可以提高系统的可靠性和可扩展性。 要部署Zabbix监控集群,需要先创建一个Docker镜像,其中包含Zabbix Server和Zabbix Agent。可以使用Dockerfile文件来定义镜像的构建过程。然后,可以使用Docker Compose来定义和管理多个容器的部署和运行。 在Docker Compose文件中,需要定义Zabbix Server和Zabbix Agent的容器,并指定它们的网络配置和环境变量。可以使用Docker Swarm来管理多个Docker节点,以实现高可用性和负载均衡。 最后,可以使用Zabbix Web界面来配置和管理监控项、触发器和报警等。通过Docker部署Zabbix监控集群,可以简化部署和管理过程,提高系统的可靠性和可扩展性。 ### 回答2: Docker和Zabbix都是开源软件,可在各种操作系统上部署和使用。Docker可以帮助我们简化部署和管理多个容器的过程,而Zabbix则是一种开源监控解决方案,能够对各种设备和应用程序进行监控、报警和分析。在Docker中,我们可以利用容器来部署Zabbix监控集群,达到扩展和分布式监控的目的。 1. 首先,我们需要安装Docker和Docker Compose。安装完成后,我们可以创建一个新的Zabbix监控服务的Docker镜像。为此,我们可以使用类似以下命令的Dockerfile: FROM zabbix/zabbix-server-pgsql:alpine-3.2-latest # Install additional packages RUN apk add --update \ supervisor \ nginx \ php7-fpm \ php7-json \ php7-mysqli \ php7-session \ php7-simplexml \ php7-xml \ php7-xmlrpc \ && rm -rf /var/cache/apk/* # Configure services COPY nginx.conf /etc/nginx/nginx.conf COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf COPY php-fpm.ini /etc/php7/php-fpm.d/www.conf RUN ln -sf /dev/stdout /var/log/nginx/access.log \ && ln -sf /dev/stderr /var/log/nginx/error.log COPY entrypoint.sh / EXPOSE 80 EXPOSE 10051/TCP ENTRYPOINT ["/entrypoint.sh"] CMD ["nginx", "-g", "daemon off;"] 其中entrypoint.sh是一个脚本,用于检查是否已经创建数据库zabbix配置文件,并自动执行启动脚本。该脚本如下: #!/bin/sh set -e if [ ! -d "/var/lib/zabbix/alertscripts" ]; then mkdir -p /var/lib/zabbix/alertscripts cp /usr/share/zabbix/alertscripts/* /var/lib/zabbix/alertscripts/ -r chown -R zabbix.zabbix /var/lib/zabbix/alertscripts fi if [ ! -d "/var/lib/zabbix/modules" ]; then mkdir -p /var/lib/zabbix/modules chown -R zabbix.zabbix /var/lib/zabbix/modules fi if [ ! -d "/etc/zabbix/web" ]; then mkdir -p /etc/zabbix/web cp /usr/share/zabbix/conf/* /etc/zabbix/web/ chown -R zabbix.zabbix /etc/zabbix/web fi if [ ! -f "/etc/zabbix/zabbix_server.conf" ]; then cp /usr/share/zabbix/conf/zabbix_server.conf /etc/zabbix/ chown -R zabbix.zabbix /etc/zabbix fi if [ ! -f "/var/lib/postgresql/data/zabbix.sql" ]; then chown postgres.postgres /var/lib/postgresql/data su -c "/usr/bin/pg_ctl -D /var/lib/postgresql/data start" postgres su -c "psql -c \"CREATE USER zabbix WITH PASSWORD 'zbxpass';\"" postgres su -c "createdb -O zabbix zabbix" postgres su -c "/usr/bin/pg_ctl -D /var/lib/postgresql/data stop" postgres fi exec "$@" 2. 然后,我们可以使用Docker Compose创建一个Zabbix监控集群。我们将使用Zabbix Server、Zabbix Agent以及PostgreSQL数据库容器。可以使用以下配置文件: version: '3' services: db: image: postgres:9.6 volumes: - db_data:/var/lib/postgresql/data environment: - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zbxpass - POSTGRES_DB=zabbix ports: - "5432:5432" networks: - zbx_net zabbix_server: build: . volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./supervisord.conf:/etc/supervisor/conf.d/supervisord.conf - ./php-fpm.ini:/etc/php7/php-fpm.d/www.conf - zabbix_data:/var/lib/zabbix environment: - DB_SERVER_HOST=db - DB_SERVER_PORT=5432 - POSTGRES_USER=zabbix - POSTGRES_PASSWORD=zbxpass - POSTGRES_DB=zabbix ports: - "80:80" - "10051:10051" depends_on: - db networks: - zbx_net zabbix_agent: image: zabbix/zabbix-agent2:alpine-3.13-latest environment: - ZBX_HOSTNAME=zabbix-agent networks: - zbx_net volumes: db_data: driver: local zabbix_data: driver: local networks: zbx_net: 3. 在保存Docker Compose配置文件后,您可以通过以下命令创建并启动Zabbix监控集群: docker-compose up -d 4. 容器启动后,可以访问Zabbix Web界面并使用默认凭据登录。默认用户名和密码分别为Admin和zabbix。接下来,您可以开始监控您的设备和应用程序。 综上所述,我们可以使用Docker和Docker Compose来部署Zabbix监控集群。这种方法方便、可扩展和易于管理,能够让我们快速构建和部署一个强大的监控系统。 ### 回答3: Docker是一个开源的容器化应用平台,它可以帮助我们将应用程序和服务打包成一个容器,这样就可以更快速、更有效地部署和运行它们。而Zabbix是一款功能强大的监控软件,它可以帮助我们监测网络通信、服务器性能等。通过将Zabbix部署在Docker容器中,可以实现快速部署和升级。 在部署Zabbix集群之前,我们需要准备好Docker环境。首先,我们需要在主机上安装Docker Engine和Docker Compose。然后,我们需要创建一个Docker镜像,包含Zabbix Server和Zabbix Agent。可以使用Dockerfile文件来定义该镜像的构建过程。例如,我们可以通过以下方式构建Zabbix镜像: ```dockerfile FROM ubuntu:20.04 RUN apt-get update && apt-get -y install wget \ && wget https://repo.zabbix.com/zabbix/5.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.2-1+ubuntu20.04_all.deb \ && dpkg -i zabbix-release_5.2-1+ubuntu20.04_all.deb \ && rm -f zabbix-release_5.2-1+ubuntu20.04_all.deb \ && apt-get update \ && apt-get -y install zabbix-server-mysql zabbix-frontend-php zabbix-agent mysql-client \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* EXPOSE 80 10050 CMD ["/bin/bash"] ``` 在这个Dockerfile中,我们首先从Ubuntu官方镜像开始构建。然后,我们下载最新的Zabbix Release,并安装Zabbix Server、Zabbix Agent、Zabbix Web等软件包。最后,我们暴露了80和10050两个端口,并在容器启动时启动Bash shell。 接下来,我们需要使用Docker Compose来编排这个镜像的部署。以下是一个简单的docker-compose.yml文件的示例: ```yml version: '3.2' services: zabbix-db: image: mysql:5.7 volumes: - ./data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: zabbix MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix zabbix-server: build: . volumes: - ./zabbix-server.conf:/etc/zabbix/zabbix_server.conf environment: DB_SERVER_HOST: zabbix-db MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix MYSQL_DATABASE: zabbix ports: - 80:80 zabbix-agent: image: zabbix/zabbix-agent:latest environment: ZBX_SERVER_HOST: zabbix-server ZBX_SERVER_PORT: 10051 ZBX_HOSTNAME: zabbix-agent ports: - 10050:10050 ``` 在这个docker-compose.yml文件中,我们定义了3个容器服务,分别是: 1. zabbix-db:MySQL数据库容器服务,用于存储Zabbix Server的监控数据。 2. zabbix-server:Zabbix Server容器服务,包含Zabbix Server和Zabbix Web等组件。 3. zabbix-agent:Zabbix Agent容器服务,用于监控其他容器的性能指标。 在这个文件中,我们还定义了一些环境变量和卷,以保证容器之间的数据共享。最后,我们将Zabbix Web的端口暴露给主机,以方便用户访问Zabbix监控界面。 在完成docker-compose.yml文件的编写后,我们可以使用以下命令来启动Zabbix集群: ```bash docker-compose up -d ``` 总之,使用Docker可以轻松地部署Zabbix监控集群,以帮助我们更好地监控和管理我们的应用程序和服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值