パブリックIPv4アドレスのないEC2インスタンスをNagiosで監視できるように設定します。
監視対象ホストの設定
IPv6のみを設定したEC2インスタンスを用意し、snmpdとセキュリティグループを設定します。
snmpdの設定
/etc/snmp/snmpd.conf
を設定する時に、IPv4の時の設定に加えて、IPv6用の以下の設定も追加します。
agentaddress udp:161
agentaddress udp6:161
com2sec6 notConfigUser default public
(com2sec6の各値は、環境に合わせて変えてください。IPv4の時にcom2secに設定していたものと同じ値を設定すれば良いです。)
セキュリティグループの設定
Nagiosサーバーからの問い合わせに応えられるように、セキュリティグループを設定します。
インバウンドルールに
- カスタムUDP 161
- すべてのICMP - IPv6
を追加し、ソースにはNagiosサーバーのIPv6アドレスを入力します。
インターネットゲートウェイを設定していない場合は設定してください。
Nagiosサーバーの設定
元々IPv4で監視を行っていたNagiosサーバーでIPv6の監視も追加する場合は、IPv6通信もできるように設定する必要があります。
NagiosサーバーもAWSのEC2インスタンスの場合は、監視対象ホストと同様に、IPv6の設定(追加)をしてください。
ping6 監視対象ホストのIPv6アドレス
を実行して返事があれば設定できていると思います。
コマンドの設定
IPv4ホストとIPv6ホストでコマンドが違う(オプションを追加しなければならない等)場合は、IPv4用の各コマンドと同様のIPv6用のコマンドを追加します。
コマンドは、自分の環境に合わせて設定してください。
以下は設定例です。
check_ping
IPv4用
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
IPv6用
define command{
command_name check-host-alive6
command_line $USER1$/check_ping -6 -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
}
check_snmp_load.pl
https://github.com/SteScho/manubulon-snmp/blob/master/plugins/check_snmp_load.pl
最新版はIPv6に対応しています。(-Pオプションを指定)
IPv4用
define command{
command_name check_aws_snmp_avg_load
command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -C コミュニティ名 -T netsl -w $ARG1$ -c $ARG2$
}
IPv6用
define command{
command_name check_aws_snmp_avg_load6
command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ -C コミュニティ名 -P udp/ipv6 -T netsl -w $ARG1$ -c $ARG2$
}
check_snmp_storage.pl
https://github.com/SteScho/manubulon-snmp/blob/master/plugins/check_snmp_storage.pl
最新版はIPv6に対応しています。(-Pオプションを指定)
IPv4用
define command{
command_name check_aws_snmp_disk
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C コミュニティ名 -m / -r -w 80% -c 85%
}
define command{
command_name check_aws_snmp_swap
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C コミュニティ名 -m ^Swap -w 80% -c 85%
}
IPv6用
define command{
command_name check_aws_snmp_disk6
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C コミュニティ名 -P udp/ipv6 -m / -r -w 80% -c 85%
}
define command{
command_name check_aws_snmp_swap6
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ -C コミュニティ名 -P udp/ipv6 -m ^Swap -w 80% -c 85%
}
IPv4とIPv6でコマンドが違う場合は、使用しているテンプレート等もIPv6用を追加して、IPv6のみのホストはIPv6用のコマンドを使うように設定すれば、IPv4ホストとIPv6ホストの両方を監視することができます。