文章目录
概述
- 大数据集群监控,包括资源监控和进程监控
监控的资源如:内存、CPU、硬盘、硬盘IO…
监控的进程如:NameNode、DataNode…
| 监控项 | 示例命令 |
|---|---|
| 内存 | free |
| CPU | top |
| 硬盘 | df、du |
| 进程 | top、ps |
| 硬盘IO | iotop |
| YARN资源 | yarn top |
| HDFS硬盘使用 | hadoop fs -df、hadoop fs -du -s |
-
使用命令不能满足需求,我们需要报警功能以及友好的用户界面,于是引入Zabbix
-
Zabbix是企业级开源监控解决方案
支持实时监控数万台服务器、虚拟机和网络设备,采集百万级监控指标
Zabbix架构简图
Zabbix部署
| 部署规划 | hadoop105 | hadoop106 | hadoop107 |
|---|---|---|---|
| zabbix-agent | 1 | 1 | 1 |
| zabbix-server | 1 | ||
| zabbix-web | 1 |
下述操作使用root,非root用户需要sudo
1、安全相关配置
关闭防火墙(所有节点)
systemctl disable firewalld
systemctl stop firewalld
关闭 SELinux(zabbix-server所在节点)
vim /etc/selinux/config
SELINUX=disabled
关闭 SELinux 后,按需重启
reboot
2、安装Zabbix
配置Zabbix的yum源(所有节点)
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
安装Software Collections仓库(所有节点)
yum install -y centos-release-scl
修改Zabbix的yum源配置,使用阿里云镜像(所有节点)(可选)
sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
修改Zabbix的yum源配置,批准Zabbix前端(zabbix-web所在节点)
vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
enabled=1
安装zabbix-server、zabbix-web、web容器(hadoop105)
yum install -y zabbix-server-mysql zabbix-web-mysql-scl zabbix-apache-conf-scl
安装zabbix-agent(所有节点)
yum install -y zabbix-agent
3、配置Zabbix
在MySQL建库,用于存储Zabbix的数据(数据库所在节点,本文为hadoop105)
mysql -uroot -p123456 -e'create database zabbix character set utf8 collate utf8_bin'
导入Zabbix建表语句
zcat /usr/share/doc/zabbix-server-mysql-5.0.*/create.sql.gz | mysql -uroot -p密码 zabbix
配置Zabbix-Server的数据库连接参数(hadoop105)
vim /etc/zabbix/zabbix_server.conf
DBHost=hadoop105
DBName=zabbix
DBUser=root
DBPassword=123456
配置Zabbix-Web时区(hadoop105)
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
配置Zabbix-Agent地址(所有节点)
vim /etc/zabbix/zabbix_agentd.conf
Server=hadoop105
Zabbix-Web的数据库连接配置等下去页面配
4、启动Zabbix
启动zabbix-server和Zabbix前端(hadoop105)
systemctl start zabbix-server httpd rh-php72-php-fpm
systemctl enable zabbix-server httpd rh-php72-php-fpm
systemctl status zabbix-server httpd rh-php72-php-fpm
启动zabbix-agent(所有节点)
systemctl start zabbix-agent
systemctl enable zabbix-agent
systemctl status zabbix-agent
5、首次访问前端用户界面
- 浏览器访问
http://hadoop105/zabbix/(没写端口是因为它默认80) - 配置数据库连接参数,和上面一致
- Zabbix server,
Host填hadoop105 - 初始用户名
Admin密码zabbix - 页面左下角
User settings设置中文和修改密码

Zabbix使用
| 主要内容 | 外文名 | 说明 |
|---|---|---|
| 主机 | Host | 需要监控的网络设备,用IP或域名表示 |
| 监控项 | Item | 例如:内存、CPU、硬盘、进程… |
| 触发器 | Trigger | 一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式 |
| 动作 | Action | 一个对事件做出反应的预定义的操作,例如:邮件通知 |
1、创建主机
- 配置->主机群组->创建主机群组
- 配置->主机->创建主机
IP地址写内网地址
绑定主机群组 - 配置->主机->
Zabbix server
修改IP地址
2、创建监控项
配置->主机
监控硬盘

监控内存

| 常用内存参数 | 说明 |
|---|---|
| total | 总物理内存 |
| free | 可用内存 |
| active | 内存当前使用或最近使用,所以它在RAM中 |
| inactive | 未使用内存 |
| wired | 被标记为始终驻留在RAM中的内存,不会移动到磁盘 |
| buffers | 缓存文件系统元数据 |
| cached | 缓存为不同事情 |
| shared | 可以同时被多个进程访问的内存 |
| used | a c t i v e + w i r e d active + wired active+wired |
| pused | ( a c t i v e + w i r e d ) / t o t a l × 100 % (active + wired) / total \times 100 \% (active+wired)/total×100% |
| available | i n a c t i v e + c a c h e d + f r e e inactive + cached + free inactive+cached+free |
| pavailable | ( i n a c t i v e + c a c h e d + f r e e ) / t o t a l × 100 % (inactive + cached + free) / total \times 100 \% (inactive+cached+free)/total×100% |
监控CPU

监控进程
以监控NameNode为例,先查看NameNode的命令行
ps -ef | grep datanode

再去页面配置proc.num[<name>,<user>,<state>,<cmdline>],条件越多匹配越精准

3、触发器
配置->主机
触发规则示例:最后一次NameNode监测值<1

4、动作

Zabbix仪表盘

Appendix
- RPM软件包管理器(Red-Hat Package Manager)
红帽软件包管理器
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件 - YUM(Yellow dog Updater, Modified)
一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器
基于RPM包管理,能够从指定的服务器自动下载RPM包以及安装,并可以自动处理依赖关系 - YUM源
源,是指软件安装包的来源,也称软件仓库
YUM源:使用YUM时,这个软件安装包的来源 .repo文件
是Fedora中YUM源的配置文件
定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包
补充:连MySQL8报错
查看日志
cat /var/log/zabbix/zabbix_server.log
日志内容
connection to database 'zabbix' failed:
[2059] Authentication plugin 'caching_sha2_password' cannot be loaded:
/usr/lib64/mysql/plugin/caching_sha2_password.so:
cannot open shared object file: No such file or directory
Cannot connect to the database. Exiting...
解决方法:创建mysql_native_password加密规则的用户
CREATE USER 'zabbix'@'%' IDENTIFIED WITH mysql_native_password BY 'ie.F9527';
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
FLUSH PRIVILEGES;



3794



被折叠的 条评论
为什么被折叠?



