WADebug: WhatsApp Business API용 문제 해결 도구

최신 버전: 0.1.3

WADebug는 WhatsApp Business API 설정에 발생할 수 있는 이슈를 찾아내고, 더욱 효과적으로 WhatsApp 지원에 도움을 요청할 수 있는 명령줄 도구입니다.

WADebug의 최신 버전은 온프레미스 단일 인스턴스 설정과만 호환됩니다. 현재 고가용성/다중 연결 설정이나 AWS 설정과는 호환되지 않습니다.

이 문서에서 다루는 내용은 다음과 같습니다.

WADebug 설치

WADebug는 Python으로 작성된 명령줄 도구이며, Python 3 및 2.7과 모두 호환됩니다. Python 3를 사용할 것을 권장합니다. 다음과 같이 pip를 사용하여 설치합니다.

pip3 install wadebug

업그레이드하려면 다음을 실행합니다.

pip3 install wadebug --upgrade

제거하려면 다음을 실행합니다.

pip3 uninstall wadebug

WADebug가 설치되었는지 확인하려면 다음을 실행합니다.

wadebug --help

사용자 가이드

WADebug에는 WhatsApp Business API 설정을 확인하는 일련의 액션이 있습니다. 기본적으로, 이용할 수 있는 모든 액션을 실행합니다. problem이나 warning 상태가 반환되면 설정 문제 해결에 도움을 주기 위해 설명, 상세 정보 및 가능한 문제 완화 방법이 표시됩니다. 도움이 필요한 경우 Facebook에 로그를 업로드하는 방법도 다시 알려줍니다.

이 도구를 사용하려면 WhatsApp Business API Docker 컨테이너를 호스팅하는 컴퓨터에서 다음 명령을 실행합니다.

wadebug

액션의 결과로 wadebug_error가 발생했다면 도구 자체에 문제가 있다는 것을 의미합니다. 이러한 문제가 발생한 경우 기술 지원을 통해 버그를 신고하세요.



구성 파일

WADebug에서 전체 확인을 실행하려면 현재 디렉터리에 구성 파일(wadebug.conf.yml)이 있어야 합니다.

구성 파일 없이 wadebug를 실행하면 도구에서 구성 값을 입력할 수 있도록 스켈레톤 파일을 생성하라는 메시지가 나타납니다. 구성 파일을 찾을 수 없거나 구성 값이 설정되지 않은 경우, 정보가 부족하여 일부 액션을 건너뛸 수 있습니다.

샘플 구성 파일:

  
    # configurations related to the MySQL database
    db:
      # hostname of the MySQL database
      host: # for example, "0.0.0.0"
      # host port that the MySQL database uses
      # to connect to database container created by docker-compose scripts, use 33060
      port: # for example, 33060
      # username to connect to the MySQL database
      user: # for example, "root"
      # password of the username that is used to connect to the MySQL database
      password: # for example, "your_database_password"

    # configurations related to WhatsApp Business API
    webapp:
      # url accessible from the host running wadebug
      baseUrl: # https://localhost:9090
      # WhatsApp Business API user account credentials to call Support API
      user: # for example, "wadebug"
      # WhatsApp Business API user account credentials to call Support API
      password: # for example, "secretdebugger"
  

가능한 액션 나열

이용할 수 있는 액션을 확인하려면 다음을 실행하세요.

wadebug ls

부분 실행

이용할 수 있는 액션의 일부만 실행하려면 다음을 수행하세요.

wadebug partial check_software_version check_mysql_version

JSON 모드

wadebug는 인터랙티브 모드와 JSON 모드 두 가지를 제공합니다.

인터렉티브 모드는 기본 모드이며, 이 모드를 사용하면 시각화된 결과표, 고지, 구성 파일을 생성하라는 메시지 등을 확인할 수 있습니다.
JSON 모드는 wadebug를 자동화 파이프라인에 통합하여 WhatsApp Business API 설정을 주기적으로 검증하거나 예를 들어 WhatsApp Business API 버전을 매번 업그레이드할 때 유용합니다.

JSON 모드에서 wadebug를 실행하려면 이용할 수 있는 wadebug 명령에 --json 플래그를 전달합니다.

wadebug --json

그러면 다음과 같은 유효한 JSON 응답이 반환됩니다.

{
   "containers_status":{
      "class":"CheckContainersAreUp",
      "user_facing_name":"containers_status",
      "result":"OK"
   },
   "check_mysql_connection":{
      "class":"CheckMySQLConnection",
      "user_facing_name":"check_mysql_connection",
      "result":"OK"
   },
   "check_software_version":{
      "class":"CheckSoftwareVersion",
      "user_facing_name":"check_software_version",
      "result":"OK"
   },
   "check_mysql_version":{
      "class":"CheckMySQLVersion",
      "user_facing_name":"check_mysql_version",
      "result":"OK"
   },
   "check_network":{
      "class":"CheckNetworkAction",
      "user_facing_name":"check_network",
      "result":"OK"
   },
   "check_mysql_permissions":{
      "class":"CheckMySQLPermissions",
      "user_facing_name":"check_mysql_permissions",
      "result":"OK"
   },
   "check_mysql_password":{
      "class":"CheckMySQLPassword",
      "user_facing_name":"check_mysql_password",
      "result":"OK"
   },
   "check_db_settings_exist":{
      "class":"CheckDbSettingsExist",
      "user_facing_name":"check_db_settings_exist",
      "result":"OK"
   },
   "check_webapp_port":{
      "class":"CheckWebappPortAction",
      "user_facing_name":"check_webapp_port",
      "result":"OK"
   }
}    
    

사용 데이터 수집 및 옵트 아웃

wadebug가 실행될 때마다 사용 데이터(실행한 액션 및 반환된 결과 포함)가 Facebook에 전송되어 도구를 개선하고 기술 지원을 통한 WhatsApp 지원 절차를 원활하게 하는 데 도움을 줍니다.

도구를 사용할 때 사용 데이터를 Facebook에 공유하고 싶지 않은 경우 wadebug--do-not-send-usage 플래그와 함께 실행하세요.

wadebug partial check_network --do-not-send-usage

앞으로도 로컬에서 문제 해결 결과를 확인할 수는 있지만 지원팀과의 상호작용을 저해할 수 있습니다.

로그 가져오기

wadebug를 이용하여 편리하게 전체 컨테이너 로그를 가져오고, 선택적으로 Facebook에 로그를 전송하여 지원팀에서 신속히 조사할 수 있도록 지원할 수 있습니다.

현재 디렉터리의 wadebug_logs/에 로그를 가져오고 저장하려면:

wadebug logs

로그를 Facebook에 전송하려면 --send 플래그를 추가할 수 있습니다.

wadebug logs --send

도움 요청하기

WhatsApp Business API 설정 문제 해결에 도움이 필요한 경우 wadebug 실행 후 반환된 run_id로 기술 지원 티켓을 신청하세요. 이렇게 하면 지원팀에서 실행한 액션과 그 결과의 보고서를 확인할 수 있습니다.

A report of this run has been uploaded to Facebook.  You can reference run_id (A5jedVKsdI_ZojRwL1_-MOd) in Direct Support (https://business.facebook.com/direct-support) tickets
  	

컨테이너 로그는 문제 해결에 매우 유용합니다. 컨테이너 로그를 수집하고 Facebook에 전송하려면 wadebug logs--send 플래그와 함께 실행하세요.

wadebug logs --send

그리고 반환된 run_id를 제공합니다.

Container logs have been uploaded to Facebook.  You can reference run_id (AcClyxkRJk3w1dEr8OAmsTn) in Direct Support (https://business.facebook.com/direct-support) tickets
  	

변경 사항

2019년 4월 26일(v0.1.3)

  • 새로운 액션에 필요한 새로운 구성 파일 항목 추가
  • Webhook 상태 점검 추가
  • PyPi에 새로운 버전이 있을 때 WADebug 업그레이드 메시지 추가
  • 원활한 문제 해결을 위해 업로드한 로그에 지원 엔드포인트 응답 추가
  • WADebug 충돌 로그가 이제 Facebook에 업로드됨

2018년 12월 28일(v0.1.2)

  • 가져온 로그 크기 제한
  • 충돌 시 Coreapp Coredump 캡처
  • 업로드 없이 로그를 가져올 수 있는 새로운 명령 추가
  • Python 3.4 미만의 필수 모듈로 enum34 추가

2018년 10월 23일(v0.1.1)

  • 초판