參考:
Apache Ambari User Guidehtml
本地模式 使用HBase的本地存儲模式。默認模式。node
分佈式模式 修改Advanced ams-hbase-site:將hbase.rootdir修改成hdfs://<namenode>:<port>/user/ams/hbase;將dfs.client.read.shortcircuit改成trueredis
注意: 若是啓用了HDFS的HA,不能直接鏈接某一個NameNode,鏈接HDFS的地址爲hdfs: sql
//hdfsnameservice/apps/ams/metrics
su - hdfs -c 'hdfs dfs -copyFromLocal/var/lib/ambari-metrics-collector/hbase/* /apps/ams/metrics' su - hdfs -c 'hdfs dfs -chown -R ams:hadoop/apps/ams/metrics'
phoenix表 表名 | 描述 | 清理時間(默認) ---|---|--- METRIC_RECORD | 用於記錄每一個機器上收集的每一個 Metrics 屬性 | 1天 METRIC_RECORD_MINUTE | 聚合統計每一個機器上的Metrics屬性 | 1周 METRIC_RECORD_HOURLY | 聚合統計每一個機器上的Metrics屬性 |30天 METRIC_RECORD_DAILY | 聚合統計每一個機器上的Metrics屬性 |1年 METRIC_AGGREGATE | 聚合統計全部機器上的Metrics屬性(集羣) | 1周 METRIC_AGGREGATE_MINUTE | 聚合統計全部機器上的Metrics屬性(集羣) | 30天 METRIC_AGGREGATE_HOURLY | 聚合統計全部機器上的Metrics屬性(集羣) | 1年 METRIC_AGGREGATE_DAILY | 聚合統計全部機器上的Metrics屬性(集羣) | 2年 shell
該表是全部表中惟一存儲實際metrics數據的表,其它表都是在此表的基礎之上進行時間段的相應統計。數據庫
針對採集的hosts指標,即由monitor發送的指標值apache
針對採集的hadoopsink指標json
#!/bin/sh url=http://$1:6188/ws/v1/timeline/metrics while [ 1 ] do #A=$(redis-cli info | grep total_connections_received: | awk -F ':' '{print $2}') #echo $A > abc.txt #sed -i 's/\r//' abc.txt #A=$(head -1 abc.txt) millon_time=$(( $(date +%s%N) / 1000000 )) A=`expr $RANDOM % 10` json="{ \"metrics\": [ { \"metricname\": \"$2\", \"appid\": \"$3\", \"hostname\": \"localhost\", \"timestamp\": ${millon_time}, \"starttime\": ${millon_time}, \"metrics\": { \"${millon_time}\": ${A} } } ] }" echo $json | tee -a /root/my_metric.log curl -i -X POST -H "Content-Type: application/json" -d "${json}" ${url} sleep 3 done
全部經過metrics的rest接口上報的數據能存入AMS的HBase數據庫。緩存
metrics.json中配置的可以經過url來獲取。服務器
widget.json中作好相應的配置後才能在ambari-server的Web UI中顯示。
結果: Ambari的界面上的redis無監控圖表。
問題排查
全部格式正確且與Metrics Collector時間差符合存儲要求的數據可以經過POST發送到Metrics Collector,並存儲到HBase中,無論是否在metrics.json文件中進行配置。可是沒法經過GET請求獲取到該數據。
ganglia原生支持Hadoop、Hbase的性能監控。