Instalace InfluxDB na Ubuntu 14
Úvod InfluxDB je open source, distribuovaná databáze časových řad bez externích závislostí. Ano, četli jste par
Od svého vzniku v roce 2009 je MongoDB vedoucím odvětvím NoSQL. Jedním ze základních konceptů MongoDB je Replica Set, takže než s ním začnete pracovat, nejprve si koncept projděte.
Nejjednodušším modelem komunikace používaným při replikaci databází je architektura Master-Slave. Jak jeho název napovídá, tento model má 2 role, které jsou rozprostřeny v jedinečném masteru a mnoha slave, úlohou master je zpracovávat operace čtení a zápisu prováděné klienty a slave jsou považovány za repliku mastera.
Nejdůležitější výhodou tohoto modelu je, že výkon hlavního uzlu není ohrožen operacemi zálohování, operace zálohování se provádějí asynchronním způsobem, což se může stát vážným problémem, když hlavní uzel selže. Slave uzly jsou pouze pro čtení a musí být manuálně povýšeny na master uzel, takže v této době existuje možnost ztráty dat.
Jednou z možností, jak vyřešit problém s dostupností, je mít v architektuře více než jeden hlavní server, ale to může vést k dalšímu problému v konzistenci dat mezi těmito instancemi a další složitosti konfigurace.
Nyní vzhledem k kontextu můžeme představit technologii Replica Set MongoDB. Replica Set je název architektury Master-Slave, která má automatické převzetí služeb při selhání, takže v okamžiku, kdy hlavní primary
uzel (který se nyní jmenuje ) nefunguje správně, election
dojde ke spuštění a ze zbývajících podřízených zařízení bude zvolen nový primární uzel ( nyní označované jako secondaries
).
Primární uzel je jediný, který provádí operace zápisu, ve výchozím nastavení operace čtení zpracovává také primární, ale toto chování lze později změnit.
Operace se zaznamenávají do oplog
(provozního deníku), poté sekundární uzly aktualizují svůj obsah asynchronně na základě obsahuoplog
Poznámka: oplog
je omezená kolekce, to znamená, že kolekce má limit, pomocí kterého local.oplog.rs
můžete zkontrolovat obsah této kolekce uvnitř mongo shellu v libovolném členu sady.
Kromě toho, že sekundární uzel provádějí správné zálohování databáze, má tyto role:
Díky těmto vlastnostem můžeme mít různé typy sekundárních uzlů:
primary
a nemohou spustit volby, přesto mohou hlasovat ve volbách, mají kompletní repliku a mohou přijímat operace čtení. Ty mohou být užitečné při nasazení ve více datových centrech.Priority 0
členy, ale navíc neumí zpracovat operace čtení. V případě potřeby mohou hlasovat. Preferované úkoly pro tyto členy jsou vytváření sestav a zálohování.priority 0
uzel a doporučuje se, aby byl také hidden
členem.Před nasazením infrastruktury je důležité ji navrhnout a v tomto návrhu je třeba vzít v úvahu body.
Mějte na paměti, že minimální počet prvků pro sestavení sady replik jsou 3. Tyto tři typy uzlů můžete kombinovat s minimálně jedním primárním a jedním sekundárním uzlem.
V této příručce nasazujeme 3 členy, jednoho primárního a dva standardní sekundární.
Poznámka: Doporučuje se mít maximální počet 7 hlasujících členů s kombinací arbitrů a vedlejších členů.
Název je pouze orientační, ale používáte jej v konfiguraci sady. Mějte na paměti, že ve svém produkčním prostředí můžete mít více než jednu sadu Replik, takže nezanedbávejte název sady.
Tento tutoriál doporučuje uživateli vybrat název sady.
Tento výukový program navrhuje nasazení ve stejném datovém centru, abyste se vyhnuli problémům s komunikací.
Poznámka: V případě nasazení v různých datových centrech se doporučuje obalit uzly VPN
Spusťte 3 uzly Ubuntu 16.04 x64; ve stejném regionu z vašeho zákaznického portálu, pokud je to možné. Nezapomeňte je pojmenovat podle typu projektu, kterým se zabýváte, a ujistěte se, že máte ve všech těchto uzlech stejnou velikost serveru.
Po nasazení svých 3 uzlů si budete muset být jisti, že každý uzel může mluvit se zbytkem. Potřebujete ssh do dvou uzlů a dostat se k ostatním pomocí ping -c 4 EXAMPLE_IP
. Změňte EXAMPLE_IP
na skutečné IP adresy vašich uzlů.
Zde vidíte příklad úspěšné komunikace mezi dvěma uzly.
root@foo_node:~# ping -c 4 EXAMPLE_IP
PING EXAMPLE_IP (EXAMPLE_IP) 56(84) bytes of data.
64 bytes from EXAMPLE_IP: icmp_seq=1 ttl=59 time=0.594 ms
64 bytes from EXAMPLE_IP: icmp_seq=2 ttl=59 time=0.640 ms
64 bytes from EXAMPLE_IP: icmp_seq=3 ttl=59 time=0.477 ms
64 bytes from EXAMPLE_IP: icmp_seq=4 ttl=59 time=0.551 ms
--- EXAMPLE_IP ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3021ms
rtt min/avg/max/mdev = 0.477/0.565/0.640/0.064 ms
Obecně můžete použít balíček MongoDB Ubuntu, ale je lepší použít oficiální komunitní repo, protože je vždy aktuální. Toto repo obsahuje tyto balíčky:
mongod
démona (primární proces, který zpracovává požadavky na data).mongos
démona (směrovací službu pro sdílená nasazení).mongo shell
rozhraní JavaScriptu.Pokračujte v instalaci balíčků.
Importujte veřejný klíč do systému správy balíčků.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Vytvořte soubor seznamu pro MongoDB '/etc/apt/sources.list.d/mongodb-org-3.4.list'.
echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
Aktualizujte databázi balíčků.
sudo apt-get update
Nainstalujte metabalíček MongoDB.
sudo apt-get install -y mongodb-org
Spusťte službu MongoDB.
sudo service mongod start
Nyní můžete otevřít mongo shell
v jakékoli bash session. Chcete-li to provést, musíte použít mongo
příkaz. Uvítá vás něco podobného.
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
*Some extra logs are cut by the way*
>
Nezapomeňte službu vypnout pomocí sudo service mongod stop
, protože později začneme mongod
znovu s některými parametry. Tento postup opakujte ve všech 3 uzlech sady.
Použití souboru klíčů vynutí dva koncepty v administraci sady replik. První je Internal Authentication
. Ve výchozím nastavení můžete zahájit mongo shell
relaci bez použití uživatele a tato relace bude mít plnou kontrolu nad databází, ale když k ověření použijete soubor klíčů, mongo shell
dosáhne relace stavu zvaného localhost exception
. Tento stav vám umožňuje vytvořit pouze uživatele správce a sadu replik. Druhým pojmem je Role-Based Access Control
, nebo jinými slovy autorizace. Toto je vynuceno k řízení úrovní správy sady replik.
Klíčový soubor je heslo pro použití v sadě, toto heslo musí být stejné u všech členů sady. Pro zvýšení bezpečnosti je důležité použít náhodný klíč s nástrojem dle vašeho výběru.
Obsah musí mít 6 až 1064 znaků. Také musíte nastavit read only
oprávnění pro klíčový soubor.
chmod 400 PATH_OF_YOUR_KEYFILE
Nyní zkopírujte svůj klíčový soubor do každého člena sady, použijte prosím konzistentní složku pro budoucí použití a neukládejte jej na vyměnitelné médium.
Použijte také složku pro soubor, ke mongod
kterému má přístup.
V tomto kroku musíme spustit mongod daemon
in každý člen sady . mongod
Proces lze spustit dvěma způsoby : pomocí konfiguračního souboru nebo pomocí příkazového řádku. Oba jsou docela snadné metody, ale jen pro jednoduchost tento tutoriál používá verzi příkazového řádku.
Použijte jméno, které jste zvolili dříve v tomto příkazu.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Ve výchozím nastavení mongod
neběží jako démon. Budete muset použít --fork
parametr nebo použít upstart
k plnému spuštění jako démona. V tomto tutoriálu nedoporučujeme spuštění mongod
jako démona, takže můžete vidět protokoly přímo do vašeho terminálu.
Poznámka: Opatrně zadejte název sady Replica, protože po vytvoření ji nelze změnit.
Poznámka: Pokud běžíte mongod
jako proces bez démona, budete muset otevřít další připojení ssh, abyste mohli pokračovat v práci.
Musíte použít mongo
příkaz k otevření mongo shell
. To lze provést v kterémkoli členu sady.
V tuto chvíli se nacházíme ve stavu zvaném localhost exception
. Když je k nastavení mongod
procesu použit soubor klíče , jste povinni vytvořit správce databáze, než budete moci použít operace čtení a zápisu, ale k tomu se dostaneme později.
To je choulostivá část, jsme pomocí příkazu rs.initiate()
uvnitř mongo shell
od kroku 4. Před použitím recenzi tento příkaz pojďme.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
První _id
pole je řetězec a musí odpovídat poli, --replSet
které bylo předáno dříve do mongod
. Každá hodnota host
musí být také ip nebo název domény každého člena sady replik. Nezapomeňte připojit port, který instance mongo používá v každém členu.
Nyní je čas provést příkaz s vašimi daty, tím se spustí election
, poté bude automaticky zvolen primární.
Zde byste si měli povšimnout, že se váš kurzor shellu změnil na YOUR_SET_NAME:PRIMARY>
nebo YOUR_SET_NAME:SECONDARY
. To znamená, že vytvoření sady bylo úspěšné.
Abyste mohli pokračovat v práci, musíte najít primary
, pokud na něm samozřejmě nejste. Pomocí rs.status()
příkazu zobrazte informace o sadě replik a vyhledejte soubor primary
. Hledáte nemovitost "stateStr" : "PRIMARY"
.
Poté, co jste našli primary
, zadejte mongo shell
a spusťte další příkaz pomocí vašich dat.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
admin = db.getSiblingDB("admin")
Část nám umožňuje napsat do admin
z jiné databáze. Tím se vytvoří alias s názvem admin
, takže můžeme spouštět příkazy pomocí něj.
Pokud je operace úspěšná, obdržíte upozornění, že uživatel byl přidán.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
V tuto chvíli máme pouze správce pro všechny servery, ale sada Replica nás nutí mít uživatele s touto clusterAdmin
rolí. K oddělení zájmů vytvoříme dalšího uživatele pouze s touto rolí.
Dosáhli jsme limitu localhost exception
, a proto musíme změnit autentizaci na uživatele vytvořeného o krok dříve.
Uživatele uvnitř můžete změnit mongo shell
následujícím způsobem.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Pokud jste se ještě nepřipojili, mongo shell
použijte tento příkaz.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Budete upozorněni na změnu uživatele a můžete přejít k dalšímu kroku.
clusterAdmin
Role dává uživateli plnou kontrolu nad sady replik. Jeho vytvoření je stejně snadné jako vytvoření administrátora.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Všimněte si, že tentokrát se role změní naclusterAdmin
.
V tuto chvíli máme 2 administrátory: jednoho, který má úplnou kontrolu nad serverem, a druhého, který má přístup k administrativním úkolům na úrovni sady replik. Chybí nám však uživatel, který by měl přístup k "používání" databáze, takže tohoto uživatele nyní vytvoříme.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Všimněte si, že tentokrát měníme db
část, tam dáváme databázi přístupnou uživateli, v tomto případě používáme databázi s názvem cars
.
Databáze ještě není vytvořena. Chcete-li to provést, budete muset zadat některé příkazy, které jej implicitně vytvoří. Přepněte do cars
databáze.
use cars
Obdržíte upozornění: switched to db cars
.
Databáze stále nebyla vytvořena, k tomu je třeba do ní něco napsat. Používáme následující příklad.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Tentokrát budete upozorněni pomocí WriteResult({ "nInserted" : 1 })
.
Pokud chcete, můžete načíst všechny objekty v databázi pomocí find()
metody:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Všimněte si, že _id
se to bude ve vašem výstupu lišit, ale ostatní data by měla být stejná. S dostatkem času budou tato data replikována na ostatní členy.
Vytvoření sady replik může být zpočátku náročné, protože je zde spousta informací, kterým je třeba porozumět, ale jakmile získáte myšlenku, kterou za tím stojí, můžete ji rychle nasadit, takže se nevzdávejte, pokud ji napoprvé nemůžete pochopit. Mějte na paměti, že sada Replica je důležitá v administraci MongoDB, protože otevírá možnost přidat pokročilé funkce, jako je vyrovnávání zátěže.
Úvod InfluxDB je open source, distribuovaná databáze časových řad bez externích závislostí. Ano, četli jste par
Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou
Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou
Používáte jiný systém? Úvod ArangoDB je open source databáze NoSQL s flexibilním datovým modelem pro dokumenty, grafy a páry klíč–hodnota. to je
Laravel GitScrum nebo GitScrum je open source nástroj pro produktivitu navržený tak, aby pomohl vývojovým týmům implementovat metodologii Scrum podobným způsobem.
Úvod V tomto zápisu si dobře projděte, jak zálohovat více databází MySQL nebo MariaDB, které sedí na stejném počítači pomocí vlastního bash skriptu.
OrientDB je nová generace multimodelového open source NoSQL DBMS. Díky podpoře více datových modelů může OrientDB poskytnout více funkcí a flexibility
MongoDB není ve výchozím nastavení zabezpečený. Pokud instalujete MongoDB a spouštíte jej bez konfigurace pro ověřování, budete mít špatný čas
MySQL je nejpopulárnější software na světě používaný pro databáze. Ujistit se, že máte zálohy databáze, je velmi důležité. Tato praxe umožňuje
Úvod PostgreSQL je bezplatný a otevřený systém pro správu databází, který lze použít k ukládání informací souvisejících s webovými stránkami. Je také známo a
Předpoklady Server Vultr s aktuální verzí Arch Linuxu (viz tento článek.) Přístup Sudo. Příkazy požadované ke spuštění jako root mají předponu # a jedna
Od svého vzniku v roce 2009 je MongoDB vedoucím odvětvím NoSQL. Jedním ze základních konceptů MongoDB je Replica Set, takže než začnete pracovat s i
MongoDB je rychlá a výkonná databáze NoSQL. Repozitáře Debianu se však aktualizují pomalu a často obsahují velmi staré verze balíčků. Tento tutoriál
Barnyard2 je způsob, jak uložit a zpracovat binární výstupy ze Snortu do databáze MySQL. Než začneme Vezměte prosím na vědomí, že pokud nemáte chrápání
Používáte jiný systém? Apache Cassandra je bezplatný a otevřený systém pro správu databází NoSQL, který je navržen tak, aby poskytoval škálovatelnost, vysokou
RockMongo je webový nástroj pro správu MongoDB, který je podobný nástroji pro správu MySQL: phpMyAdmin. Tento tutoriál se bude zabývat procesem instalace
Úvod InfluxDB je databáze založená na časových řadách napsaná v Go. InfluxDB má mnoho praktických využití, jedním z nich je ukládání monitorovacích dat na servery. já
MariaDB je bezplatná databáze s otevřeným zdrojovým kódem a je nejrozšířenější náhradou za MySQL. Je vytvořen vývojáři MySQL a je určen k remai
phpRedisAdmin je webová aplikace, která spravuje databáze Redis s intuitivním grafickým uživatelským rozhraním. Tento tutoriál vysvětlí, jak nainstalovat
Používáte jiný systém? Úvod ArangoDB je open source databáze NoSQL s flexibilním datovým modelem pro dokumenty, grafy a páry klíč–hodnota. to je
Umělá inteligence není v budoucnosti, je zde přímo v současnosti V tomto blogu si přečtěte, jak aplikace umělé inteligence ovlivnily různé sektory.
Jste také obětí DDOS útoků a nemáte jasno v metodách prevence? Chcete-li vyřešit své dotazy, přečtěte si tento článek.
Možná jste slyšeli, že hackeři vydělávají spoustu peněz, ale napadlo vás někdy, jak takové peníze vydělávají? Pojďme diskutovat.
Chcete vidět revoluční vynálezy Google a jak tyto vynálezy změnily život každého dnešního člověka? Pak si přečtěte na blogu a podívejte se na vynálezy od Googlu.
Koncept aut s vlastním pohonem, která vyrazí na silnice s pomocí umělé inteligence, je snem, který už nějakou dobu máme. Ale přes několik slibů nejsou nikde vidět. Přečtěte si tento blog a dozvíte se více…
Jak se věda vyvíjí rychlým tempem a přebírá mnoho našeho úsilí, stoupá také riziko, že se vystavíme nevysvětlitelné singularitě. Přečtěte si, co pro nás může znamenat singularita.
Způsoby ukládání dat se mohou vyvíjet od narození dat. Tento blog se zabývá vývojem ukládání dat na základě infografiky.
Přečtěte si blog, abyste co nejjednodušším způsobem poznali různé vrstvy v architektuře velkých dat a jejich funkce.
V tomto digitálním světě se chytrá domácí zařízení stala klíčovou součástí života. Zde je několik úžasných výhod chytrých domácích zařízení o tom, jak náš život stojí za to žít a zjednodušit jej.
Apple nedávno vydal doplňkovou aktualizaci macOS Catalina 10.15.4, která opravuje problémy, ale zdá se, že aktualizace způsobuje další problémy, které vedou k zablokování počítačů mac. Přečtěte si tento článek a dozvíte se více