GNU/Linux >> Znalost Linux >  >> Linux

Jednoduché způsoby, jak provést zjišťování služeb v Linuxu

Zjištění služby nemůže získat správnou definici bez potvrzení existující počítačové sítě. Počítačová síť nastavuje potřebné komunikační protokoly pro síťová zařízení pro sdílení dostupných zdrojů prostřednictvím jejích síťových uzlů. Toto sdílení zdrojů zahrnuje jak síťová zařízení, tak služby předdefinované v této síti.

Řešením automatického zjišťování nebo zjišťování těchto síťových zařízení a služeb v rámci počítačové sítě je životaschopná definice zjišťování služeb. Aby bylo vyhledávání služeb v nakonfigurované počítačové síti dokončeno, bude potřebovat pomoc síťového protokolu nazývaného Service Discovery Protocol (SDP). S těmito protokoly se uživatelé sítě a správci nemusejí spoléhat na své dovednosti v oblasti konfigurace sítě, aby věci uvedli do chodu.

Vzhledem k tomu, že služba zjišťování komunikuje se softwarovými agenty v počítačové síti, její komunikační protokoly musí dodržovat společný síťový jazyk, aby se zabránilo neustálému zásahu uživatele, kdykoli je potřeba provést kritický krok.

Konceptualizace zjišťování služeb v produkčním prostředí

Tradičně byl vývoj aplikací monolitický. Tento přístup byl později refaktorován tím, že jediná aplikace existuje jako malé synchronizované části, které pracují na společném cíli. Tento koncept definuje užitečnost mikroslužeb, přičemž oddělené komponenty pracují na dosažení jediného aplikačního cíle. SaaS nebo podnikové aplikace preferují tento přístup k vývoji aplikací.

Aplikace, která je definována malými součástmi, usnadňuje odstranění chyb a identifikaci a nahrazení součásti aplikace, která není plně funkční. Protože jsou tyto komponenty zničitelné, nasazení takových komponent v produkčním prostředí je propojí se síťovou službou, která se identifikuje s umístěním komponent a dalšími službami, které jsou k nim připojeny.

Tato automatická konfigurace instancí služeb na komponenty produkční aplikace narušuje definici zjišťování služeb.

Populární open-source nástroje pro zjišťování služeb pro Linux

Díky vývoji architektury mikroslužeb a jejímu příspěvku k vývoji moderních aplikací je objevování služeb nutností. Když je nasazena nová komponenta aplikace, služba objevování eliminuje jakoukoli latenci mezi aplikací a ostatními koncovými body služby. Pokud uvažujete o usnadnění některých funkcí zjišťování služeb prostřednictvím mikroslužeb, měli byste se s těmito open-source nástroji seznámit.

Konzul

Kromě splnění cíle zjišťování služeb je Consul účinným nástrojem pro monitorování a konfiguraci nastavení produkce sítě. Vytváří úložiště dat typu peer-to-peer a dynamické clustery prostřednictvím knihovny Serf. Z tohoto důvodu je tento nástroj pro vyhledávání služeb široce distribuován.

Consul je prezentován jako úložiště klíč-hodnota pro konfiguraci a správu produkčního prostředí. Serf existuje jako gossip protokol, který efektivně spravuje věci, jako je detekce selhání ve vytvořených clusterech. Konsenzus protokol zajišťuje konzistenci systému v tomto produkčním prostředí prostřednictvím Raft.

Hlavní funkce konzula

  • Za předpokladu, že existuje rozhraní aplikace jako MySQL, DNS nebo HTTP; služby se mohou snadno a automaticky registrovat samy. Je také snadné detekovat a zapouzdřit další externí služby potřebné pro správnou funkčnost prostředí nastavení sítě.
  • Tento nástroj má rozsáhlou podporu pro konfiguraci DNS. Díky tomu je proces integrace DNS bezproblémový.
  • Za předpokladu, že má instalační cluster zdravotní problémy, Consul účinně provede kontrolu stavu tohoto clusteru a zaregistruje výsledky diagnostiky do protokolu zaslaného příslušnému operátorovi sítě.
  • Funkce úložiště klíč/hodnota služby Consul je účinná při označování funkcí a vytváření dynamických konfigurací.
  • Tento nástroj spolupracuje s rozhraními HTTP API k ukládání a načítání dat klíč/hodnota definovaných a omezených v distribuovaném úložišti klíč/hodnota.

Nastavení clusteru Consul

Tato příručka bude mít praktickou představu o dosažení zjišťování služeb prostřednictvím clusteru Consul pomocí více uzlů.

Předpoklady
  • Toto nastavení bude produktivnější, pokud budete mít přístup ke třem serverům Linux.
  • Všechny vaše tři servery by měly mít otevřené určité porty. Jsou to 8300 pro TCP, 8301 pro TCP &UDP, 8302 pro TCP &UDP, 8400 pro TCP, 8500 pro TCP a 8600 pro TCP &UDP. V závislosti na serverech, které používáte, např. AWS, GCP nebo Azure, by značky vaší brány firewall a skupin zabezpečení měly být správně nakonfigurovány tak, aby zmíněné porty mohly snadno komunikovat.
Nastavení konzultačního clusteru

Protože používáme tři servery, budeme implementovat tříuzlový cluster Consul. Těmto uzlům můžeme dát jména konzul-1, konzul-2 a konzul-3. Následující kroky nás dovedou k plně funkčnímu clusteru Consul.

Instalace a konfigurace Consul na třech definovaných uzlech

Kroky jedna až tři platí pro všechny definované uzly konzulů.

Krok 1 :Na každém serverovém terminálu přejděte do adresáře bin a pomocí příslušného příkazu o vaší distribuci Linuxu si stáhněte binární soubor Linux Consul. Tento poslední odkaz zdůrazňuje instalační procedury pro ostatní správce balíčků Linuxu.

curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install consul

Krok 2: Měly by být vytvořeny následující adresáře. Věnujte pozornost adresářovým cestám.

sudo mkdir -p /etc/consul.d/scripts 
sudo mkdir /var/consul

Krok 3: Ze tří serverů vyberte jeden a spusťte na jeho terminálu následující příkaz, abyste vytvořili své konzulské tajemství. Vygenerovaný tajný klíč by měl být uložen do textového souboru.

consul keygen

Krok 4: Všechny vaše tři servery by měly mít následující konfigurační soubor. Vytvořte jej podle obrázku níže.

sudo vi /etc/consul.d/config.json

Naplňte výše vytvořený soubor config.json následujícími údaji. V tomto souboru by měla být hodnota „encrypt“ nahrazena tajnou hodnotou Consul, kterou jste vygenerovali v kroku 3. Hodnota „start_join“ by také měla obsahovat příslušné IP adresy tří serverů, které jste se rozhodli použít.

{ 
    "bootstrap_expect": 3, 
    "client_addr": "0.0.0.0", 
    "datacenter": "Us-Central", 
    "data_dir": "/var/consul", 
    "domain": "consul", 
    "enable_script_checks": true, 
    "dns_config": { 
        "enable_truncate": true, 
        "only_passing": true 
    }, 
    "enable_syslog": true, 
    "encrypt": "generated_Consul_key_value", 
    "leave_on_terminate": true, 
    "log_level": "INFO", 
    "rejoin_after_leave": true, 
    "server": true, 
    "start_join": [
        "server-1_IP", 
        "server-2_IP", 
        "server-3_IP" 
    ], 
    "ui": true 
}
Vytvoření služby Consul

Všechny naše tři uzly nebo servery by měly projít následujícími kroky.

Krok 1: Vytvoření souboru Systemd

sudo vi /etc/systemd/system/consul.service

Po vytvoření souboru jej vyplňte následujícími daty.

[Unit] 
Description=Consul Startup process 
After=network.target 

[Service] 
Type=simple 
ExecStart=/bin/bash -c '/usr/local/bin/consul agent -config-dir 
/etc/consul.d/' 
TimeoutStartSec=0 

[Install] 
WantedBy=default.target

Krok 2: Proveďte opětovné načtení systémových démonů

sudo systemctl daemon-reload
Zavedení a spuštění clusteru

Chcete-li spustit službu Consul na prvním serveru nebo consul-1, proveďte na jeho terminálu následující příkaz.

sudo systemctl start consul

Chcete-li spustit službu Consul na dalších dvou serverech, consul-2 a consul-3, měli byste provést stejný příkaz na jejich příslušných systémových terminálech OS.

sudo systemctl start consul

Na každém ze tří serverů si budete moci poznamenat jejich příslušné stavy clusteru spuštěním následujícího příkazu na každém z jejich terminálů.

 /usr/local/bin/consul members

Chcete-li zjistit, zda bylo nastavení clusteru Consul úspěšné, výstup, který získáte spuštěním výše uvedeného příkazu, by měl mít určité podobnosti s následujícím.

[fosslinux@consul-1 ~]$ /usr/local/bin/consul members
Node       Address       Status     Type     Build     Protocol     DC 
Segment 
consul-1 10.128.0.7:8301 alive     server   1.2.0        2     us-central 
<all> 
consul-2 10.128.0.8:8301 alive     server   1.2.0        2     us-central 
<all> 
consul-3 10.128.0.9:8301 alive     server   1.2.0        2     us-central 
<all>
Přístup k uživatelskému rozhraní Consul

Pokud je vaše nainstalovaná verze Consul 1.20 nebo novější, je zabalena s vestavěnou komponentou Consul UI. Toto uživatelské rozhraní Consul je webové a přístup k němu ve vašem prohlížeči vyžaduje, abyste dodržovali následující pravidlo syntaxe adresy URL.

http://<your-consul-server-IP-address>:8500/ui

Příklad implementace výše uvedeného pravidla syntaxe adresy URL bude něco podobného následujícímu:

http://46.129.162.98:8500/ui

Praktičnost konzula

Nevýhoda použití Consul je, když se zabýváme vlastní složitostí distribuovaných systémů, které jsou s ním konfigurovány. Tento problém je obecný a závisí na architektuře těchto systémů. Nemá to nic společného s výkonnostním aspektem konzula.

Další výhodou práce s Consul je, že má všechny potřebné knihovny, takže uživatelé nemusí definovat a používat knihovny třetích stran. Konceptualizaci Consul můžeme přirovnat k Netflixu OSS Sidecar. Zde zůstávají klienti, kteří nejsou Zookeeperem, zjistitelní, protože se mohou zaregistrovat do systému.

Význam nástroje pro vyhledávání služeb Consul přilákal renomované společnosti jako SendGrid, Percolate, DigitalOcean, Outbrain a EverythingMe.

Etcd

Nástroj pro zjišťování služeb Etcd nabízí funkce úložiště klíč/hodnota podobně jako v Consul a Zookeeper. Dříve to byla klíčová součást CoreOS před stavem ukončení podpory operačního systému. Klíčovým při jeho vývoji byl programovací jazyk Go. Používá také Raft jako prostředek pro zpracování konsenzuálních protokolů.

Je rychlý a spolehlivý při poskytování rozhraní API založených na JSON a HTTP. Toto funkční ustanovení je dále doplněno o dotazovací a push notifikace. V praktickém nastavení bude definovaný nebo vytvořený cluster hostit pět nebo sedm uzlů. Kromě zjišťování služeb budou mít z registrace těchto služeb prospěch také architektury mikroslužeb, které implementují Etcd do svých kontejnerů.

V rámci registrace služby Etcd zpracovává zápis potřebného páru klíč–hodnota. V rámci zjišťování služby Etcd zpracovává čtení vytvořeného páru klíč–hodnota.

Aby ostatní vytvořené aplikace komunikovaly s Etcd, musí dodržovat projektový protokol confd. Tento protokol vytváří statické konfigurační soubory z uložených informací Etcd. V tomto nastavení je odpovědností klientů spravovat všechna funkční selhání připojení a vytvořit opětovné připojení prostřednictvím jiných funkčních instancí služeb.

Mezi významné společnosti, které mají ve svém životopisu Etcd, patří CloudGear, Headspace, Red Hat, Kubernetes, Apptus, Zenreach, Cloud Foundry a Google. Rostoucí podpora komunity Etcd zlepšuje zkušenosti vývojářů s platformou tohoto nástroje pro zjišťování služeb.

Nastavení Etcd

Schopnost Etcd ukládat a načítat konfigurace není jeho jedinou hlavní funkcí jako open source úložiště klíč-hodnota. Vytvořené clustery Etcd mají minimální problémy se selháním uzlů kvůli jejich vysoké dostupnosti. Jeho uložené hodnoty získávají klienti prostřednictvím REST/gRPC.

Předpoklady

Díky následujícím požadavkům budou vaše zkušenosti s nastavováním clusteru Etcd plodnější.

  • Mějte přístup ke třem funkčním serverům Linux
  • Vaše tři možnosti serveru by měly být nakonfigurovány s platnými názvy hostitelů.
  • Pro efektivní komunikaci typu peer-to-peer a požadavky klientů by měly být porty 2380 a 2379 na vašich serverech povoleny z pravidel brány firewall systému.
Nastavení clusteru Etcd na vašem počítači se systémem Linux

Nastavení clusteru Etcd by vám nemělo způsobovat žádné bolesti hlavy, protože je relativně jednoduché, zejména se statickým bootstrapem. Abyste mohli úspěšně zavést tento přístup, měli byste si zapamatovat IP adresy vašeho uzlu. Tento průvodce nastavením pokryje všechny kroky, které můžete potřebovat k úspěšnému vytvoření clusterů serverů Linux, protože se zabýváme nastavením s více uzly.

Aby etcd běžel jako služba, budeme také muset nakonfigurovat soubory systemd. Níže je uveden pouze příklad zmíněného vztahu názvu hostitele k adrese IP, který budeme používat v tomto průvodci nastavením.

etcd-1 : 10.128.0.7

etcd-2 : 10.128.0.8

etcd-3 : 10.128.0.9

Pokud máte potřebná oprávnění správce, můžete změnit názvy hostitelů svých serverů tak, aby odrážely vaše přizpůsobitelné preference.

Je čas začít s nastavením clusteru etcd.

Tři uzly

Následující postupné kroky platí pro všechny tři serverové uzly.

Krok 1: Na každém terminálu serveru přejděte do adresáře src pomocí následujícího příkazu:

cd /usr/local/src

Krok 2: Při odkazování na vydání Github byste měli být schopni získat nejnovější vydání etcd. Nezapomeňte si stáhnout jeho nejnovější stabilní verzi.

sudo wget "https://github.com/coreos/etcd/releases/download/v3.3.9/etcd-v3.3.9-linux-amd64.tar.gz"

Krok 3: V tomto kroku rozbalíme stažený binární soubor etcd.

sudo tar -xvf etcd-v3.3.9-linux-amd64.tar.gz

Krok 4: Proces untar by měl poskytnout soubory etcd a etcdctl. Tyto extrakce jsou spustitelné soubory etcd. Pomocí následujícího příkazu je přesuňte do místního adresáře bin.

sudo mv etcd-v3.3.9-linux-amd64/etcd* /usr/local/bin/

Krok 5: Protože chceme, aby službu etcd spouštěl uživatel etcd, budete muset vytvořit uživatele, skupinu a složky etcd.

sudo mkdir -p /etc/etcd /var/lib/etcd
groupadd -f -g 1501 etcd
useradd -c "etcd user" -d /var/lib/etcd -s /bin/false -g etcd -u 1501 etcd
chown -R etcd:etcd /var/lib/etcd

Krok 6: Při provádění následujících akcí se ujistěte, že máte oprávnění uživatele root.

ETCD_HOST_IP=$(ip addr show eth0 | grep "inet\b" | awk '{print $2}' | cut -d/ -f1)
ETCD_NAME=$(hostname -s)

Výše uvedená sekvence příkazů nastavuje dvě proměnné prostředí. První proměnná prostředí načte IP adresu serveru a druhá přiřadí tuto IP adresu k názvu hostitele.

Etcd nyní potřebuje soubor služby systemd.

cat << EOF > /lib/systemd/system/etcd.service

Po vytvoření tohoto souboru služby jej vyplňte tak, aby vypadal podobně jako soubor níže.

[Unit]
Description=etcd service
Documentation=https://github.com/etcd-io/etcd 
 
[Service]
User=etcd
Type=notify
ExecStart=/usr/local/bin/etcd \\
 --name ${ETCD_NAME} \\
 --data-dir /var/lib/etcd \\
 --initial-advertise-peer-urls http://${ETCD_HOST_IP}:2380 \\
 --listen-peer-urls http://${ETCD_HOST_IP}:2380 \\
 --listen-client-urls http://${ETCD_HOST_IP}:2379,http://127.0.0.1:2379 \\
 --advertise-client-urls http://${ETCD_HOST_IP}:2379 \\
 --initial-cluster-token etcd-cluster-1 \\
 --initial-cluster etcd-1=http://10.142.0.7:2380,etcd-2=http://10.142.0.8:2380,etcd-3=http://10.142.0.9:2380 \\
 --initial-cluster-state new \\
 --heartbeat-interval 1000 \\
 --election-timeout 5000
Restart=on-failure
RestartSec=5
 
[Install]
WantedBy=multi-user.target
EOF

Část „–listen-client-urls“ tohoto souboru by měla být nahrazena třemi použitými IP adresami serveru. V závislosti na nastavovacích serverech se hodnoty „–name“, „–listen-peer-urls“, „–initial-advertise-peer-urls“ a „–listen-client-urls“ budou lišit. Pokud jde o proměnné ETCD_HOST_IP a ETCD_NAME, jejich vstupní hodnoty jsou automatizovány a nahrazeny systémem.

Bootstrapping etcd cluster

Výše uvedené konfigurace z kroků 1 až 6 by měly platit pro všechny vaše tři servery. Poté bude dalším krokem spuštění a povolení služby etcd, kterou jsme právě vytvořili. Toto úsilí by se mělo vztahovat na všechny tři uzly. Server 1 převezme funkčnost zaváděcího uzlu. Jakmile je služba etcd spuštěna, automaticky vybere jeden uzel jako vedoucí. Nemusíte se tedy bát, že byste byli zapojeni do této konfigurace hlavního uzlu.

systemctl daemon-reload
systemctl enable etcd
systemctl start etcd.service
systemctl status -l etcd.service
Ověření stavu clusteru Etcd

Nástroj etcdctl, který jsme dříve extrahovali po stažení binárního souboru etcd, je zodpovědný za zahájení interakce s clusterem etcd. Všechny vaše tři uzly by měly mít tento nástroj v adresáři /usr/local/bin.

Následující systémové kontroly jsou použitelné na všech uzlech clusteru a nejsou omezeny na jeden konkrétní. První kontrolou je zjištění zdravotního stavu vašeho clusteru.

etcdctl cluster-health

Můžete také zkontrolovat a ověřit stav členství uzlu clusteru, abyste zjistili, zda má stav vedení.

etcdctl  member list

Ve výchozím nastavení budete mít explicitní přístup k funkcím etcd v2 prostřednictvím etcdctl. Je to jeho výchozí přidružení. Pokud chcete získat přístup k etcd v3 a jeho funkcím, je schůdnou možností použití proměnné „ETCDCTL_API=3“. Chcete-li implementovat tuto proměnnou, nakonfigurujte ji jako proměnnou prostředí. Případně můžete proměnnou předat při každém použití příkazu etcdctl.

Zkuste vytvořit a ověřit následující páry klíč–hodnota.

ETCDCTL_API=3 etcdctl put name5 apple
ETCDCTL_API=3 etcdctl put name6 banana
ETCDCTL_API=3 etcdctl put name7 orange
ETCDCTL_API=3 etcdctl put name8 mango

Chcete-li získat přístup k hodnotě name7, proveďte následující příkaz.

ETCDCTL_API=3 etcdctl get name7

Pomocí rozsahů a předpon je možné vypsat všechny klíče, jak je znázorněno níže:

ETCDCTL_API=3 etcdctl get name5 name8 # lists range name5 to name8
ETCDCTL_API=3 etcdctl get --prefix name # lists all keys with name prefix

Apache Zookeeper

Tuto službu lze popsat jako centralizovanou, distribuovanou a konzistentní. Za jeho vznik je zodpovědný programovací jazyk Java. Apache Zookeeper může efektivně spravovat změny clusteru prostřednictvím protokolu Zab. Jeho předchozí rolí byla údržba softwarových clusterových komponent ve světě Apache Hadoop.

Zde je úložiště dat buď na stromě, uvnitř systému souborů nebo v hierarchickém jmenném prostoru. Když je klient připojen k této síti, uzly budou nadále existovat. Na druhou stranu, když dojde k odpojení sítě nebo dojde k problému s nakonfigurovanou sítí, uzly zmizí. Když dojde k problému se selháním sítě nebo vyrovnáváním zátěže, je na klientech, aby je vyřešili. Když Apache Zookeeper zaregistruje novou službu, klienti obdrží upozornění týkající se těchto služeb.

Důslednost systému Zookeeper jej neochrání před potenciálními selháními systému. Některé platformy mohou mít problémy s registrací potřebných služeb nebo dokonce narazit na chyby při implementaci funkcí služby čtení a zápisu. Na druhou stranu je Apache Zookeeper i nadále robustní a zavedenou aplikací s rozsáhlou podporou knihoven, která je přínosem pro její živou uživatelskou komunitu a rostoucí klienty.

Mezi významné společnosti, které se spojují s Apache Zookeeper, patří Apache Software Foundation, Luxoft, Solr, Reddit, Rackspace, Spero Solutions, F5 Networks, Cloudera, eBay a Yahoo!

Nastavení Apache Zookeeper

Apache Zookeeper je ideální pro manipulaci s různými distribuovanými pracovními zátěžemi, protože je funkční jako distribuovaný koordinační nástroj.

Předpoklady
  • Potřebujete tři virtuální stroje (VM). Počet virtuálních počítačů k použití může být vyšší než 3, ale pro cluster s vysokou dostupností musí být tento počet lichý.
  • Porty 2181, 2888 a 3888 musí být povoleny prostřednictvím IPtables serverového systému, aby příchozí připojení virtuálních počítačů probíhala prostřednictvím těchto portů. Tyto porty jsou zodpovědné za komunikaci Apache Zookeeper.

Jednotlivci pracující pod cloudovými poskytovateli, jako je AWS, by měli mít koncové body nebo skupiny zabezpečení povolené, aby Apache Zookeeper mohl pracovat s těmito porty.

Instalace a konfigurace Apache Zookeeper

Všechny vaše tři virtuální počítače by měly mít prospěch z následujících kroků:

Krok 1: Aktualizace serveru

 sudo yum -y update

Krok 2: Instalace Java. Pokud je Java již nainstalována, tento krok přeskočte.

 sudo yum  -y install java-1.7.0-openjdk

Krok 3: Ke stažení Zookeeper použijte příkaz „wget“.

wget http://mirror.fibergrid.in/apache/zookeeper/zookeeper-3.5.2-alpha/zookeeper-3.5.2-alpha.tar.gz

Krok 4: Rozbalte aplikaci Apache Zookeeper do adresáře /opt.

 sudo tar -xf zookeeper-3.5.2-alpha.tar.gz -C /opt/

Krok 5: Přejděte do adresáře aplikace Apache Zookeeper a přejmenujte jej na

cd /opt
sudo mv zookeeper-* zookeeper

Krok 6: V adresáři /opt/zookeeper/conf budeme muset pracovat se souborem nazvaným zoo.cfg. Vytvořte tento soubor a naplňte jej následujícími konfiguračními daty.

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=<ZooKeeper_IP/hostname>:2888:3888
server.2=<ZooKeeper_iP/hostname>:2888:3888
server.3=<ZooKeeper_iP/hostname>:2888:3888

Vaše tři servery Zookeeper jsou reprezentovány serverem 1, serverem 2 a serverem 3. Proměnná „ZooKeeper_IP“ by měla být nahrazena buď vašimi třemi IP adresami serveru, nebo rozlišitelnými názvy hostitelů těchto identifikovatelných IP adres.

Krok 7:  Soubor zoo.cfg, který jsme vytvořili a naplnili, ukazuje na datový adresář s názvem lib, který také obsahuje další adresář s názvem zookeeper. Potřebujeme vytvořit tento adresář, protože ještě neexistuje.

 sudo mkdir /var/lib/zookeeper

Krok 8: Uvnitř výše vytvořeného adresáře vytvořte soubor myid.

 sudo touch /var/lib/zookeeper/myid

Krok 9: Tento soubor myid bude obsahovat jedinečná čísla k identifikaci každého serveru Apache Zookeeper.

Pro server Zookeeper 1

 sudo sh -c "echo '5' > /var/lib/zookeeper/myid"

Pro server Zookeeper 2

 sudo sh -c "echo '6' > /var/lib/zookeeper/myid"

Pro server Zookeeper 3

 sudo sh -c "echo '7' > /var/lib/zookeeper/myid"
Konfigurace služby Apache Zookeeper

Ke spuštění a zastavení Zookeeper budeme muset použít skripty. Spouštění těchto skriptů jako služby je však pomáhá lépe spravovat. Budeme muset otevřít soubor zkServer.sh.

 sudo vi /opt/zookeeper/bin/zkServer.sh

Otevřený soubor pod „#!/usr/bin/env“ jej naplní následujícími daty.

# description: Zookeeper Start Stop Restart
# processname: zookeeper
# chkconfig: 244 30 80

Ve stejném souboru zkServer.sh sledujte živé „#use POSTIX interface, symbollink…“. Nahraďte a nahraďte proměnné, které následují po tomto řádku, těmito hodnotami.

ZOOSH=`readlink $0`
ZOOBIN=`dirname $ZOOSH`
ZOOBINDIR=`cd $ZOOBIN; pwd`
ZOO_LOG_DIR=`echo $ZOOBIN`

Služba Zookeeper nyní potřebuje symbolický odkaz.

sudo ln -s /opt/zookeeper/bin/zkServer.sh /etc/init.d/zookeeper

Spouštěcí nabídka by měla obsahovat Zookeeper.

sudo chkconfig zookeeper on

Všechny vaše tři servery by měly být restartovány pomocí následujícího příkazu. Spusťte jej na příslušných terminálech.

 sudo  init 6

Jakmile se servery restartují, jejich správa bude snadná pomocí následujících příkazových sekvencí.

sudo service zookeeper status
sudo service zookeeper stop
sudo service zookeeper start
sudo service zookeeper restart

Když se spustí příkaz pro kontrolu stavu Zookeeper, výstup terminálu by měl být podobný následujícímu.

/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader

Jeden ze tří serverů má přiřazen režim vůdce a ostatní dva si zachovávají režim sledování.

Poznámka na závěr

Zjišťování služeb slouží dvěma důležitým cílům:vysoké dostupnosti a detekci selhání. S více funkcemi ve frontě nemůže být implementace infrastruktury dokončena bez rozpoznání a konfigurace nástrojů pro vyhledávání služeb, jako jsou Consul, Etcd a Apache Zookeeper. Tyto nástroje jsou open source a v zásadě efektivní ve svých funkcích poskytování služeb. Proto nenarazíte na žádné zdi při pokusu o testování nebo implementaci jednoduchého mechanismu zjišťování služeb na vašich systémech Linux.


Linux
  1. Linux OS Service „iptables“

  2. Linux OS Service ‚síť‘

  3. Služba „portmap“ operačního systému Linux

  1. Služba „audit“ operačního systému Linux

  2. Služba operačního systému Linux „nfs“

  3. Služba operačního systému Linux „microcode_ctl“

  1. Služba Linux OS „NetFS“

  2. Služba Linux OS „ldap“

  3. Služba OS Linux „yppasswdd“