目录大纲
Part01-基础概念与理论知识
1.1 监控系统概述
监控系统是指对Hadoop集群的各项指标进行实时监控,及时发现和解决问题的系统。监控系统主要包括数据采集、数据存储、数据展示和告警四个部分。更多视频教程www.fgedu.net.cn
1.2 Hadoop监控指标
- HDFS指标:磁盘使用情况、块状态、NameNode状态等
- YARN指标:资源使用情况、作业状态、NodeManager状态等
- MapReduce指标:作业执行情况、任务状态等
- 系统指标:CPU、内存、磁盘、网络等
1.3 告警系统原理
告警系统是指当监控指标超过阈值时,通过邮件、短信、微信等方式通知运维人员的系统。告警系统主要包括告警规则配置、告警触发和告警通知三个部分。学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 监控架构设计
# 数据采集层 → 数据存储层 → 数据展示层 → 告警层
# 数据采集:Node Exporter、JMX Exporter、Prometheus
# 数据存储:Prometheus、InfluxDB
# 数据展示:Grafana、Zabbix
# 告警:Alertmanager、Zabbix告警
2.2 监控工具选型
推荐使用Prometheus + Grafana作为主要监控工具,Zabbix作为辅助监控工具。风哥提示:不同的监控工具各有优缺点,应根据实际需求选择合适的工具。
2.3 告警策略制定
# 1. 紧急告警:集群节点故障、服务不可用
# 2. 重要告警:资源使用率超过80%、作业失败
# 3. 警告告警:资源使用率超过60%、作业执行缓慢
# 4. 通知方式:紧急告警通过短信和电话,重要告警通过邮件和微信,警告告警通过邮件
Part03-生产环境项目实施方案
3.1 监控系统部署
[root@fgedu.net.cn ~]# wget
https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
[root@fgedu.net.cn ~]# tar -zxvf prometheus-2.37.0.linux-amd64.tar.gz
[root@fgedu.net.cn ~]# mv prometheus-2.37.0.linux-amd64 /bigdata/app/prometheus
# 安装Grafana
[root@fgedu.net.cn ~]# yum install -y grafana
[root@fgedu.net.cn ~]# systemctl start grafana-server
[root@fgedu.net.cn ~]# systemctl enable grafana-server
# 安装Node Exporter
[root@fgedu.net.cn ~]# wget
https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
[root@fgedu.net.cn ~]# tar -zxvf node_exporter-1.3.1.linux-amd64.tar.gz
[root@fgedu.net.cn ~]# mv node_exporter-1.3.1.linux-amd64 /bigdata/app/node_exporter
[root@fgedu.net.cn ~]# /bigdata/app/node_exporter/node_exporter &
# 安装JMX Exporter
[root@fgedu.net.cn ~]# wget
https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.16.1/jmx_prometheus_javaagent-0.16.1.jar
[root@fgedu.net.cn ~]# mv jmx_prometheus_javaagent-0.16.1.jar /bigdata/app/jmx_exporter/
3.2 监控指标配置
[root@fgedu.net.cn ~]# vi /bigdata/app/prometheus/prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
– job_name: ‘node’
static_configs:
– targets: [‘fgedu.net.cn:9100’]
– job_name: ‘hadoop’
static_configs:
– targets: [‘fgedu.net.cn:9150’]
– job_name: ‘hdfs’
static_configs:
– targets: [‘fgedu.net.cn:9160’]
– job_name: ‘yarn’
static_configs:
– targets: [‘fgedu.net.cn:9170’]
# 配置Hadoop JMX
[root@fgedu.net.cn ~]# vi /bigdata/app/hadoop/etc/hadoop/hadoop-env.sh
export HADOOP_NAMENODE_OPTS=”$HADOOP_NAMENODE_OPTS
-javaagent:/bigdata/app/jmx_exporter/jmx_prometheus_javaagent-0.16.1.jar=9160:/bigdata/app/jmx_exporter/hdfs.yml”
export HADOOP_DATANODE_OPTS=”$HADOOP_DATANODE_OPTS
-javaagent:/bigdata/app/jmx_exporter/jmx_prometheus_javaagent-0.16.1.jar=9161:/bigdata/app/jmx_exporter/hdfs.yml”
export YARN_RESOURCEMANAGER_OPTS=”$YARN_RESOURCEMANAGER_OPTS
-javaagent:/bigdata/app/jmx_exporter/jmx_prometheus_javaagent-0.16.1.jar=9170:/bigdata/app/jmx_exporter/yarn.yml”
export YARN_NODEMANAGER_OPTS=”$YARN_NODEMANAGER_OPTS
-javaagent:/bigdata/app/jmx_exporter/jmx_prometheus_javaagent-0.16.1.jar=9171:/bigdata/app/jmx_exporter/yarn.yml”
3.3 告警系统配置
[root@fgedu.net.cn ~]# vi /bigdata/app/prometheus/alertmanager.yml
global:
smtp_smarthost: ‘smtp.163.com:25’
smtp_from: ‘alertmanager@fgedu.net.cn’
smtp_auth_username: ‘alertmanager@fgedu.net.cn’
smtp_auth_password: ‘password’
route:
group_by: [‘alertname’]
group_wait: 30s
group_interval: 5m
repeat_interval: 1h
receiver: ’email’
receivers:
– name: ’email’
email_configs:
– to: ‘ops@fgedu.net.cn’
send_resolved: true
# 配置告警规则
[root@fgedu.net.cn ~]# vi /bigdata/app/prometheus/rules/hadoop_rules.yml
groups:
– name: hadoop_alerts
rules:
– alert: NamenodeDown
expr: up{job=”hdfs”} == 0
for: 5m
labels:
severity: critical
annotations:
summary: “Namenode down”
description: “Namenode {{ $labels.instance }} is down”
– alert: DiskUsageHigh
expr: (node_filesystem_size_bytes{mountpoint=”/”} – node_filesystem_free_bytes{mountpoint=”/”}) /
node_filesystem_size_bytes{mountpoint=”/”} * 100 > 80
for: 10m
labels:
severity: warning
annotations:
summary: “Disk usage high”
description: “Disk usage on {{ $labels.instance }} is {{ $value }}%”
Part04-生产案例与实战讲解
4.1 Prometheus + Grafana监控系统
案例背景
某企业需要构建Hadoop集群监控系统,实时监控集群状态,及时发现和解决问题。
实施步骤
- 部署Prometheus和Grafana
- 配置Node Exporter和JMX Exporter
- 配置监控指标和告警规则
- 创建Grafana dashboard
- 测试告警功能
实施效果
监控系统部署完成后,运维人员可以通过Grafana dashboard实时查看集群状态,当出现问题时及时收到告警通知,提高了集群的可靠性和可用性。from bigdata视频:www.itpux.com
4.2 Zabbix监控系统
[root@fgedu.net.cn ~]# rpm -ivh
https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
[root@fgedu.net.cn ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
# 配置Zabbix
[root@fgedu.net.cn ~]# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by ‘password’;
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
[root@fgedu.net.cn ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
[root@fgedu.net.cn ~]# vi /etc/zabbix/zabbix_server.conf
DBPassword=password
# 启动Zabbix
[root@fgedu.net.cn ~]# systemctl start zabbix-server zabbix-agent httpd
[root@fgedu.net.cn ~]# systemctl enable zabbix-server zabbix-agent httpd
4.3 自定义监控脚本
#!/bin/bash
# hadoop_monitor.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 导出环境变量
export HADOOP_HOME=/bigdata/app/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
# 检查HDFS状态
echo “检查HDFS状态…”
hdfs dfsadmin -report
# 检查YARN状态
echo “检查YARN状态…”
yarn node -list
# 检查MapReduce作业
echo “检查MapReduce作业…”
mapred job -list
# 检查磁盘使用情况
echo “检查磁盘使用情况…”
df -h
# 检查内存使用情况
echo “检查内存使用情况…”
free -h
# 检查CPU使用情况
echo “检查CPU使用情况…”
top -b -n 1 | head -n 10
Part05-风哥经验总结与分享
5.1 监控最佳实践
- 全面监控:监控所有关键指标,包括系统指标和应用指标
- 实时监控:设置合理的采集间隔,确保数据的实时性
- 分层监控:根据指标的重要性设置不同的监控级别
- 可视化:使用Grafana等工具创建直观的监控dashboard
- 告警分级:根据问题的严重程度设置不同级别的告警
5.2 告警优化技巧
# 1. 合理设置阈值:根据实际情况设置合理的告警阈值
# 2. 避免告警风暴:设置告警抑制和聚合,避免大量告警同时触发
# 3. 告警验证:对告警进行验证,避免误告警
# 4. 告警升级:设置告警升级机制,确保严重问题得到及时处理
# 5. 告警统计:定期分析告警数据,优化告警策略
5.3 常见问题与解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 监控数据采集失败 | 网络故障或配置错误 | 检查网络连接,验证配置 |
| 告警误报 | 阈值设置不当或监控数据异常 | 调整告警阈值,检查监控数据 |
| 监控系统性能问题 | 数据量过大或资源不足 | 增加系统资源,优化数据存储 |
| 告警通知失败 | 通知配置错误或网络故障 | 检查通知配置,测试网络连接 |
通过Hadoop集群监控与告警系统的实施,可以实时监控集群状态,及时发现和解决问题,提高集群的可靠性和可用性,为业务提供稳定的大数据处理服务。学习交流加群风哥QQ113257174
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
