GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nastavit replikaci CouchDB na Ubuntu 16.04

V dnešním článku nastavíme replikaci CouchDB na Ubuntu 16.04. CouchDB je NoSQL databáze hodně podobná cassandře. Spíše než Cassandra's Java je CouchDB napsán Erlang a je to projekt Apache Software Foundation od roku 2008. Tato databáze je orientovaná na dokumenty, ne nepodobná MongoDB. Pro tento tutoriál potřebujete dva uzly se serverem Ubuntu 16.04. Ve svém notebooku budu používat instance KVM, můžete použít buď VM nebo fyzické stroje. Takže začneme.

Instalace a CouchDB na uzlu Ubuntu

Nejprve aktualizujeme seznam zdrojů

sudo apt update

Dále nainstalujeme balíček software-properties-common, který nám umožňuje přidávat PPA repozitáře. Možná je zahrnut ve výchozím nastavení, ale pokud není, musíte tento příkaz spustit

sudo apt install software-properties-common

Dále přidáme úložiště pro couchdb, odkud nainstalujeme databázový software

sudo add-apt-repository ppa:couchdb/stable

Poté můžeme nainstalovat couchdb jednoduchým příkazem:

sudo apt-get install couchdb

Po provedení tohoto příkazu se nainstaluje couchdb a poběžíme na portu 5984, můžeme použít curl k získání informací o databázi

curl localhost:5984

Jak vidíme, již běží.

Jak vytvořit a odstranit databázi

Couchdb je manipulováno prostřednictvím požadavků http. Když chcete něco udělat, zadáte požadavek na localhost na výchozím portu, na kterém běží CouchDB. To je port 5984. Z bezpečnostních důvodů to můžete provést pouze na localhost, na počítači, kde běží couchdb.

Pojďme přidat databázi:

miki@ubuntu-1:~$ curl -X PUT localhost:5984/new_database
{"ok":true}

Nyní vypíšeme všechny databáze v systému:

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users","new_database"]

První dva tam jsou standardně, new_database je to, co jsme vytvořili. Tak to smažeme. Smazání databází se provádí následujícím příkazem

miki@ubuntu-1:~$ curl -X DELETE http://127.0.0.1:5984/new_database
{"ok":true}

Nyní znovu spusťte druhý příkaz

miki@ubuntu-1:~$ curl -X GET http://127.0.0.1:5984/_all_dbs
["_replicator","_users"]

Vidíme, že new_database chybí, protože jsme ji smazali.

Futon – grafické uživatelské rozhraní CouchDB

Pokud navštívíte http://localhost:5984/_utils ve svém prohlížeči najdete Futon. Futon je rozhraní CouchDB GUI. Ale jak již bylo zmíněno, CouchDB z bezpečnostních důvodů umožňuje správu pouze z localhost, což znamená ze serveru, na který jste CouchDB nainstalovali. Nemůžete zadat IP adresu serveru místo localhost. Pokud tedy chcete spravovat server z vašeho notebooku, museli bychom použít malý trik. Potřebovali bychom vytvořit ssh tunel na server, vytvořit mini VPN a přimět váš server, aby si myslel, že požadavek přichází z localhost. Chcete-li to provést, zadejte na místním počítači následující příkaz:

miki@ThinkPad-X220T:~$ ssh -L5984:127.0.0.1:5984 [email protected]

Tím se vytvoří tunel, který potřebujeme, a poté můžete spustit prohlížeč a přejít na http://localhost:5984/_utils/index.html

Poskytne vám uživatelské rozhraní podobné tomuto

Protože se v další kapitole chystáme replikovat databázi, musíme naši cílovou databázi nastavit tak, aby přijímala repliku z jiných míst než localhost. To lze nastavit v parametru bind_address na konfigurační stránce Futonu. Musí být nastaven na 0.0.0.0 k poslechu na všech IP, nikoli pouze na localhost. Něco jako toto:

Můžete to udělat na obou svých uzlech (budete muset vytvořit nový ssh tunel pro další uzly), ale obecně pouze cíl, kde je vytvořena replika, potřebuje naslouchat na všech IP adresách. Zdroj může nadále poslouchat pouze localhost.

Místní replikace databáze

Replikace databáze je, stejně jako vše ostatní v CoucdDB, také provedena HTTP požadavkem. Musíte zadat zdrojovou a cílovou databázi. Cíl může být lokální nebo vzdálená databáze. Protože jsme již nastavili ubuntu-1 poslouchat všechny ip, pojďme vytvořit db, kterou budeme replikovat na hostiteli ubuntu-2.

miki@ubuntu-2:~$ curl -X PUT localhost:5984/db-replica
{"ok":true}

Nyní se podívejme, jak můžeme tuto databázi lokálně replikovat. Na stejném serveru

curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://localhost:5984/foo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"f8fa7b615b4e951d7ab7254ed58d049d+continuous+create_target"}

Tento příkaz by měl vytvořit databázi foo na místním hostiteli a jako zdroj by měla být použita replika databáze db, kterou jsme již vytvořili dříve. Povolili jsme také možnost kontinuální, což znamená, že databáze bude pravidelně synchronizována, když provedete jakékoli změny zdrojová databáze, což je v tomto případě db-replika. Po spuštění tohoto příkazu umožňuje zkontrolovat všechny dostupné databáze

miki@ubuntu-2:~$ curl -X GET localhost:5984/_all_dbs

["_replicator","_users","db-replica","foo"]

Databáze foo byla vytvořena.

Vzdálená replikace

Zkusme to nyní udělat vzdáleně, náš zdroj je opět db-replika na serveru ubuntu-2 a náš cíl bude vzdálený na našem serveru ubuntu-1. Pokud není přítomna, vytvoří novou databázi (parametr create_target) a repliku bude průběžně synchronizovat pro všechny změny, jakmile k nim dojde.

miki@ubuntu-2:~$ curl -H 'Content-Type: application/json' -X POST http://localhost:5984/_replicate -d ' {"source": "http://localhost:5984/db-replica", "target": "http://192.168.122.223:5984/remotefoo", "create_target": true, "continuous": true} '
{"ok":true,"_local_id":"cf7f6399835a893ab48282cb269eb1ab+continuous+create_target"}

Pojďme zkontrolovat dbs na serveru ubuntu-1

miki@ubuntu-1:~$ curl -X GET localhost:5984/_all_dbs
["_replicator","_users","dbtest","remotefoo"]

Můžeme vidět, jak funguje vzdálená replikace. V případě, že chcete pouze jednorázovou replikaci, budete muset změnit kontinuální parametr na false nebo jej jednoduše vynechat. Pokud chcete zobrazit protokoly couchDB , najdete jej v adresáři /var/log/couchdb/couch.log. K přístupu k němu budete potřebovat oprávnění sudo nebo root, a pokud chcete interaktivně sledovat protokoly, udělá to tento příkaz

sudo tail -f /var/log/couchdb/couch.log

Závěr

Prošli jsme základní příkazy a použití CouchDB. Vytváření nové databáze, mazání, replikace lokálně nebo přes síť se provádí pomocí HTTP požadavků a lze je zakódovat do vaší aplikace. Kontrola protokolů se provádí normálním příkazem tail -f, a když je potřeba GUI, máme Futon, který je dostatečně intuitivní, aby vám pomohl dělat všechny úkoly, na které se v příkazovém řádku necítíte dostatečně pohodlně. To je pro tento článek vše, děkuji za přečtení a přeji hezký den.


Ubuntu
  1. Jak nastavit HAProxy v Ubuntu 16.04

  2. Jak nastavit UFW Firewall na Ubuntu 18.04

  3. Jak nastavit Elasticsearch na Ubuntu 18.04 a 16.04 LTS

  1. Nastavení serveru Rsyslog na Ubuntu 20.04 – Jak na to?

  2. Jak nainstalovat CouchDB na Ubuntu 20.04

  3. Jak nastavit replikaci MariaDB Master Slave na Ubuntu 18.04

  1. Jak nastavit server OpenVPN na Ubuntu 20.04

  2. Jak nainstalovat CouchDB na Ubuntu 18.04

  3. Jak nainstalovat CouchDB na Ubuntu 20.04