JMX agentでhadoopのNameNodeから値を取得したときのメモ

hadoop 0.20.3
zabbix 2.0.0

結局はJMXがbindするIPを指定するのが難しくJMX agentとリモートホストの疎通がうまくとれなかったので
別の方法(zabbix agentのuserparameter)でモニタリングしてます。


以下、備忘録として。


事前準備としてhadoopjmxを有効にしておく。zabbixも--enable-javaでビルドしておく。

zabbixではitemを作っていく事になるが、keyの指定はtypeで「JMX agent」を指定してkeyに

jmx[,]

を記述する。
object name、attribute nameはjconsoleでjmxに接続してとなんとなく分かる。
attribute nameは「属性」となっていることもある。

以下、keyに入れた値。

  • BlocksTotal

jmx["hadoop:service=NameNode,name=FSNamesystemState","BlocksTotal"]

  • FilesTotal

jmx["hadoop:service=NameNode,name=FSNamesystemState","FilesTotal"]

  • CapacityUsed

jmx["hadoop:service=NameNode,name=FSNamesystemState","CapacityUsed"]

  • CapacityRemaining

jmx["hadoop:service=NameNode,name=FSNamesystemState","CapacityRemaining"]

  • CapacityTotal

jmx["hadoop:service=NameNode,name=FSNamesystemState","CapacityTotal"]

  • NumDeadDataNodes

jmx["hadoop:service=NameNode,name=FSNamesystemState","NumDeadDataNodes"]

  • NumLiveDataNodes

jmx["hadoop:service=NameNode,name=FSNamesystemState","NumLiveDataNodes"]