Sensor Gateway が停止すると、センサーは Carbon Black Cloud と通信できません。高可用性 (HA) を実現するには、Carbon Black は、アクティブ モードまたはパッシブ モードで少なくとも 2 台の Sensor Gateway サーバを設定することをお勧めします。その結果、1 つの Sensor Gateway が停止した場合でも、もう一方が要求に対応できます。
クラウド内の Sensor Gateway サーバの健全性を表示できますが、Carbon Black では、使用可能なツールを使用して社内の Sensor Gateway の健全性を監視することをお勧めします。これにより、Sensor Gateway サーバが健全な状態を維持し、アクティブとパッシブ両方の Sensor Gateway サーバが停止する状況を回避します。
Sensor Gateway をアクティブ モードまたはパッシブ モードで設定するには、次の手順を実行します。
注: Keepalived 設定を構成する場合は、次の点を考慮してください。
- プライマリ サーバの優先順位の値が高くなっています。状態は関係ありません。状態が MASTER でも、優先順位が BACKUP 状態のルーターよりも低い場合、サーバは MASTER 状態を失います。
Virtual_router_id
は、Sensor Gateway サーバ 1 と Sensor Gateway サーバ 2 で同じである必要があります。
- デフォルトでは、1 つの
vrrp_instance
で最大 20 個の virtual_ipaddress
をサポートします。アドレスを追加するには、インスタンスを追加する必要があります。
前提条件
ネットワークが設定されていることを確認します。以下のネットワーク シナリオの IP アドレスは、説明のためのものです。仮想 IP アドレスは最も重要です。この IP アドレスは、センサーの構成中に使用します。IP アドレスを DNS
sensor-gateway.somecompany.com
にマッピングし、センサーの構成中に FQDN を使用することもできます。
表 1.
ネットワーク シナリオ
Sensor Gateway サーバ 1 |
192.168.10.111 (eth0) |
Sensor Gateway サーバ 2 |
192.168.10.112 (eth0) |
仮想 IP アドレス |
192.168.10.121 |
手順
- 次のコマンドを実行して、各 Sensor Gateway サーバに Keepalived を構成するために必要なパッケージをインストールします。
sudo apt-get update
sudo apt-get install linux-headers-$(uname -r)
- 次のコマンドを実行して、両方の Sensor Gateway サーバに Keepalived をインストールします。
sudo apt-get install keepalived
Keepalived パッケージは、デフォルトの apt リポジトリで使用できます。
- Sensor Gateway サーバ 1 で Keepalived を設定します。
- Keepalived 構成ファイル /etc/keepalved/keepalved.conf をエディタで作成または開きます。
vim /etc/keepalived/keepalived.conf
- 次の設定を追加します。ネットワークおよびシステム構成で、赤で強調表示されているすべての値を更新します。
! Configuration File for keepalived
global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from sensor-gateway-1@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_script chk_sgw_service_status {
script "/bin/sh /usr/local/bin/sgw-service-check.sh"
interval 30
fall 3
rise 3
timeout 2
weight 5
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 101
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.121
}
track_script {
chk_sgw_service_status
}
}
- Sensor Gateway サーバ 2 で Keepalived を設定します。
- Keepalived 構成ファイル /etc/keepalved/keepalved.conf をエディタで作成または開きます。
vim /etc/keepalived/keepalived.conf
- 次の設定を追加します。ネットワークおよびシステム構成で、赤で強調表示されているすべての値を更新します。
注:
Sensor Gateway サーバ 1 の優先順位よりも低い値を設定します。たとえば、次の構成は、優先順位の値が 100 であることを示し、
Sensor Gateway サーバ 1 の優先順位は 101 です。
! Configuration File for keepalived
global_defs {
notification_email {
sysadmin@mydomain.com
support@mydomain.com
}
notification_email_from sensor-gateway2@mydomain.com
smtp_server localhost
smtp_connect_timeout 30
}
vrrp_script chk_sgw_service_status {
script "/bin/sh /usr/local/bin/sgw-service-check.sh"
interval 30
fall 3
rise 3
timeout 2
weight 5
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 101
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.121
}
track_script {
chk_sgw_service_status
}
}
- 両方の Sensor Gateway サーバで /usr/local/bin/sgw-service-check.sh を作成および編集します。
#!/bin/sh
curl - s - k https://localhost/sgw/health_check > /tmp/health_response.json
RESPONSE = `jq '.ErrorCode' /tmp/health_response.json `
if [$RESPONSE ='null']
then
exit 0
else
exit 1
fi
- Keepalived サービスを起動し、システム起動時に自動的に起動するように構成します。
sudo service keepalived start
- インターフェイスで割り当てられた仮想 IP アドレスを確認します。
ip addr show eth0
デフォルトでは、仮想 IP アドレスがプライマリ サーバに割り当てられます。プライマリ サーバが停止すると、仮想 IP アドレスがセカンダリ サーバに自動的に割り当てられます。
出力例:
2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:b9:b0:de brd ff:ff:ff:ff:ff:ff
inet 192.168.10.111/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.10.121/32 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::11ab:eb3b:dbce:a119/64 scope link
valid_lft forever preferred_lft forever
- IP フェイルオーバーを確認します。
- プライマリ サーバ(Sensor Gateway サーバ 1)をシャットダウンし、IP アドレスがセカンダリ サーバに自動的に割り当てられるかどうかを確認します。
- Sensor Gateway サーバ 1 を起動し、Sensor Gateway サーバ 2 を停止します。
IP アドレスは自動的にプライマリ サーバに割り当てられます。
- ログ ファイルを確認して、IP フェイルオーバーの検証が機能していることを確認します。
出力例:
Feb 7 17:24:51 tecadmin Keepalived_healthcheckers[23177]: Registering Kernel netlink reflector
Feb 7 17:24:51 tecadmin Keepalived_healthcheckers[23177]: Registering Kernel netlink command channel
Feb 7 17:24:51 tecadmin Keepalived_healthcheckers[23177]: Opening file '/etc/keepalived/keepalived.conf'.
Feb 7 17:24:51 tecadmin Keepalived_healthcheckers[23177]: Configuration is using : 11104 Bytes
Feb 7 17:24:51 tecadmin Keepalived_healthcheckers[23177]: Using LinkWatch kernel netlink reflector...
Feb 7 17:24:52 tecadmin Keepalived_vrrp[23178]: VRRP_Instance(VI_1) Transition to MASTER STATE
Feb 7 17:24:53 tecadmin Keepalived_vrrp[23178]: VRRP_Instance(VI_1) Entering MASTER STATE
Feb 7 17:24:53 tecadmin avahi-daemon[562]: Registering new address record for 192.168.10.121 on eth0.IPv4.
Appliance storage space is fully occupied by logs from /var/log/auth.log