OpenLDAP の問題のトラブルシューティング

このセクションでは、OpenLDAP の問題のトラブルシューティングに関する情報とガイダンスを示します。

SMTP が無効になり、ユーザーがパスワードをリセットする必要がある

症状

Edge UI で SMTP が設定されていない場合、Edge に追加された新しいユーザーに、パスワードを設定する方法が必要です。

エラー メッセージ

    Unknown username and password combination.
    

考えられる原因

新しいユーザーは、SMTP が設定されていないため、「Forgot your password?」リンクからメールを受け取ってパスワードを設定することができません。

解決策

この問題は、次のいずれかの方法で解決できます。

解決策 1: SMTP サーバーを構成する

ドキュメントに記載されている手順に従って、ユーザーに新しいパスワードを設定するように SMTP サーバーを構成します。

解決策 2: LDAP を使用する

SMTP サーバーを構成できない場合は、以下の LDAP コマンドを使用してユーザーの新しいパスワードを設定します。

  1. 既存の組織管理者は、以下に示すように、特定のユーザーを Edge UI 経由で追加する必要があります。

  1. ldapsearch コマンドを使用して、ユーザーの識別名(dn)を検索し、出力をファイルにリダイレクトします。
        ldapsearch -w Secret123 -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h localhost -p 10389 > ldap.txt
        

    次に、ユーザーの dn エントリの例と、そのユーザーの属性を示します。

        dn:uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com
        mail: apigee_validator@apigee.com
        userPassword:: e1NTSEF9b0FrMFFXVmFjbWRxM1BVaFZzMnllWGZMdkNvNjMwNTJlUDZYN3c9PQ=
         =
        uid: f7a4a4a5-7c43-4168-a47e-6e9a1417cc29
        objectClass: inetOrgPerson
        sn: Validator
        cn: apigee
        
  1. ldap.txt ファイルを開き、新しいユーザーのメール属性に基づいて追加された新しいユーザーの dn を探します。
  1. ldappassword コマンドを実行して、dn を使用して新しいユーザーのパスワードを追加します。この例では、ユーザーのパスワードを Apigee123 に設定しています。
        ldappasswd -h localhost -p 10389 -D "cn=manager,dc=apigee,dc=com" -W -s Apigee123
        "uid=f7a4a4a5-7c43-4168-a47e-6e9a1417cc29,ou=users,ou=global,dc=apigee,dc=com"
        
  1. 前の手順で定義したパスワードで、新しいユーザーとして Edge UI にログインします。ユーザーは、UI にログインすると新しいパスワードを設定できます。

LDAP が複製されない

症状

多くの Edge インストールには、DC-1 や DC-2 などの複数のデータセンターがあります。DC-1 の Edge UI に組織管理者としてログインすると、ユーザーのリストを表示できますが、DC-2 の Edge UI には同じユーザーリストは表示されません。

エラー メッセージ

エラーは表示されません。Edge UI に、すべての OpenLDAP サーバーにわたって複製される必要があるユーザーのリストが表示されません。

考えられる原因

通常、この問題の原因は、インストール自体ではなく、誤って構成された OpenLDAP レプリケーション構成です。また、OpenLDAP サーバー間のネットワークでポート 10389 のトラフィックが許可されない場合、レプリケーションが中断されることがあります。

診断

次の手順に従って、問題を診断します。

  1. ldapsearch で各 OpenLDAP サーバーからデータが返されるかどうかを確認します。
        ldapsearch -W -D "cn=manager,dc=apigee,dc=com" -b "dc=apigee,dc=com" -LLL -h <host-ip> -p 10389
        
  1. ポート 10389 で他の OpenLDAP ノードから各 OpenLDAP ノードに接続できるかどうかを確認します。telnet がインストールされている場合は、次のコマンドを使用します。
        telnet <OpenLDAP_Peer_IP> 10389
        
  1. telnet を使用できない場合は、次のように netcat で接続を確認します。

        nc -vz <OpenLDAP_Peer_IP> 10389
        
  2. 次のファイルのレプリケーション構成を確認します。
        /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
        

    ファイルには次のような構成が含まれている必要があります。

        olcSyncRepl: rid=001
          provider=ldap://__OTHER_LDAP_SERVER__/
          binddn="cn=manager,dc=apigee,dc=com"
          bindmethod=simple
          credentials=__LDAP_PASSWORD__
          searchbase="dc=apigee,dc=com"
          attrs="*,+"
          type=refreshAndPersist
          retry="60 1 300 12 7200 +"
          timeout=1
        
  1. 同じファイルで olcMirrorMode 属性の値も確認します。この値は、TRUE に設定されている必要があります。
        grep olcMirrorMode /opt/apigee/data/apigee-openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif
        
  1. iptables と tcp ラッパーのルールを確認します。ピア OpenLDAP サーバーの相互通信を許可しないルールをすべて削除してください。ネットワーク管理者と協力して、ルールを適切に設定します。
  1. OpenLDAP システムのパスワードが各 OpenLDAP ノードで同じであることを確認します。
  1. 構成を更新するために作成された ldif ファイルに対して dos2unix を実行して、N-Way OpenLDAP レプリケーションを構成するために使用されている ldif 構成ファイルに隠し文字がないかどうかを確認します。通常、ldif ファイルに不正な文字が含まれる場合、ldapmodify コマンドの実行に失敗するため、レプリケーションが設定されません。不正な文字を削除し、構成ファイルを保存します。

問題が解決しない場合は、N-Way OpenLDAP レプリケーションの設定について Apigee サポートにお問い合わせください。

OpenLDAP を起動できない

症状

OpenLDAP が起動しません。

エラー メッセージ

    SLAPD Dead But Pid File Exists
    

考えられる原因

この問題は、通常、ファイル システム上に残っているロックファイルが原因で発生するため、削除する必要があります。

診断

次の手順に沿って、問題を診断します。

  1. OpenLDAP の slapd プロセスのロックファイルまたは pid ファイルが次の場所にあるかどうかを確認します。
        /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
        /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
        
  1. ロックファイルと pid ファイルが見つかった場合は削除して、OpenLDAP の再起動を試行します。
        rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.lock
        Rm /opt/apigee/var/run/apigee-openldap/apigee-openldap.pid
        
  1. OpenLDAP の slapd プロセスが開始された場合は、以下の手順をスキップします。
  2. OpenLDAP の slapd プロセスが開始されない場合は、slapd をデバッグモードで実行し、エラーを探します。
        slapd -h ldap://:10389/ -u apigee -F /opt/apigee/data/apigee-openldap/slapd.d -d 255
        
  1. エラーは、リソースの問題を示す可能性があります。システム上のメモリと CPU 使用率を確認します。
  1. OpenLDAP のバージョンを確認し、古い場合はアップグレードします。サポートされているソフトウェアのドキュメントで、OpenLDAP のサポートされているバージョンを確認します。
        slapd -V
        
  1. strace を使用して slapd プロセスをトラブルシューティングし、strace の出力を Apigee サポートに提供します。
        strace -tt -T -f -F -i -v -e read=all -s 8192 -e write=all -o /tmp/strace.out -p <pid>
        

OpenLDAP データの破損

症状

ユーザーによる管理呼び出しの実行や Edge UI へのログインができなくなっています。ldapsearch ユーティリティを使用してユーザーをクエリすると、そのユーザーが LDAP データストアに存在していることが示されるか、欠落している可能性のあるユーザーまたは役割が示される場合があります。

エラー メッセージ

    Unknown username and password combination.
    

考えられる原因

通常、この問題は OpenLDAP データが破損していることが原因で発生します。通常、OpenLDAP データは破損しません。しかし、まれな事例として、システム ディスクの障害やディスク容量の問題が原因で破損する可能性があります。

診断

  1. 以下のコマンドを使用して、OpenLDAP がインストールされているシステムのディスク容量を確認します。
        du -m /opt
        
  1. 使用されているディスク容量が 100% に非常に近いことが示されている場合、システムでのディスク容量の不足がこの問題の原因であることがわかります。

解決策

システムのディスク容量が不足しているか、ディスク容量が不足しかけている場合は、ディスク容量を追加して十分なディスク容量を確保してください。

十分なディスク容量を確保したら、以下のいずれかの解決策を使用して、LDAP データの破損の問題を解決します。

  1. バックアップから OpenLDAP のデータを復元します。
  1. OpenLDAP データベースをクリーンアップします。

解決策 1: バックアップから LDAP データを復元する

動作中の OpenLDAP ノードでバックアップを作成します。バックアップは定期的に行う必要があります。バックアップに関するベスト プラクティスについては、Apigee Private Cloud の操作ガイドをご覧ください。

    slapcat -F /opt/apigee/data/apigee-openldap/slapdd -l /tmp/ldap-backup.ldif
    

次の手順を使用して、適切なバックアップから OpenLDAP データを復元できます。

  1. データを復元する必要がある OpenLDAP ノードを停止します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
        
  1. ディレクトリを OpenLDAP データ ディレクトリに変更します。
        cd /opt/apigee/data/apigee-openldap
        
  1. 移動コマンドを使用して既存の OpenLDAP データをバックアップします。
        mv ldap ldap_orig
        
  1. apigee ユーザーに切り替えます。
        su apigee
        
  1. /opt/apigee/data/apigee-openldap ディレクトリから、元の名前で新しい OpenLDAP データ ディレクトリを作成します。
        mkdir ldap
        
  1. 手順 3 の ldap_orig/DB_CONFIG サブディレクトリのバックアップを取って、それを openldap ディレクトリにコピーします。
        cp ldap_orig/DB_CONFIG ldap
        
  1. slapcat で取得したバックアップからデータを復元するには、slapadd を使用して適切なデータを含む ldif をインポートします。
        slapadd -F /opt/apigee/data/apigee-openldap/slapd.d -l /tmp/ldap-backup.ldif
        
  1. OpenLDAP プロセスを開始します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
        

解決策 2: LDAP データベースをクリーンアップする

次の手順では、OpenLDAP データベースをクリーンアップして、最初から開始します。この解決策は、OpenLDAP データが正常に動作していた最後の状態のデータ バックアップがない場合に使用できます。

  1. OpenLDAP サービスを停止します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-openldap stop
        
  1. ディレクトリを OpenLDAP データ ディレクトリに変更します。
        cd /opt/apigee/data/apigee-openldap
        
  1. 移動コマンドを使用して既存の OpenLDAP データをバックアップします。
        mv ldap ldap_orig
        
  1. apigee ユーザーに切り替えます。
        su apigee
        
  1. 元の名前で新しい OpenLDAP データ ディレクトリを作成します。
        mkdir ldap
        
  1. 手順 3 の ldap_orig/DB_CONFIG サブディレクトリのバックアップを取って、それを openldap ディレクトリにコピーします。
        cp ldap_orig/DB_CONFIG ldap
        
  1. OpenLDAP プロセスを再開します。
        /opt/apigee/apigee-service/bin/apigee-service apigee-openldap start
        
  1. Management Server を再起動して OpenLDAP への接続を強制的に更新します。
        /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
        

問題が解決しない場合は、Apigee サポートにお問い合わせください。