超详细的安装zabbix和配置zabbix邮箱报警

Zabbix

Zabbix作为一款功能强大、灵活可扩展的开源监控解决方案,在帮助管理员实时监控和管理各种IT资源、提高系统的稳定性和可靠性、保障业务的正常运行方面发挥着重要作用

Zabbix是一个基于WEB界面的企业级开源解决方案,它提供了分布式系统监视以及网络监视功能。以下是对Zabbix的概念和作用的详细解释:

概念

  1. 开源与免费:Zabbix是一款开源且免费的监控平台,用户可以自由地使用、修改和分发。
  2. 分布式架构:Zabbix采用分布式架构,可以实现高可用性和负载均衡,确保监控系统的连续性和稳定性。
  3. 组件构成:Zabbix主要由Zabbix Server和可选的Zabbix Agent两部分构成。Zabbix Server负责存储配置信息、统计信息和操作信息,并通过SNMP、Zabbix Agent、ping、端口监视等方法提供对远程服务器/网络状态的监视和数据收集功能。Zabbix Agent则部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控数据发送给Zabbix Server。

作用

  1. 实时监控:Zabbix可以对各种IT资源进行实时监控,包括服务器的CPU、内存、磁盘、网络性能等硬件参数,以及操作系统、应用程序、服务运行状态等软件层面的信息。通过实时监控,管理员可以及时发现并解决潜在的问题,确保系统的稳定运行。
  2. 历史数据分析:Zabbix可以记录和存储历史监控数据,并提供丰富的数据分析功能。管理员可以通过查询历史数据,了解系统在不同时间段的性能状况,发现性能瓶颈和异常情况,并进行相应的优化和调整。
  3. 报警与通知:Zabbix支持灵活的告警机制,允许用户为几乎任何事件配置基于邮件、短信、手机APP等方式的告警通知。当系统出现故障或异常情况时,Zabbix可以及时通知管理员,帮助管理员迅速定位并解决问题,避免系统故障对业务造成影响。
  4. 数据可视化:Zabbix提供了丰富的数据可视化功能,可以将监控数据以图表、报表等形式展示出来。管理员可以通过直观的图表和报表,快速了解系统的整体状况和各项指标的变化趋势,为决策提供参考依据。
  5. 自动发现与配置:Zabbix支持自动发现功能,可以自动扫描网络中的设备和服务,并自动添加监控项。管理员无需手动配置,即可实现对新设备的监控和管理。此外,Zabbix还提供了灵活的配置和扩展功能,管理员可以根据实际需求自定义监控项、触发器、报警规则等。
  6. 安全性:Zabbix提供了多层次的安全机制,包括用户权限管理、数据加密、访问控制等。管理员可以对用户进行权限分配,限制其对监控数据的访问和操作,确保系统的安全性和隐私保护。

部署:

在Zabbix监控系统中,MySQL、Gateway(特别是Zabbix-Java-Gateway)、Zabbix Server、Zabbix Web和Zabbix Agent各自扮演着重要的角色。

  1. MySQL

    • MySQL在Zabbix中通常用作后端数据库,存储所有的配置信息、历史数据、事件日志等。
    • Zabbix Server通过MySQL数据库来管理和查询监控数据,确保数据的持久化和可查询性。
  2. Zabbix-Java-Gateway

    • Zabbix-Java-Gateway是一个可选组件,专门用于监控Java应用程序。
    • 它通过Java Native Interface (JNI)与Java应用程序进行通信,收集性能指标如内存使用量、线程数量等,并将这些数据发送到Zabbix Server。
  3. Zabbix Server

    • Zabbix Server是整个Zabbix监控系统的核心组件,负责接收来自Zabbix Agent或其他监控源的数据。
    • 它执行数据的主动轮询和被动获取,计算触发器条件,并在条件满足时触发报警或执行自动化操作。
    • Zabbix Server还负责存储和管理所有的监控数据、配置信息和事件日志。
  4. Zabbix Web

    • Zabbix Web提供了基于Web的用户界面,允许管理员通过浏览器远程访问和管理Zabbix监控系统。
    • 管理员可以使用Zabbix Web来配置监控项、查看实时监控数据、分析历史数据、设置报警规则和管理用户权限等。
  5. Zabbix Agent

    • Zabbix Agent是一个轻量级的代理软件,部署在被监控的主机上。
    • 它负责收集主机的各种监控数据,如CPU使用率、内存占用、磁盘I/O等,并将这些数据发送到Zabbix Server。
    • Zabbix Agent还支持自动发现和自动配置功能,可以自动检测并添加新的监控项和触发器。

这些组件共同构成了Zabbix监控系统的核心架构,实现了对IT资源的全面监控和管理。通过它们之间的协同工作,管理员可以实时了解系统的运行状态,及时发现并解决问题,确保业务的连续性和数据的安全性。

安装

第一种方式:

Docker创建mysql容器

先启动我们的docker

  1. 创建数据卷  用于存放数据
docker volume create -d local mysql_data  # 存放mysql的数据

docker volume create -d local mysql_logs  # 存放mysql的日志

docker volume create -d local mysql_conf  # 存放mysql的配置文件

       2.创建容器并运行

docker run --name mysql-server -t \
   -v mysql_data:/var/lib/mysql \
      -v mysql_logs:/var/log/mysql \
      -v mysql_conf:/etc/mysql \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="root" \
      --restart=unless-stopped \
      -d mysql:8.0 \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password
安装gateway
docker run --name zabbix-java-gateway -t \
   --restart=unless-stopped \
      -d zabbix/zabbix-java-gateway:alpine-6.2-latest
安装zabbix-server

创建卷

docker volume create -d local zabbix_server

创建并运行镜像

docker run --name zabbix-server-mysql -t \
    -v zabbix_server:/etc/zabbix \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="root" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      --restart=unless-stopped \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:alpine-6.2-latest
安装zabbix-web
docker run --name zabbix-web-nginx-mysql -t \
   -e PHP_TZ="Asia/Shanghai" \
   -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix" \
      -e MYSQL_ROOT_PASSWORD="root" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 8090:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest
安装zabbix-agent

将下载好的安装包直接安装即可

[root@localhost zabbix]# rpm -vih zabbix-agent-7.0.4-release1.el7.x86_64\(2\).rpm 

可能会安装失败报错,显示缺少依赖

可以安装一下pcre2,安装好后在尝试安装agent包

yum -y install pcre2

启动

systemctl start zabbix-agent

第二种方式:

创建一个docker-compose.yml文件

services:
   # 网关
  zabbix-gateway:
    image: zabbix/zabbix-java-gateway:latest
    container_name: zabbix-gateway-1
    ports:
      - "1052:1052"
    restart: unless-stopped
    networks:
      - zabbix-net

  # 初始数据库
  zabbix-db-image:
    image: mysql:latest
    ports:
      - "33090:3306"
    container_name: zabbix-mysql-1
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix"
    volumes:
      - ./mysql:/var/lib/mysql
    command: ["--character_set_server=utf8mb4", "--collation_server=utf8mb4_bin"]
    networks:
      - zabbix-net
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p123456"]
      interval: 5s
      retries: 30

  # Server服务
  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server-1
    environment:
      DB_SERVER_HOST: "zabbix-mysql-1"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix"
      MYSQL_ROOT_PASSWORD: "123456"
      ZBX_JAVAGATEWAY: "zabbix-gateway-1"
    ports:
      - "10051:10051"
    restart: unless-stopped
    networks:
      - zabbix-net
    depends_on:
      zabbix-db-image:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "nc", "-z", "localhost", "10051"]
      interval: 5s
      retries: 30

  # Web服务
  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    environment:
      PHP_TZ: "Asia/Shanghai"
      ZBX_SERVER_HOST: "zabbix-server-1"
      DB_SERVER_HOST: "zabbix-mysql-1"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix"
      MYSQL_ROOT_PASSWORD: "123456"
    ports:
      - "8090:8080"
    networks:
      - zabbix-net
    restart: unless-stopped
    depends_on:
      zabbix-server:
        condition: service_healthy

networks:
  zabbix-net:
    driver: bridge

也就是相当于综合在了一起

启动docker并执行文件,命令要在yml文件目录下执行

docker-compose up -d

等待安装完毕即可

然后继续安装zabbix-agent,和第一种方式的安装结果是一样的

此时查看一下我们的容器

docker ps

发现都在运行,我们访问一下我们的web,因为刚才创建web容器的时候,暴漏的端口号是8090,所以直接访问即可

也可以看到我们刚启动的一个zabbix-agent

可以看到我们的这个主机爆红,是因为我们还需要配置一个东西

进入配置

vim /etc/zabbix/zabbix_agentd.conf

在重新启动一下zabbix-agent,等一会在访问web页面

可以发现已经变成正常的绿色了

还是爆红就可以看看是否配置错误

点击进入

点击主机

看ip地址是否一样

创建主机

安装另一个zabbix-agent

在另一个虚拟机上只需安装一个zabbix-agent,也就是只需要一个zabbix-agent安装包,安装也和上面安装是一样的

安装完毕之后,进入etc/zabbix修改配置

ip地址要和前面的一台虚拟机一样

创建主机

名字要和我们配置的名字保持一致

选择正确的模块,ip地址不能错,这里ip地址要自己的ip

启动安装的zabbix-agent

此时就可以看到有两个,也是我们刚刚启动的主机

创建媒介

进入邮箱拿到授权码,可以使用163邮箱

拿到授权码后保存

进入设置开启服务

创建媒介

创建成功可以测试一下是否能发送邮件

显示成功媒介就没有多大的问题了

关联用户

添加完后不要忘了点击更新

添加动作

完成之后,我们随机关闭两个虚拟机中其中一个zabbix-agent

 

主机变红一段时间后,会出现一个深色的问题,点进去

可以看到邮箱已发送成功,然后再进入你的邮箱就可以看到发送的消息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值