HDFS & Yarn 即Hadoop by Jmx on Promethues + Grafana的監(jiān)控(二) —— Promethues數(shù)據(jù)源配置

注意:如果還未安裝Promethues,參考HDFS & Yarn on Promethues + Grafana的監(jiān)控(一) —— Promethues的安裝

一、配置Promethues的數(shù)據(jù)源

1、下載jmx_prometheus_javaagent-0.13.0.jar包:

wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.13.0/jmx_prometheus_javaagent-0.13.0.jar

2、配置jmx和promethues的連接

(1)創(chuàng)建一個(gè)文件夾并在這個(gè)文件夾下創(chuàng)建不同jmx的配置yaml(此步驟在各自的節(jié)點(diǎn)都要有這個(gè)配置文件)

a、創(chuàng)建文件夾

cd /data
mkdir hdfs

b、在/data/hdfs/目錄下創(chuàng)建NameNode的JMX配置文件 (此步驟在各自的節(jié)點(diǎn)都要有這個(gè)配置文件)

vim /data/hdfs/nn.yaml

startDelaySeconds: 0
hostPort: 10.21.0.86:6444
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

c、在/data/hdfs/目錄下創(chuàng)建DateNode的JMX配置文件 (此步驟在各自的節(jié)點(diǎn)都要有這個(gè)配置文件)

vim /data/hdfs/dn.yaml

startDelaySeconds: 0
hostPort: 10.21.0.86:6454
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

d、在/data/hdfs/目錄下創(chuàng)建ResourceManager的JMX配置文件 (此步驟在各自的節(jié)點(diǎn)都要有這個(gè)配置文件)

vim /data/hdfs/rm.yaml

tartDelaySeconds: 0
#master為本機(jī)IP(一般可設(shè)置為localhost);6464為想設(shè)置的jmx端口
hostPort: 10.21.0.86:6464
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

e、在/data/hdfs/目錄下創(chuàng)建NodeManager的JMX配置文件 (此步驟在各自的節(jié)點(diǎn)都要有這個(gè)配置文件)

vim /data/hdfs/nm.yaml

startDelaySeconds: 0
#master為本機(jī)IP(一般可設(shè)置為localhost);6474為想設(shè)置的jmx端口(可設(shè)置為未被占>用的端口)
hostPort: 10.21.0.86:6474
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false

(2)CDH版本&開(kāi)源社區(qū)版本集群都建議這么弄:

a、修改hadoop的bin/hdfs這個(gè)啟動(dòng)命令文件,只需在上方加入下面這個(gè)環(huán)境變量

cdh的目錄在這:/opt/cloudera/parcels/CDH/lib/hadoop-hdfs/bin/hdfs

##hdfs jmx monitor##
#######################
export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=6444 -javaagent:/data/hdfs/jmx_prometheus_javaagent-0.13.0.jar=17106:/data/hdfs/nn.yaml $HADOOP_NAMENODE_OPTS"
export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=6454 -javaagent:/data/hdfs/jmx_prometheus_javaagent-0.13.0.jar=17107:/data/hdfs/dn.yaml $HADOOP_DATANODE_OPTS"
#######################

b、在/opt/cloudera/parcels/CDH/lib/hadoop-yarn/bin/yarn

##yarn jmx monitor##
#######################
export YARN_RESOURCEMANAGER_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=6464 -javaagent:/data/hdfs/jmx_prometheus_javaagent-0.13.0.jar=17104:/data/hdfs/rm.yaml $YARN_RESOURCEMANAGER_OPTS"
export YARN_NODEMANAGER_OPTS="-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=6474 -javaagent:/data/hdfs/jmx_prometheus_javaagent-0.13.0.jar=17105:/data/hdfs/nm.yaml $YARN_NODEMANAGER_OPTS"
#######################

注意:當(dāng)然也可以參考其他大佬配置在/etc/hadoop/conf/hadoop-env.sh里添加這些配置,個(gè)人不喜歡去改命令,建議添加環(huán)境變量即可

(3)在promethues進(jìn)行配置(我的promethues的目錄是在/usr/local下面)

注意:像下面a、b這樣的好處是修改target監(jiān)控的節(jié)點(diǎn)是不用重啟Promethues的,而直接配置在prometheus.yml是需要重啟的

a、在promethues的目錄下建個(gè)configs目錄,再寫好target的json配置文件

mkdir configs
cd configs

vim nn.json
--------------------------------------------------
[
 {
  "targets": ["nn的host:17106"]
 }
]
--------------------------------------------------

vim dn.json
--------------------------------------------------
[
 {
  "targets": ["dn1的host:17107","dn2的host:17107","dn3的host:17107"]
 }
]
--------------------------------------------------

vim rm.json
--------------------------------------------------
[
 {
  "targets": ["rm1host:17104","rm2host:17104"]
 }
]
--------------------------------------------------

vim nm.json
--------------------------------------------------
[
 {
  "targets": ["nm1host:17105","nm2host:17105","nm3host:17105"]
 }
]
--------------------------------------------------

b、再在promethues目錄下修改prometheus.yml文件

vim prometheus.yml  
  
  - job_name: 'yarn-rm'
    file_sd_configs:
    - files:
      - configs/rm.json

  - job_name: 'yarn-nm'
    file_sd_configs:
    - files:
      - configs/nm.json

(4)重啟prometheus

$ systemctl restart prometheus

二、驗(yàn)證數(shù)據(jù)源是否配置成功

1、驗(yàn)證是否配置成功,有兩種方式:

(1)根據(jù)剛才配置target路徑訪問(wèn)測(cè)試,如果有放回一堆數(shù)據(jù),說(shuō)明配置成功

curl "[http://rm1host:17104/metrics](http://localhost:17107/metrics)"

返回:
# HELP jmx_exporter_build_info A metric with a constant '1' value labeled with the version of the JMX exporter.
# TYPE jmx_exporter_build_info gauge
jmx_exporter_build_info{version="0.13.0",name="jmx_prometheus_javaagent",} 1.0
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 266.8
# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
# TYPE process_start_time_seconds gauge
process_start_time_seconds 1.611046723427E9
# HELP process_open_fds Number of open file descriptors.

。。。。**等等 **

(2)或者訪問(wèn)Promethues的9090端口,查看target是否正常。

點(diǎn)擊Status再點(diǎn)擊Target看是否是綠色,紅色則是配置失敗

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-oKewO9cW-1611311044018)(https://secure-static.wolai.com/static/82j7NqcK7KoNakU8AXuouS/image.png)]

三、配置Grafana

參考我的另外一篇文章 HDFS & Yarn on Promethues + Grafana的監(jiān)控(三) —— Grafana的Dashboard配置(以 Yarn 為例)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容