集群监控Zabbix和Prometheus

news/2024/5/19 1:32:40 标签: zabbix, prometheus

文章目录

  • 一、Zabbix入门概述
    • 1、Zabbix概述
    • 2、Zabbix 基础架构
    • 3、Zabbix部署
      • 3.1 前提环境准备
      • 3.2 安装Zabbix
      • 3.3 配置Zabbix
      • 3.4 启动停止Zabbix
  • 二、Zabbix的使用与集成
    • 1、Zabbix常用术语
    • 2、Zabbix实战
      • 2.1 创建Host
      • 2.2 创建监控项(Items)
      • 2.3 创建触发器(Trigger)
      • 2.4 创建报警媒介类型(Media type)
      • 2.5 创建动作(Action)
      • 2.6 测试
      • 2.7 Zabbix模板创建
    • 3、集成Grafana入门
      • 3.1 部署Grafana
      • 3.2 集成Zabbix

一、Zabbix入门概述

1、Zabbix概述

Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能

2、Zabbix 基础架构

3、Zabbix部署

官网:https://www.zabbix.com/cn/download

3.1 前提环境准备

# 如果集群开启,先关闭集群。因为安装Zabbix前,需要重启虚拟机。如果之前弄过了就不需要了
cluster.sh stop
# 关闭防火墙(3台节点,已关闭)
sudo service iptables stop
sudo chkconfig iptables off

# 关闭SELinux(hadoop102)
# 修改配置文件/etc/selinux/config
sudo vim /etc/selinux/config
# 修改
SELINUX=disabled
# 重启服务器

# ================配置Zabbix yum源(3台节点)==========
# 安装yum仓库,安装zabbix的yum仓库,三台机器都要运行
sudo rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 安装Software Collections仓库
sudo yum install -y centos-release-scl


# =============修改zabbix仓库配置文件(三台节点)===========
# 修改为阿里云镜像
# 查看原始zabbix.repo文件
sudo cat /etc/yum.repos.d/zabbix.repo
# 执行以下命令完成全局替换
sudo sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
# 查看修改之后的zabbix.repo文件
sudo cat /etc/yum.repos.d/zabbix.repo

# 启用zabbix-web仓库,仅在102机器进行修改
# 打开/etc/yum.repos.d/zabbix.repo文件,做如下修改
[zabbix-frontend]
...
enabled=1
...

3.2 安装Zabbix

# 在hadoop102、hadoop103、hadoop104三台节点分别执行以下安装命令
sudo yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl
# hadoop103
sudo yum install -y zabbix-agent
# hadoop104
sudo yum install -y zabbix-agent

3.3 配置Zabbix

# 创建zabbix数据库
mysql -uroot -p123456 -e"create database zabbix character set utf8 collate utf8_bin"
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p123456 zabbix

# 配置Zabbix_Server(hadoop102)
# 修改zabbix-server配置文件
sudo vim /etc/zabbix/zabbix_server.conf
DBHost=hadoop102
DBName=zabbix
DBUser=root
DBPassword=123456

# 配置Zabbix_Agent(三台节点),server都写hadoop102
# 修改zabbix-agent配置文件
sudo vim /etc/zabbix/zabbix_agentd.conf
# 修改如下内容:使用被动模式,等待proxy查询,而不是主动发送
Server=hadoop102
#ServerActive=127.0.0.1
#Hostname=Zabbix server

# 配置Zabbix_Web时区,102
# 修改/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf文件
sudo vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
# 最后一行改
php_value[date.timezone] = Asia/Shanghai

3.4 启动停止Zabbix

# 102启动与停止
sudo systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
sudo systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
sudo systemctl stop zabbix-server zabbix-agent httpd rh-php72-php-fpm
sudo systemctl disable zabbix-server zabbix-agent httpd rh-php72-php-fpm
# 103,104启动与停止
sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent
sudo systemctl stop zabbix-agent
sudo systemctl disable zabbix-agent

然后连接Zabbix_Web数据库,浏览器访问http://hadoop102/zabbix/,然后按照步骤填写

最后登陆,用户名:Admin 密码:zabbix

二、Zabbix的使用与集成

1、Zabbix常用术语

  • 主机(Host)

    一台你想监控的网络设备,用IP或域名表示

  • 监控项(Item)

    你想要接收的主机的特定数据,一个度量数据

  • 触发器(Trigger)

    一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式

  • 动作(Action)

    一个对事件做出反应的预定义的操作,比如邮件通知

2、Zabbix实战

2.1 创建Host

  • 进入UI界面点击配置/主机/创建主机
  • 配置主机(Host),主机名称填写hadoop102,群组填写hadoop(自动新增),填写agent所在ip,保存,重复以上步骤,再创建hadoop103、hadoop104主机

2.2 创建监控项(Items)

文档资料:https://www.zabbix.com/documentation/5.0/zh/manual/config/items/itemtypes/zabbix_agent

在一台主机(例如hadoop102)点击监控项(Items),点击创建监控项(Create Item)配置监控项(Item)这里我以查询datanode的进程数为例,配置完成后即可查看监控项最新数据

2.3 创建触发器(Trigger)

  • 点击配置/主机/触发器
  • 点击创建触发器,编辑触发器

2.4 创建报警媒介类型(Media type)

点击管理/报警媒介类型/Email,编辑Email

然后在用户设置里Email绑定收件人

2.5 创建动作(Action)

点击配置/动作/创建动作,编辑动作(Action)

2.6 测试

# 关闭集群中的HDFS,会有如下效果
sbin/stop-dfs.sh
# 查看仪表盘与邮件

2.7 Zabbix模板创建

里面可以发现有很多已经内置好的模板,可以直接拿来使用。如果要自己创建,点击配置/模板/创建模板,配置模板名称/群组,配置监控项,配置触发器;然后配置动作,将这几个触发器连接到动作。最后去主机为hadoop103应用模板

3、集成Grafana入门

3.1 部署Grafana

官方仓库:https://dl.grafana.com/oss/release/grafana-7.4.3-1.x86_64.rpm

国内镜像:https://repo.huaweicloud.com/grafana/7.4.3/grafana-7.4.3-1.x86_64.rpm

wget https://repo.huaweicloud.com/grafana/7.4.3/grafana-7.4.3-1.x86_64.rpm
# 使用rpm安装Grafana
sudo rpm -ivh grafana-7.4.3-1.x86_64.rpm
# 启动Grafana
sudo systemctl start grafana-server
# 访问地址为:http://hadoop102:3000/
# 首次登录用户名和密码均为 admin

3.2 集成Zabbix

使用Grafana与其他系统集成时,需要配置对应的DataSource

# 搜索无法找到,需要先自行下载zabbix插件
# 拉到最下面或者访问:https://grafana.com/grafana/plugins/?utm_source=grafana_add_ds
# 按照所需插件的说明进行部署
sudo grafana-cli plugins install alexanderzobnin-zabbix-app
sudo systemctl restart grafana-server

# 然后点击plungin选择启动zabbix插件,之后数据源就可以找到该zabbix

下面举例一个集成案例,在Zabbix中为hadoop102主机应用一个Zabbix内置的Linux系统监控模板,选择主机hadoop102,点击模板,搜索linux,并选择Template OS Linux by Zabbix agent;下一步集成Grafana,展示模板中的系统监控项,选择要展示的监控项


http://www.niftyadmin.cn/n/5261151.html

相关文章

windows 服务器 怎么部署python 程序

一、要在 Windows 服务器上部署 Python 程序,您需要遵循以下步骤: 安装 Python:首先,在 Windows 服务器上安装 Python。您可以从官方网站(https://www.python.org/downloads/windows/)下载最新的 Python 安…

掌握Web、DNS、FTP、DHCP服务器的配置。掌握简单网络方案的规划和设计

1、Web服务器配置 2、综合设计 配置完后,所有的终端主机都要能够访问外网服务器,并进行测试。(本题可以自行选题,自行设计,但必须包含路由器、服务器(web、dns、DHCP、)、交换机及防火墙)。 3.做好规划并搭建拓扑图: 4.给PC机与服务器配置好IP,网关 5.给每个交换机…

信息学奥赛一本通 第四章 循环结构的程序设计第四节C语言非C++

第四章 循环结构的程序设计 第四节 循环嵌套 2026&#xff1a;【例4.12】阶乘和 #include <stdio.h>int main() {int n;scanf("%d", &n); //从标准输入读取nint sum 0, v; //v:某一阶乘项的值for(int i 1; i < n; i) //遍历1到n{v 1; //初始化v为…

Django之侧边栏抽取(inclusion_tag)

include和inclusion_tag的区别&#xff1a; 1、include&#xff1a;固定的&#xff0c;不能动态变化 2、inclusion_tag&#xff1a;返回一个动态的html片段 ----- 编写方式和自定义过滤器差不多 【1】编写步骤1 【1】在settings中得INSTALLED_APPS配置当前app&#xff0c;不然d…

Crow:黑魔法 添加路由3 绑定lambda

Crow:黑魔法2 new_rule_tagged实现模板参数的绑定-CSDN博客 template<uint64_t N> typename black_magic::arguments<N>::type::template rebind<TaggedRule>& new_rule_tagged(const std::string& rule) {using RuleT = typename black_magic::arg…

es6学习(一):变量声明的方式对比:var,let,const

前言 在let和const出现之前,js可以使用var为变量命令,如果是函数也可以用function命名,甚至你可以直接不用任何关键字命名 var a 1function fn() { }b 2console.log(a)console.log(fn)console.log(b) 结果如下 var的特性 1.window环境下,var在最外层定义的变量会直接赋值给…

【Python测试开发】文件上传操作

先写一个上传页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文件上传</title><link href"http://dcn.bootcss/bootstrap/3.3.0/css/bootstrap.min.css" rel"styleshee…

数字开关:晶体管饱和和强制 Beta

内附链接 1、USB转SPI_I2C适配器(专业版); 晶体管通常用作数字电路中的受控开关。例如&#xff0c;晶体管可以用作缓冲器&#xff0c;允许微控制器激活继电器或LED。对于这些数字应用&#xff0c;我们希望晶体管饱和&#xff0c;以便集电极到发射极出现短路&#xff1b;就像闭合…