Si has utilizado la utilidad ping de línea de comandos para comprobar la conectividad de red simple entre hosts, sabes lo útil que es. Pues bien, ahora existe una utilidad similar para Couchbase. Se llama cbping y comprobará la conectividad de un cluster de Couchbase o de un cluster remoto XDCR.
cbping realiza sencillas pruebas de conectividad con Couchbase para comprobar los siguientes tipos de cosas:
- ¿Están abiertos los puertos que necesita Couchbase?
- Tiempo que tardan los puertos en conectarse
- ¿Qué nodos hay en el clúster? Haz las mismas pruebas en ellos también.
Además, también puede comprobar la conectividad con clusters de destino XDCR. Sólo recuerde que está comprobando la conectividad desde donde sea que se esté ejecutando el cbping y no desde dentro del cluster, o una comprobación de salud desde dentro del cluster. Es un simple "puedo conectarme a este objetivo en estos puertos".
Para obtener el script a utilizar, clone el repositorio githup para cbping.
A continuación se muestra un ejemplo de un clúster Couchbase de tres nodos:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
$ python cbping.py -H 172.16.40.144 -P 8091 -u Administrator -p <password> I will assume that you meant cluster mode I will connect to: https://172.16.40.144:8091/pools/default and run some tests. This cluster says there are 3 nodes in the cluster. Cluster Node Node Status Node CB version ------------ ----------- --------------- 172.16.40.142:8091 healthy 4.5.0-2601-enterprise 172.16.40.143:8091 healthy 4.5.0-2601-enterprise 172.16.40.144:8091 healthy 4.5.0-2601-enterprise Hostname Port Result Elapsed Time* -------- ---- ------ ------------ 172.16.40.142 8091 SUCCESS 272.0 172.16.40.142 8092 SUCCESS 67.0 172.16.40.142 8093 SUCCESS 90.0 172.16.40.142 8094 [Errno 61] Connection refused 87.0 172.16.40.142 9100 [Errno 61] Connection refused 82.0 172.16.40.142 9102 [Errno 61] Connection refused 82.0 172.16.40.142 9103 [Errno 61] Connection refused 110.0 172.16.40.142 9104 [Errno 61] Connection refused 81.0 172.16.40.142 9105 [Errno 61] Connection refused 88.0 172.16.40.142 9998 [Errno 61] Connection refused 93.0 172.16.40.142 9999 SUCCESS 60.0 172.16.40.142 11207 SUCCESS 60.0 172.16.40.142 11209 SUCCESS 61.0 172.16.40.142 11210 SUCCESS 57.0 172.16.40.142 11211 SUCCESS 70.0 172.16.40.142 11214 SUCCESS 101.0 172.16.40.142 11215 [Errno 61] Connection refused 82.0 172.16.40.142 18091 SUCCESS 91.0 172.16.40.142 18092 SUCCESS 72.0 172.16.40.142 18093 SUCCESS 97.0 172.16.40.142 4369 SUCCESS 59.0 172.16.40.142 21100 SUCCESS 72.0 *Elapsed time is in microseconds. Hostname Port Result Elapsed Time* -------- ---- ------ ------------ 172.16.40.143 8091 SUCCESS 224.0 172.16.40.143 8092 SUCCESS 90.0 172.16.40.143 8093 [Errno 61] Connection refused 97.0 172.16.40.143 8094 [Errno 61] Connection refused 85.0 172.16.40.143 9100 SUCCESS 60.0 172.16.40.143 9102 SUCCESS 62.0 172.16.40.143 9103 [Errno 61] Connection refused 85.0 172.16.40.143 9104 [Errno 61] Connection refused 89.0 172.16.40.143 9105 SUCCESS 88.0 172.16.40.143 9998 [Errno 61] Connection refused 81.0 172.16.40.143 9999 [Errno 61] Connection refused 106.0 172.16.40.143 11207 SUCCESS 75.0 172.16.40.143 11209 SUCCESS 70.0 172.16.40.143 11210 SUCCESS 89.0 172.16.40.143 11211 [Errno 61] Connection refused 121.0 172.16.40.143 11214 SUCCESS 70.0 172.16.40.143 11215 [Errno 61] Connection refused 98.0 172.16.40.143 18091 SUCCESS 91.0 172.16.40.143 18092 SUCCESS 73.0 172.16.40.143 18093 [Errno 61] Connection refused 104.0 172.16.40.143 4369 SUCCESS 91.0 172.16.40.143 21100 SUCCESS 81.0 *Elapsed time is in microseconds. Hostname Port Result Elapsed Time* -------- ---- ------ ------------ 172.16.40.144 8091 SUCCESS 85.0 172.16.40.144 8092 SUCCESS 91.0 172.16.40.144 8093 [Errno 61] Connection refused 120.0 172.16.40.144 8094 [Errno 61] Connection refused 112.0 172.16.40.144 9100 SUCCESS 93.0 172.16.40.144 9102 SUCCESS 64.0 172.16.40.144 9103 [Errno 61] Connection refused 158.0 172.16.40.144 9104 [Errno 61] Connection refused 99.0 172.16.40.144 9105 SUCCESS 87.0 172.16.40.144 9998 [Errno 61] Connection refused 104.0 172.16.40.144 9999 SUCCESS 71.0 172.16.40.144 11207 SUCCESS 61.0 172.16.40.144 11209 SUCCESS 63.0 172.16.40.144 11210 SUCCESS 84.0 172.16.40.144 11211 SUCCESS 76.0 172.16.40.144 11214 SUCCESS 62.0 172.16.40.144 11215 [Errno 61] Connection refused 80.0 172.16.40.144 18091 SUCCESS 92.0 172.16.40.144 18092 SUCCESS 78.0 172.16.40.144 18093 [Errno 61] Connection refused 120.0 172.16.40.144 4369 SUCCESS 73.0 172.16.40.144 21100 SUCCESS 64.0 *Elapsed time is in microseconds. -------------- Bucket Information -------------- I will get bucket info from: https://172.16.40.144:8091/pools/default/buckets Bucket Name itemCount Bucket Type ----------- --------- ----------- crimes 3033827 Couchbase |
Como puedes ver, comprueba todos los puertos en los que Couchbase Server podría estar ejecutándose según la documentación. En los nodos de arriba, no todos los puertos están abiertos y eso está bien. Los que no están abiertos son los de encriptación, llamadas internas, otros servicios que no estoy ejecutando en ese nodo (por ejemplo, Query, Index, Data, FTS, etc). Si quieres ver lo que hace cada uno de los puertos en cbping, entonces pon una opción -v en la línea de comandos y verás una descripción para cada uno, así:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Hostname Port Result Elapsed Time* Description -------- ---- ------ ------------ ----------- 172.16.40.144 8091 SUCCESS 65.0 Console REST/HTTP 172.16.40.144 8092 SUCCESS 63.0 Views, queries, XDCR, design documents 172.16.40.144 8093 [Errno 61] Connection refused 111.0 Query services REST/HTTP 172.16.40.144 8094 [Errno 61] Connection refused 111.0 Search service external HTTP 172.16.40.144 9100 SUCCESS 62.0 Internal index admin 172.16.40.144 9102 SUCCESS 59.0 Internal index HTTP 172.16.40.144 9103 [Errno 61] Connection refused 82.0 Internal index build 172.16.40.144 9104 [Errno 61] Connection refused 80.0 Internal index build 172.16.40.144 9105 SUCCESS 54.0 Internal index maintenance 172.16.40.144 9998 [Errno 61] Connection refused 93.0 Internal REST 172.16.40.144 9999 SUCCESS 59.0 Internal GSI for internal admins 172.16.40.144 11207 SUCCESS 94.0 Memcached SSL for smart client libraries 172.16.40.144 11209 SUCCESS 59.0 Internal Bucket 172.16.40.144 11210 SUCCESS 58.0 Memcached for smart client lib or Moxi 172.16.40.144 11211 SUCCESS 57.0 Pre-existing Couchbase Server & memcached (non-smart) client libraries (such as Moxi) 172.16.40.144 11214 SUCCESS 57.0 SSL XDCR data encryption 172.16.40.144 11215 [Errno 61] Connection refused 93.0 SSL XDCR data encryption 172.16.40.144 18091 SUCCESS 110.0 Web Console SSL REST/HTTP traffic 172.16.40.144 18092 SUCCESS 64.0 SSL for views access, run queries, XDCR & update design documents 172.16.40.144 18093 [Errno 61] Connection refused 114.0 N1QL SSL 172.16.40.144 4369 SUCCESS 91.0 Erlang Port Mapper 172.16.40.144 21100 SUCCESS 85.0 Node data exchange |