bigdata_13_集群监控_Zabbix

1 Zabbix概述

虽然一些框架都配置了HA高可用,但是还是很有必要监控集群的健康状态。

Zabbix是一款能够监控各种网络参数服务器健康性和完整性的软件。Zabbix可以用来监控硬件配置如:CPU、内存、磁盘等;可以用来监控软件的监控健康情况如:namenode、datanode等。

Zabbix具有灵活的通知机制,允许用户为任何事件配置基于邮件的告警。也可以集成睿象云。

Zabbix基于已存储的数据(元数据)(存储到数据库中),提供了出色的报告数据可视化功能。

1.1 Zabbix基础架构

Zabbix-agent:部署在待监控的服务器上的

Zabbix-server:收集监控数据,判断是否达到触发器条件,如果达到触发器条件,会发送通知

Database:1存储收集到的监控信息;2 存储所有的配置信息(监控哪些信息)

Zabbix-Web:1 用户操作界面;2 展示监控信息

image-20210116192820124

2 Zabbix部署安装

2.1 集群规划

进程 hadoop102节点 hadoop103节点 hadoop104节点
zabbix-agent
zabbix-server
MySQL
zabbix-web

2.2 准备工作

①关闭集群

如果集群开启,先关闭集群。因为安装Zabbix前,需要重启虚拟机。

[atguigu@hadoop102 yanagishima-18.0]$ myhadoop.sh stop

②关闭防火墙(三台节点)

# 查看防火墙状态
[atguigu@hadoop102 yanagishima-18.0]$ systemctl status firewalld
# 关闭防火墙
[atguigu@hadoop102 yanagishima-18.0]$ systemctl stop firewalld
[atguigu@hadoop102 yanagishima-18.0]$ systemctl disable firewalld

③关闭SELinux(hadoop102)

SELinux是什么?

是Linux的一个增强型安全模块,一般情况是不配置,直接关掉。

为什么要关掉SELinux?

zabbix-web是使用的PHP开发的,它的web容器是apache,目的是给apache关闭。如果不关闭访问web页面的时候,会有权限问题!

flume的监控工具ganglia也是用PHP apache容器开发的,也需要关闭。

修改配置文件:/etc/selinux/config

[atguigu@hadoop102 yanagishima-18.0]$ sudo vim /etc/selinux/config 

修改如下内容:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

④重启服务器(hadoop102)

[atguigu@hadoop102 yanagishima-18.0]$ sudo reboot

2.3 配置Zabbix yum源(3台节点)

从yum install安装的安装包,其实都是从这些repo文件中的远程仓库下载的。

系统自带的repo是没有zabbix安装包的,需要安装一个zabbix远程仓库地址。

image-20210116201130444

步骤1:配置zabbix远程仓库

[atguigu@hadoop102 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

[atguigu@hadoop103 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

[atguigu@hadoop104 ~]$ sudo rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

这个时候会在当前路径下多出来一个:zabbix.repo

如何配置zabbix的阿里云镜像呢?

image-20210116201740985

image-20210116201814889

步骤2:修改为阿里云镜像

修改zabbix.repo文件:

-i 是指修改文件后写回;

s 是替换

g 全局

[atguigu@hadoop102 yum.repos.d]$ sudo sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo

image-20210116202928765

2.4 安装zabbix

安装zabbix:hadoop102需要安装zabbix-agent、zabbix-server-mysql、zabbix-web-mysql

​ hadoop103、hadoop104需要安装zabbix-agent

[atguigu@hadoop102 ~]$ sudo yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent

[atguigu@hadoop103 ~]$ sudo yum -y install zabbix-agent

[atguigu@hadoop104 ~]$ sudo yum -y install zabbix-agent

2.5 配置Zabbix

步骤1:创建zabbix数据库

其中-e””和hive一样,是不用登录到mysql客户端就能执行sql语句。

[atguigu@hadoop102 ~]$ mysql -uroot -p123456 -e"create database zabbix character set utf8 collate utf8_bin"

步骤2:导入zabbix建表语句

zcat是指将某个gz包 解压后输出到控制台,使用 | 管道符输出到mysql的zabbix这个库。

[atguigu@hadoop102 ~]$ zcat /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz | mysql -uroot -p123456 zabbix

查看所建的表:149张

image-20210116204713023

步骤3:配置Zabbix_Server(hadoop102)

修改**/etc/zabbix/zabbix_server.conf**文件,配置数据库,因为zabbix-server用来收集集群信息、配置信息存到数据库。

[atguigu@hadoop102 ~]$ sudo vim /etc/zabbix/zabbix_server.conf
DBHost=hadoop102
DBName=zabbix
DBUser=root
DBPassword=000000

步骤4:配置Zabbix_Agent(三台节点)

修改/etc/zabbix/zabbix_agentd.conf文件,配置zabbix-server

[atguigu@hadoop102 ~]$ sudo vim /etc/zabbix/zabbix_agentd.conf
Server=hadoop102
#ServerActive=127.0.0.1
#Hostname=Zabbix server

步骤5:配置Zabbix_Web时区

修改**/etc/httpd/conf.d/zabbix.conf文件**

[atguigu@hadoop102 ~]$ sudo vim /etc/httpd/conf.d/zabbix.conf
        # php_value date.timezone Europe/Riga
		php_value date.timezone Asia/Shanghai

2.6 启动停止Zabbix

步骤1:启动Zabbix

[atguigu@hadoop102 ~]$ sudo systemctl start zabbix-server zabbix-agent httpd
[atguigu@hadoop102 ~]$ sudo systemctl enable zabbix-server zabbix-agent httpd

[atguigu@hadoop103 ~]$ sudo systemctl start zabbix-agent
[atguigu@hadoop103 ~]$ sudo systemctl enable zabbix-agent

[atguigu@hadoop104 ~]$ sudo systemctl start zabbix-agent
[atguigu@hadoop104 ~]$ sudo systemctl enable zabbix-agent

步骤2:连接Zabbix_Web数据库

浏览器访问Zabbix Web页面:http://hadoop102/zabbix

PHP环境是否正常

image-20210116210938805

配置数据库

image-20210116211030655

配置Zabbix-server

image-20210116211057637

image-20210116211112340

配置完成,如果配置错误,可以按照提示,修改/etc/zabbix/web/zabbix.conf.php文件

image-20210116211210068

步骤3:登录Zabbix

用户名:Admin 密码:zabbix

image-20210116211354475

image-20210116211439953

停止Zabbix

[atguigu@hadoop102 ~]$ sudo systemctl stop zabbix-server zabbix-agent httpd
[atguigu@hadoop102 ~]$ sudo systemctl disable zabbix-server zabbix-agent httpd

[atguigu@hadoop103 ~]$ sudo systemctl stop zabbix-agent
[atguigu@hadoop103 ~]$ sudo systemctl disable zabbix-agent

[atguigu@hadoop104 ~]$ sudo systemctl stop zabbix-agent
[atguigu@hadoop104 ~]$ sudo systemctl disable zabbix-agent

3 Zabbix使用

3.1 Zabbix术语

① 主机Host

要监控的网络设备,主机(用IP或域名表示)

② 监控项Item

要监控的主机的特定的数据,一个度量数据。比如:内存

③ 触发器Trigger

用来定于数据阈值 和 评估监控项接收到的数据的逻辑表达式

监控项要和触发器是一一对应的。

④ 动作Action

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

3.2 配置主机Host

image-20210116213414312

image-20210116213452238

image-20210116213644774

3.3 配置监控项Item

监控datanode进程,得使用启动datanode的命令,通过ps -ef 查看,我们使用的监控项,使用cmdline确定是监控哪个进程,所以需要在ps -ef 的结果中找到能够唯一定位datanode进程的标识。就是datanode即可。

image-20210116233011674

image-20210116233528504

image-20210116232118022

键值应该填写:proc.num[,all,datanode]

更新间隔:5s,为了方便看到效果

image-20210116233808103

查看监控的结果

image-20210116234602289

停掉datanode进程后:

[atguigu@hadoop102 sbin]$ hadoop-daemon.sh stop datanode
WARNING: Use of this script to stop HDFS daemons is deprecated.
WARNING: Attempting to execute replacement "hdfs --daemon stop" instead.

image-20210116234725018

3.4 配置触发器Trigger

image-20210116235517792

image-20210117000009320

image-20210116235829725

3.5 配置动作Action

image-20210117002400347

image-20210117002544053

把邮件发送给谁

image-20210117002856827

image-20210117002926468

添加admin管理员的信息(以管理员邮箱发送消息)

image-20210117003114333

3.6 创建报警媒介类型Media type

创建邮件通知

准备一个邮箱;开启SMTP服务;拿到邮箱地址和第三方授权码;在zabbix中登录,通过邮箱往外界发送邮件。

image-20210117000926706

image-20210117000801745

测试邮箱

image-20210117001126728

使用SMTPS服务

加密的SMTP服务使用的是465端口;azkaban不支持ssl加密,zabbix支持ssl加密。

image-20210117001612376

3.7 测试

停掉hadoop102上的datanode进程

[atguigu@hadoop102 sbin]$ hdfs --daemon stop datanode

可以收到邮件~

image-20210117003242159

4 Zabbix模板

1)点击配置/模板/创建模板

image-20210117004525391

2)配置模板名称/群组

image-20210117004626363

3)配置监控项

image-20210117004758735

4)配置触发器

image-20210117004835190

image-20210117004901818

5)配置动作

image-20210117005032331

image-20210117005047507

6)配置模板

image-20210117005256448

image-20210117005324987

7)测试
(1)启动hadoop集群

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

​ (2)停止hadoop集群

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/stop-dfs.sh

​ (3)查看报警邮件

image-20210117005419689

猜你喜欢

转载自blog.csdn.net/qq_43523503/article/details/112760299