WhatsApp / WADebug

WhatsApp Debug - A command-line tool that will be used to troubleshoot installation of WhatsApp Business API.
MIT License
31 stars 14 forks source link

wadebug full multiple problems #1

Closed mr-exz closed 4 years ago

mr-exz commented 4 years ago
WADebug summary:
[✓] check_mysql_permissions - Test if the database have permissions to create database or tables
[✗] check_db_settings_exist - Test if required db settings are passed
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✗] check_webapp_port - Check if webapp maps container port 443 to host
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✗] check_webhook - Test if the webhook is accessible and responsive
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✗] check_software_version - Action to test whether software version is up-to-date
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✓] check_mysql_version - Check MySQL version
[✗] containers_status - Action to test whether containers are running
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✗] check_mysql_password - Test if database password has any invalid characters
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✗] check_network - Test if required hosts can be reached on specific port from coreapp container.
    An unexpected error occurred on this check
    ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
    Please report this via Direct Support (https://business.facebook.com/direct-support)
[✓] check_mysql_connection - Test if MySQL database can be connected
wadebug logs
Collecting logs on /opt/whatsapp/bin/wadebug_logs
Please wait...
An error occurred with WADebug:
('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
 Please report this via Direct Support (https://business.facebook.com/direct-support)  and paste this full error message.
mengyiyuan commented 4 years ago

Hi Nik,

Have you set up the wadebug.conf.yml config file before running wadebug? More information here: https://developers.facebook.com/docs/whatsapp/guides/wadebug

mr-exz commented 4 years ago

HI, yes of course, if i would run wadebug without config i will get other error. Also as you can see:

I tried same thing on registered sender - same result.

mr-exz commented 4 years ago

Part of problems gone, first result was when i executed wadebug on host where containers of WA WA running. This result i got from side host:

wadebug full

WADebug summary:
[✗] containers_status - Action to test whether containers are running
    Some of your WhatsApp containers are missing or not running.
    Either core container or web container is missing

    Use the following commands to learn more:
        docker ps -a
        docker inspect <CONTAINER_ID>
[✓] check_db_settings_exist - Test if required db settings are passed
[✓] check_mysql_connection - Test if MySQL database can be connected
[✓] check_mysql_password - Test if database password has any invalid characters
[✓] check_mysql_permissions - Test if the database have permissions to create database or tables
[✓] check_mysql_version - Check MySQL version
[✗] check_network - Test if required hosts can be reached on specific port from coreapp container.
    Network connectivity check fails
    There is no wacore container running
    Please check results from other actions to diagnose
[✓] check_software_version - Action to test whether software version is up-to-date
[✗] check_webapp_port - Check if webapp maps container port 443 to host
    Check webapp port failed
    There is no waweb container running
    Please check results from other actions to diagnose
[✗] check_webhook - Test if the webhook is accessible and responsive
    Webhook check failed
    There is no wacore container running
    Please check results from other actions to diagnose

! WADebug found 4 issues.
mr-exz commented 4 years ago

For check: check_network i found this definitions : WA_WEBAPP_CONTAINER_TAG = "whatsapp.biz/web" WA_COREAPP_CONTAINER_TAG = "whatsapp.biz/coreapp" does it mean what my container should ber running from image "whatsapp.biz/web" and if they will be lunched from image "myregistry.corpdomain.local/whatsapp.biz/web" it wouldn't work ?

it is possible in check_network to use API calls to webapp instead of using docker library ?

mr-exz commented 4 years ago

found my problem why

errors.append(
                    "The number of running coreapp containers, for version {}, is not"
                    "same as number of running web containers".format(key)
)

it is an error ? count of core and web can be not equal and it is not a blocker for example 1 web and 2 cores (one in master mode).

also comparing by image tag as a version brings some problem, since people can modify your version (put some additional tools for debug inside) and re tag it v2.25.3_X.Y.Z for example and only one image can be modified.

mr-exz commented 4 years ago

Error: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory')) solved by installing wadebug with development tools

# gir clone ...
# cd /opt/WADebug/
# pip3 install tox
# tox -epy3
# source .tox/py3/bin/activate
# pip install --editable .
# wadebug full

For other checks: i had to turn off one core app to make up and running only one web and one core app - then check passed also i had to modify wadebug do not use versions from docker image tag, since my tag was modified, my modifications not connected to application but i added few shell scripts for troubleshooting and had to change tag

mengyiyuan commented 4 years ago

For check: check_network i found this definitions : WA_WEBAPP_CONTAINER_TAG = "whatsapp.biz/web" WA_COREAPP_CONTAINER_TAG = "whatsapp.biz/coreapp" does it mean what my container should ber running from image "whatsapp.biz/web" and if they will be lunched from image "myregistry.corpdomain.local/whatsapp.biz/web" it wouldn't work ?

it is possible in check_network to use API calls to webapp instead of using docker library ?

You are right, we assume most people will download the image directly from WhatsApp registry, without uploading to their own docker registry. Feel free to submit pull request if you think there's a way to make it more generic. :)

The purpose of check_network is to check if from containers can communicate with WA servers. The main concern is misconfigured firewall settings etc. https://developers.facebook.com/docs/whatsapp/network-debugging

mengyiyuan commented 4 years ago

found my problem why

errors.append(
                    "The number of running coreapp containers, for version {}, is not"
                    "same as number of running web containers".format(key)
)

it is an error ? count of core and web can be not equal and it is not a blocker for example 1 web and 2 cores (one in master mode).

also comparing by image tag as a version brings some problem, since people can modify your version (put some additional tools for debug inside) and re tag it v2.25.3_X.Y.Z for example and only one image can be modified.

As documented in the table at the top of this page: https://developers.facebook.com/docs/whatsapp/guides/wadebug, currently run checks doesn't support HA/MC setup, it only supports single instance setup, in which case there's only one container for each type of container.

The reason is that containers in an HA/MC setup may be distributed on different host, and how wadebug shall be distributed to all hosts and do its checks is more complicated, so is not included in the current scope.

mr-exz commented 4 years ago

ok will try customise it )

mr-exz commented 4 years ago

found my problem why

errors.append(
                    "The number of running coreapp containers, for version {}, is not"
                    "same as number of running web containers".format(key)
)

it is an error ? count of core and web can be not equal and it is not a blocker for example 1 web and 2 cores (one in master mode). also comparing by image tag as a version brings some problem, since people can modify your version (put some additional tools for debug inside) and re tag it v2.25.3_X.Y.Z for example and only one image can be modified.

As documented in the table at the top of this page: https://developers.facebook.com/docs/whatsapp/guides/wadebug, currently run checks doesn't support HA/MC setup, it only supports single instance setup, in which case there's only one container for each type of container.

The reason is that containers in an HA/MC setup may be distributed on different host, and how wadebug shall be distributed to all hosts and do its checks is more complicated, so is not included in the current scope.

my bad, missed it

mengyiyuan commented 4 years ago

No worries :) I will close this issue for now. Look forward to more collaboration on the tool.