Ambari経由でNagiosを使う場合の注意点

Ambari経由でHDPをインストールしてその際にNagiosも入れた場合は注意点があります。

ここで入れたNagiosはNameNodeやResourceManagerやJobHistoryのようなマスター系のコンポーネントのCPUのチェックにSNMPを使います。

そのため/etc/snmp/snmpd.confをいじっていて下記のようになっていると思います。SNMPのコミュニティ名としてhadoopを使っています。

#/*
# * Licensed to the Apache Software Foundation (ASF) under one
# * or more contributor license agreements.  See the NOTICE file
# * distributed with this work for additional information
# * regarding copyright ownership.  The ASF licenses this file
# * to you under the Apache License, Version 2.0 (the
# * "License"); you may not use this file except in compliance
# * with the License.  You may obtain a copy of the License at
# *
# *     http://www.apache.org/licenses/LICENSE-2.0
# *
# * Unless required by applicable law or agreed to in writing, software
# * distributed under the License is distributed on an "AS IS" BASIS,
# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# * See the License for the specific language governing permissions and
# * limitations under the License.
# */

com2sec notConfigUser  0.0.0.0/0   hadoop
group   notConfigGroup v1           notConfigUser
group   notConfigGroup v2c           notConfigUser
view    systemview    included   .1
access  notConfigGroup ""      any       noauth    exact  systemview none none

syslocation Hadoop
syscontact HadoopMaster
dontLogTCPWrappersConnects yes

###############################################################################
# disk checks

disk / 10000


###############################################################################
# load average checks
#

# load [1MAX=12.0] [5MAX=12.0] [15MAX=12.0]
#
# 1MAX:   If the 1 minute load average is above this limit at query
#         time, the errorFlag will be set.
# 5MAX:   Similar, but for 5 min average.
# 15MAX:  Similar, but for 15 min average.

# Check for loads:
#load 12 14 14

コミュニティ名hadoopに対して下記のようにスクリプトを実行してCPU情報を取得します。内部的にはPerlのNet::SNMPを使っています。

/usr/lib64/nagios/plugins/check_cpu.pl -H NameNodeのホスト名 -C hadoop -w 200% -c 250%

AmbariでHDPをセットアップすると最初にNagiosで「CPU utilization show as UNKNOWN」と言われるのは、
/etc/snmp/snmpd.confを修正しているのにsnmpdを再起動してないからコミュニティ名hadoopが有効にならずにcheck_cpu.plのチェックが失敗するからだと思います。
なのでsnmpdを再起動すればこのエラーは消えるはず。

NameNodeのようなマスター系のコンポーネントのCPUのチェック以外にはSNMPを使っていないので他の、例えばNodeManagerのチェックとかは問題無いと思う。

CloudForecastを使ってモニタリングする場合は/etc/snmp/snmpd.confをいじる可能性があるのでNagiosのチェックとバッティングする可能性があるので注意。

なおAmbari経由でNagiosを再起動すると/etc/snmp/snmpd.confが上記のものに戻ります。

なのでCloudForecast用にいじっている場合は再度手動でいじってsnmpdを再起動しないとCloudForecastでエラーになります。オーマイゴッド。

AmbariのNagiosチェックは微妙な点もあって、例えばyarn.nodemanager.webapp.address(defaultは0.0.0.0:8042)をAdd propertyで追加して変更してもNagiosが追随してくれないので偽アラートが出るはめになります。

既存のもの、例えばdfs.namenode.http-addressを変更した場合はNagiosが追随してくれて偽アラート出ないです。Add propertyで追加したものにはNagiosが追随してくれないのかも。

まあ、そんな感じです。