AWS EC2でのZABBIXサーバのセキュリティグループ設定について

お世話になっております。

現在、EC2にてWebサーバを運用しており、当該サーバ監視としてZABBIXサーバを立てて監視をしております。

ZABBIXサーバのEC2セキュリティグループ設定にて監視画面からの接続のためhttp(ポート80)でinboundとoutboundを開けています。

inboundとoutboundのIPアドレスに自分のクライアントPCのグローバルIPアドレスを設定したいのですが、
当該IPアドレスが0.0.0.0でないと監視画面上接続できていないというエラーが表示されます。

対処方法をご教授頂ければと思い、投稿致しました。
よろしくお願い致します。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

申し訳ありませんが、ご質問頂く際には、具体的な画面上のエラー
メッセージをお教えください。
表示されたメッセージそのままをお教えいただけないと、何が起き
ているのかがわかりません。

監視画面上接続できていないというエラーが表示されます。

というのが、どこにどのような形で、具体的にどのようなメッセー
ジで表示されるのかが、記載頂いた内容から読み取ることができま
せんでした。

あと、セキュリティグループに、どのような設定を試みられたのか
をもう少し詳細にお教えください。

例えば、Webインターフェースを利用するだけであれば、Inboundに
関しては、

 Type: HTTP
 Protocol: TCP
 Port Range: 80
 Source: Custom IP xxx.xxx.xxx.xxx/32

というように、外部からアクセスするクライアントのグローバルIP
を登録することで対応できるはずです。

Outboundに関しては、どこにどう設定されたのでしょうか?
こちらも、どこで何にどう設定されたのかをお教えください。

ユーザー zabbix_bubutetu の写真

説明が不十分で申し訳ありません。

1.エラーメッセージについて
ポップアップ表示で「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)と表示されます。
また監視データのダッシュボードの「Zabbixサーバの状態」でZabbixサーバの起動」の値が「いいえ」で表示されます。

2.Inbound設定は、
 Type: HTTP
 Protocol: TCP
 Port Range: 80
 Source: Custom IP xxx.xxx.xxx.xxx/32

xxx.xxx.xxx.xxxはクライアントPCのグローバルIPアドレスです。

3.Outbound設定も上記と同様の設定です。

4.事象としてはxxx.xxx.xxx.xxx/32に0.0.0.0/32を(Inbound・Outboundともに)設定するとエラーメッセージは解消しますが、
クライアントPCのグローバルIPアドレスを設定すると1のエラーメッセージが表示されます。
これはInboundまたはOutboundのどちらで設定しても同じ事象が発生します。

5.その後の対処
あまりきれいな方法ではないのですが、

①Inbound・OutboundのCustomIPは0.0.0.0/32の設定のままとし、
②/etc/httpd/conf.d/zabbix.confを修正

Directory "/usr/share/zabbix"
「Require all granted」としていた箇所を「Require ip グローバルIP」に変更
/Directory

の対応にてエラーメッセージは表示されず、当該グローバルIPからのみの接続ができる状態です。

※Apache2.4を使用しています。

6.補足
①ZabbixはSever・Agentともにv2.2.5です。
②上記エラーメッセージは表示されますが、監視対象サーバの情報はAgentから取得できている状態です。

以上、よろしくお願い致します。

ユーザー TNK の写真

1.エラーメッセージについて
ポップアップ表示で「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)と表示されます。
また監視データのダッシュボードの「Zabbixサーバの状態」でZabbixサーバの起動」の値が「いいえ」で表示されます。

これがセキュリティグループの設定の変更で出たりでなかったりな
のであれば、zabbix_serverとhttpdが別のサーバで稼働しているの
ではありませんか?
zabbix_serverとhttpdとの間は、httpdからポート番号10051で
zabbix_serverに対してアクセスできることが必要です。

複数のサーバを利用して構成しているのであれば、それらの情報を
ご提示ください。

3.Outbound設定も上記と同様の設定です。

具体的にどう設定しているのかをお教えください。

どのようなサーバ構成で動かしているのか、それぞれのサーバのセ
キュリティグループ設定は同じなのか、それぞれ異なるセキュリテ
ィグループなのか、環境に関する情報はできるかぎり詳細にお教え
ください。

ユーザー zabbix_bubutetu の写真

たびたび不十分な説明で申し訳ありません。

【システム構成】
EC2のインスタンスは2つで①Redmine運用サーバで②ZABBIX監視サーバです。
①の構成は
   Apache2.2+Passenger
         ↓
Zabbix-Agent  Redmine ⇔ MySQL
         ↓
     AmazonLinux

②の構成は
Apache2.4
   ↓
Zabbix-Server ⇔ MySQL
   ↓
AmazonLinux

【セキュリティグループ】
①②のセキュリティグループは別です。

①のセキュリティグループ設定
(Inbound)
Type:ALL ICMP
Protcol:ALL
PortRange:N/A
Source:②のセキュリティグループ

Type:HTTPS
Protcol:TCP
PortRange:443
Source:クライアントPCグローバルIP

Type:CustomTCPRule
Protcol:TCP
PortRange:10050
Source:②のセキュリティグループ

Type:SSH
Protcol:TCP
PortRange:22
Source:クライアントPCグローバルIP

(Outbound)
Type:ALL ICMP
Protcol:ALL
PortRange:N/A
Source:②のセキュリティグループ

Type:CustomTCPRule
Protcol:TCP
PortRange:10051
Source:②のセキュリティグループ

②のセキュリティグループ設定
(Inbound)
Type:ALL ICMP
Protcol:ALL
PortRange:N/A
Source: ①のセキュリティグループ

Type:HTTP
Protcol:TCP
PortRange:80
Source:0.0.0.0/32 ←ここをクライアントPCのグローバルIPにするとエラーメッセージが表示される

Type:CustomTCPRule
Protcol:TCP
PortRange:10051
Source:①のセキュリティグループ

Type:SSH
Protcol:TCP
PortRange:22
Source:クライアントPCグローバルIP

(Outbound)
Type:ALL ICMP
Protcol:ALL
PortRange:N/A
Source:①のセキュリティグループ

Type:CustomTCPRule
Protcol:TCP
PortRange:10050
Source:①のセキュリティグループ

Type:HTTP
Protcol:TCP
PortRange:80
Source:0.0.0.0/32 ←ここをクライアントPCのグローバルIPにするとエラーメッセージが表示される

【PublicIP】
EIPを付与して固定化しています。

【VPC】
DefaultVPCを使用しています。

【conf設定】
①のzabbix-agentd.conf設定内容
SourceIP=xxx.xxx.xxx.118(①インスタンスのPrivateIP)
Server=xxx.xxx.xxx.193(②インスタンスのPrivateIP)
ListenPort=10050
ListenIP=xxx.xxx.xxx.118(①インスタンスのPrivateIP)
ServerActive=xxx.xxx.xxx.193:10051(②インスタンスのPrivateIP)
Hostname=ip-xxx-xxx-xxx-118.ap-northeast-1.compute.internal(①のPrivateDNS)

②のzabbix-server.conf設定内容
ListenPort=10051
SourceIP=xxx.xxx.xxx.193(②インスタンスのPrivateIP)
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=xxx.xxx.xxx.193(②インスタンスのPrivateIP)

【監視Webインターフェース設定】
②のPublicIPとポート80を設定しています。

たびたびお手数をお掛け致します。
よろしくお願い致します。

ユーザー TNK の写真

1点、明確におかしいと思われるのは、②のセキュリティグループ
のOutboundで、

 Type:HTTP
 Protcol:TCP
 PortRange:80
 Source:0.0.0.0/32

という設定がある点です。

セキュリティグループ(2)上にあるZabbixサーバ上にあるWebサーバ
にアクセスするだけであれば、Inboundで80番ポートをアクセス可
にすれば良いだけだと思います。

Zabbixサーバ上のWebサーバから外部の80番ポートに接続しに行く
わけではありません。

あと、

【監視Webインターフェース設定】
②のPublicIPとポート80を設定しています。

これは、どこの設定を指してますか?

/etc/zabbix/web/zabbix.conf.php 上の設定でしょうか?
そうであるならば、Zabbixサーバプロセス(zabbix_server)とWeb
サーバ(httpd)を同じサーバ上で動かしているなら、グローバルIP
を利用しない方が良いでしょう。

zabbix_server.confでListenIP=xxx.xxx.xxx.193としているのであ
れば、/etc/zabbix/web/zabbix.conf.php 内もそれに合わせて、

 $ZBX_SERVER = 'xxx.xxx.xxx.193';

というように設定することになると思います。

ユーザー zabbix_bubutetu の写真

お世話になっております。

ご回答ありがとうございます。

$ZBX_SERVER = 'xxx.xxx.xxx.193'(Zabbix-ServerのPrivateIP)に変更したところ、
Zabbix-ServerのセキュリティグループのInboundのHTTPのSourceにクライアントPCのグローバルIP設定をしてもエラーは発生しなくなりました。
OutboundのHTTPのポート指定は削除しました。

ご助言を頂いて対応ができました。
ありがとうございます。