概述
- 大数据集群监控,包括资源监控和进程监控
监控的资源如:内存、CPU、硬盘、硬盘IO… 监控的进程如:NameNode 、DataNode …
监控项 | 示例命令 |
---|
内存 | free | CPU | top | 硬盘 | df 、du | 进程 | top 、ps | 硬盘IO | iotop | YARN资源 | yarn top | HDFS硬盘使用 | hadoop fs -df |
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 (所有节点)
ssh hadoop103 yum install -y zabbix-agent
3、配置Zabbix
在MySQL建库,用于存储Zabbix的数据(数据库所在节点,本文为hadoop105 )
mysql -uroot -p123456 -e"create database zabbix character set utf8 collate utf8_bin"
配置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
启动zabbix-agent (所有节点)
systemctl start zabbix-agent
5、首次访问前端用户界面
浏览器访问http://hadoop105/zabbix/ (没写端口是因为它默认80 ) 配置数据库连接参数,和上面一致 初始用户名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仪表盘
监测
仪表盘
创建仪表盘
添加构件
类型
图形
选择主机及其监控项
|