質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.35%

  • Linux

    2702questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2011questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • ネットワーク

    383questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

keepalivedでクライアントサーバとの通信が失敗する

解決済

回答 1

投稿 2017/11/22 12:09 ・編集 2017/11/22 18:10

  • 評価
  • クリップ 0
  • VIEW 62

R.T

score 3

keepalivedで、特定のvirtual ip宛でアクセスが来たら、クライアントサーバへ向かわせる処理を行なっています。

ですがホストからクライアントへ「telnet ipアドレス 80」は通信が成功するのに、keepalivedではログに「Keepalived_healthcheckers[5189]: Timeout WEB read server」が表示されてしまいます。weightも0になります。

設定など見直しているのですが、いまいち原因がわかりません。

この問題を解決するためのヒントをいただければ幸いです。

環境
centos6.7

追記

keepalivedの設定はこちらになっております
virtual ipが複数設定してありますが、問題の部分は「ZZZ.ZZZ.ZZZ.ZZZ/28 dev eth2」の部分で、他の部分は正常に動いています。

keepalived.conf

vrrp_instance vip_gw {
        interface eth1
        state BACKUP
        priority 100
        nopreempt
        authentication {
                auth_type PASS
                auth_pass hogehoge
        }
        advert_int 1
        virtual_router_id 20
        virtual_ipaddress {
                XXX.XXX.XXX.XXX/28 dev eth0
                YYY.YYY.YYY.YYY/24 dev eth1
                ZZZ.ZZZ.ZZZ.ZZZ/28 dev eth2
        }
}

include ZZZ_ZZZ_ZZZ_ZZZ.conf

ZZZ_ZZZ_ZZZ_ZZZ.conf

virtual_server ZZZ.ZZZ.ZZZ.ZZZ 80 {
        delay_loop 3
        lvs_sched wlc
        lvs_method NAT
        protocol TCP

        real_server AAA.AAA.AAA.AAA 80 {
                weight 10
                inhibit_on_failure
                HTTP_GET {
                        url {
                                path /health.html
                                status_code 200
                        }
                        connect_port 80
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                }
        }
}

追記2

コメントでいただいたアドバイス
curl -v https://AAA.AAA.AAA.AAA/health.htmlの結果

* About to connect() to AAA.AAA.AAA.AAA port 80 (#0)
*   Trying AAA.AAA.AAA.AAA... connected
* Connected to AAA.AAA.AAA.AAA (AAA.AAA.AAA.AAA) port 80 (#0)
> GET /health.html HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: AAA.AAA.AAA.AAA
> Accept: */*
>
< HTTP/1.1 504 Gateway Time-out
< Server: nginx/1.10.3 (Ubuntu)
< Date: Wed, 22 Nov 2017 09:03:18 GMT
< Content-Type: text/html
< Content-Length: 192
< Connection: keep-alive
<
<html>
<head><title>504 Gateway Time-out</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
* Connection #0 to host AAA.AAA.AAA.AAA left intact
* Closing connection #0
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • TaichiYanagiya

    2017/11/22 17:20

    keepalived の設定を教えてください。また、「クライアントサーバ」→「バックエンドサーバ」とか「リアルサーバ」と書いた方がいいと思います。

    キャンセル

  • TaichiYanagiya

    2017/11/22 17:46 編集

    追加情報ありがとうございます。keepalived のホストから「curl -v http://AAA.AAA.AAA.AAA/health.html」で接続できますか? また、応答コードは 200 でしょうか?

    キャンセル

  • R.T

    2017/11/22 18:07

    504 Gateway Time-outでした。。

    キャンセル

回答 1

checkベストアンサー

0

リアルサーバーのヘルスチェックで、keepalived のホストから http://AAA.AAA.AAA.AAA/health.html に接続でき、応答コードが 200 である必要があります。

応答コードが 504 とのことですので、リアルサーバー側の設定、ログ等を確認ください。

投稿 2017/11/22 18:13

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/22 18:15

    ありがとうございますm(__)m

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.35%

関連した質問

同じタグがついた質問を見る

  • Linux

    2702questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • CentOS

    2011questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • ネットワーク

    383questions

    ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。