AWS EC2でのZABBIXサーバのセキュリティグループ設定について
お世話になっております。
現在、EC2にてWebサーバを運用しており、当該サーバ監視としてZABBIXサーバを立てて監視をしております。
ZABBIXサーバのEC2セキュリティグループ設定にて監視画面からの接続のためhttp(ポート80)でinboundとoutboundを開けています。
inboundとoutboundのIPアドレスに自分のクライアントPCのグローバルIPアドレスを設定したいのですが、
当該IPアドレスが0.0.0.0でないと監視画面上接続できていないというエラーが表示されます。
対処方法をご教授頂ければと思い、投稿致しました。
よろしくお願い致します。
TNK - 投稿数: 4720
申し訳ありませんが、ご質問頂く際には、具体的な画面上のエラー
メッセージをお教えください。
表示されたメッセージそのままをお教えいただけないと、何が起き
ているのかがわかりません。
というのが、どこにどのような形で、具体的にどのようなメッセー
ジで表示されるのかが、記載頂いた内容から読み取ることができま
せんでした。
あと、セキュリティグループに、どのような設定を試みられたのか
をもう少し詳細にお教えください。
例えば、Webインターフェースを利用するだけであれば、Inboundに
関しては、
Type: HTTP
Protocol: TCP
Port Range: 80
Source: Custom IP xxx.xxx.xxx.xxx/32
というように、外部からアクセスするクライアントのグローバルIP
を登録することで対応できるはずです。
Outboundに関しては、どこにどう設定されたのでしょうか?
こちらも、どこで何にどう設定されたのかをお教えください。
zabbix_bubutetu - 投稿数: 4
説明が不十分で申し訳ありません。
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 - 投稿数: 4720
これがセキュリティグループの設定の変更で出たりでなかったりな
のであれば、zabbix_serverとhttpdが別のサーバで稼働しているの
ではありませんか?
zabbix_serverとhttpdとの間は、httpdからポート番号10051で
zabbix_serverに対してアクセスできることが必要です。
複数のサーバを利用して構成しているのであれば、それらの情報を
ご提示ください。
具体的にどう設定しているのかをお教えください。
どのようなサーバ構成で動かしているのか、それぞれのサーバのセ
キュリティグループ設定は同じなのか、それぞれ異なるセキュリテ
ィグループなのか、環境に関する情報はできるかぎり詳細にお教え
ください。
zabbix_bubutetu - 投稿数: 4
たびたび不十分な説明で申し訳ありません。
【システム構成】
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 - 投稿数: 4720
1点、明確におかしいと思われるのは、②のセキュリティグループ
のOutboundで、
Type:HTTP
Protcol:TCP
PortRange:80
Source:0.0.0.0/32
という設定がある点です。
セキュリティグループ(2)上にあるZabbixサーバ上にあるWebサーバ
にアクセスするだけであれば、Inboundで80番ポートをアクセス可
にすれば良いだけだと思います。
Zabbixサーバ上のWebサーバから外部の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 - 投稿数: 4
お世話になっております。
ご回答ありがとうございます。
$ZBX_SERVER = 'xxx.xxx.xxx.193'(Zabbix-ServerのPrivateIP)に変更したところ、
Zabbix-ServerのセキュリティグループのInboundのHTTPのSourceにクライアントPCのグローバルIP設定をしてもエラーは発生しなくなりました。
OutboundのHTTPのポート指定は削除しました。
ご助言を頂いて対応ができました。
ありがとうございます。