Namestitev InfluxDB na Ubuntu 14
Uvod InfluxDB je odprtokodna, porazdeljena baza podatkov časovnih vrst brez zunanjih odvisnosti. Da, prebrali ste odstavek brez zunanjih odvisnosti
Od svoje zasnove leta 2009 MongoDB vodi industrijo NoSQL. Eden od temeljnih konceptov MongoDB je nabor replik, zato si pred delom z njim najprej oglejmo koncept.
Najpreprostejši model komunikacije, ki se uporablja pri replikaciji baz podatkov, je arhitektura Master-Slave. Kot že ime pove, ima ta model 2 vlogi, ki sta razporejeni v edinstveno glavno enoto in veliko podrejenih, je vloga glavnega, da obdela operacije branja in pisanja, ki jih izvajajo odjemalci, podrejeni pa se obravnavajo kot replika glavnega.
Najpomembnejša prednost tega modela je, da operacije varnostnega kopiranja niso ogrožene zmogljivosti glavnega strežnika, operacije varnostnega kopiranja se izvajajo asinhrono in to lahko postane resna težava, ko glavno vozlišče odpove. Podrejena vozlišča so samo za branje in jih je treba ročno povišati v glavno vozlišče, tako da v tem času obstaja možnost izgube podatkov.
Ena od možnosti za rešitev problema razpoložljivosti je, da imate več kot enega glavnega strežnika v arhitekturi, vendar lahko to povzroči še eno težavo v doslednosti podatkov med temi primerki in dodatno zapletenost konfiguracije.
Zdaj glede na kontekst lahko predstavimo tehnologijo Replica Set MongoDB. Nabor replik je ime arhitekture Master-Slave, ki ima samodejni preklop, tako da v trenutku, ko glavno (ki je zdaj imenovano primary
) vozlišče ne deluje pravilno, se election
bo sprožilo in iz preostalih podrejenih bo izbrano novo primarno vozlišče ( zdaj imenovano secondaries
).
Primarno vozlišče je edino, ki izvaja operacije pisanja, privzeto operacije branja obravnava tudi primarno, vendar je to vedenje mogoče pozneje spremeniti.
Operacije se zabeležijo v oplog
(dnevnik operacij), nato pa sekundarna vozlišča asinhrono posodobijo svojo vsebino na podlagi vsebineoplog
Opomba: oplog
je zbirka omejena, to pomeni, da ima zbirka omejitev, pri čemer local.oplog.rs
lahko preverite vsebino te zbirke znotraj lupine mongo v katerem koli članu nabora.
Poleg tega, da je tisto, ki naredi ustrezno varnostno kopijo baze podatkov, ima sekundarno vozlišče te vloge:
Zahvaljujoč tem značilnostim imamo lahko različne vrste sekundarnih vozlišč:
primary
in ne morejo sprožiti volitev, kljub temu lahko glasujejo na volitvah, imajo popolno repliko in lahko sprejmejo operacije branja. Ti so lahko v pomoč pri uvajanju več podatkovnih centrov.Priority 0
člani, vendar poleg tega ne morejo obdelati bralnih operacij. Po potrebi lahko glasujejo. Prednostne naloge za te člane so poročanje in varnostne kopije.priority 0
vozlišče, zato je priporočljivo, da je tudi hidden
član.Pred uvedbo infrastrukture je pomembno, da jo načrtujete in pri tej zasnovi je treba upoštevati točke.
Upoštevajte, da je najmanjše število elementov za izgradnjo nabora replik 3. Tri vrste vozlišč lahko mešate z najmanj enim primarnim in enim sekundarnim vozliščem.
V tem priročniku razporedimo 3 člane, enega primarnega in dva standardna sekundarna.
Opomba: Priporočljivo je, da imate največ 7 članov z glasovalno pravico z mešanico arbitrov in sekundarnih članov.
Ime je samo za referenco, vendar ga uporabljate v konfiguraciji kompleta. Upoštevajte, da imate lahko v svojem produkcijskem okolju več kot en nabor replik, zato ne zanemarite imena nabora.
Ta vadnica uporabnika spodbuja, da izbere ime niza.
Ta vadnica predlaga namestitev v istem podatkovnem centru, da se izognete težavam s komunikacijo.
Opomba: V primeru uvajanja v različnih podatkovnih centrih je priporočljivo, da svoja vozlišča ovijete z VPN
Zaženite 3 vozlišča Ubuntu 16.04 x64; v isti regiji z vašega portala za stranke, če je mogoče. Ne pozabite jih poimenovati glede na vrsto projekta, s katerim se ukvarjate, in se prepričajte, da imate enako velikost strežnika v vseh teh vozliščih.
Ko namestite svoja 3 vozlišča, boste morali biti prepričani, da se lahko vsako vozlišče pogovarja z ostalimi. Ssh morate preklopiti na dve vozlišči in doseči druga z uporabo ping -c 4 EXAMPLE_IP
. Spremenite EXAMPLE_IP
na dejanske IP-je vaših vozlišč.
Tukaj si lahko ogledate primer uspešne komunikacije med dvema vozliščema.
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
Na splošno lahko uporabite paket MongoDB za Ubuntu, vendar je bolje uporabiti uradni repo skupnosti, ker je vedno posodobljen. Ta repo vsebuje te pakete:
mongod
demon (primarni proces, ki obravnava zahteve za podatke).mongos
demon (usmerjevalna storitev za skupne razmestitve).mongo shell
vmesnik JavaScript.Nadaljujte z namestitvijo paketov.
Uvozite javni ključ v sistem za upravljanje paketov.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Ustvarite datoteko s seznamom za 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
Posodobite bazo podatkov paketov.
sudo apt-get update
Namestite metapaket MongoDB.
sudo apt-get install -y mongodb-org
Zaženite storitev MongoDB.
sudo service mongod start
Zdaj lahko odprete mongo shell
v kateri koli seji bash. Če želite to narediti, morate uporabiti mongo
ukaz. Pričakalo vas bo nekaj podobnega.
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*
>
Ne pozabite izklopiti storitve z sudo service mongod stop
, ker bomo kasneje začeli mongod
znova z nekaterimi parametri. Ta postopek ponovite v vseh 3 vozliščih niza.
Uporaba datoteke s ključi vsili dva koncepta v administraciji nabora replik. Prvi je Internal Authentication
. Privzeto lahko začnete mongo shell
sejo brez uporabe uporabnika in ta seja bo imela popoln nadzor nad bazo podatkov, ko pa za preverjanje pristnosti uporabite ključno datoteko, vaša mongo shell
seja doseže stanje, imenovano localhost exception
. To stanje vam omogoča samo ustvarjanje skrbniškega uporabnika in nabor replik. Drugi koncept je Role-Based Access Control
ali z drugimi besedami avtorizacija. To je uveljavljeno za urejanje upravnih ravni za nabor replik.
Ključna datoteka je geslo za uporabo v nizu, to geslo mora biti enako v vseh članih nabora. Za povečanje varnosti je pomembno, da z orodjem po vaši izbiri uporabite naključni ključ.
Vsebina mora biti dolga od 6 do 1064 znakov. Prav tako morate nastaviti read only
dovoljenje za ključno datoteko.
chmod 400 PATH_OF_YOUR_KEYFILE
Zdaj kopirajte svojo ključno datoteko v vsakega člana nabora, uporabite dosledno mapo za nadaljnjo uporabo in je ne shranjujte na izmenljivi medij.
Uporabite tudi mapo za datoteko, mongod
do katere lahko dostopate.
V tem koraku moramo začeti član mongod daemon
v vsakem nizu . mongod
Postopek lahko začnete na dva načina : z uporabo konfiguracijske datoteke ali z ukazno vrstico. Obe sta precej enostavni metodi, vendar samo zaradi preprostosti ta vadnica uporablja različico ukazne vrstice.
Uporabite ime, ki ste ga izbrali prej v tem ukazu.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Privzeto mongod
se ne izvaja kot demon. Uporabiti boste morali --fork
parameter ali uporabiti, da ga upstart
v celoti zaženete kot demon. V tej vadnici ne spodbujamo izvajanja mongod
kot demona, tako da si lahko ogledate dnevnike neposredno v vašem terminalu.
Opomba: Previdno vnesite ime nabora replik, ker ga, ko je enkrat ustvarjen, ne morete spremeniti.
Opomba: Če izvajate mongod
kot proces brez demona, boste morali za nadaljevanje dela odpreti drugo povezavo ssh.
Za mongo
odpiranje datoteke mongo shell
. To je mogoče storiti v katerem koli članu nabora.
V tem trenutku smo v stanju, ki se imenuje localhost exception
. Ko se za nastavitev mongod
postopka uporablja ključna datoteka , morate ustvariti skrbnika baze podatkov, preden lahko uporabite operacije branja in pisanja, vendar se bomo o tem posvetili pozneje.
To je občutljiv del, uporabljamo ukaz rs.initiate()
znotraj mongo shell
koraka 4. Preden uporabite ta ukaz, ga poglejmo.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Prvo _id
polje je niz in se mora ujemati s --replSet
tistim, ki je bilo predhodno posredovano v mongod
. Prav tako host
mora biti vsaka vrednost ali ip ali ime domene vsakega člana nabora replik. Ne pozabite dodati vrat, ki jih uporablja primerek mongo v vsakem članu.
Zdaj je čas, da izvedete ukaz s svojimi podatki, to bo sprožilo election
, nato pa bo primarni izvoljen samodejno.
Tukaj morate upoštevati, da se je kazalec vaše lupine spremenil v YOUR_SET_NAME:PRIMARY>
ali YOUR_SET_NAME:SECONDARY
. To pomeni, da je bilo ustvarjanje kompleta uspešno.
Če želite nadaljevati z delom, morate najti primary
datoteko , če seveda niste na njej. Uporabite rs.status()
ukaz za prikaz informacij o nizu replik in poiščite datoteko primary
. Iščete nepremičnino "stateStr" : "PRIMARY"
.
Ko najdete primary
, vnesite mongo shell
in zaženite naslednji ukaz z uporabo vaših podatkov.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
admin = db.getSiblingDB("admin")
Del nam omogoča pisanje v admin
iz druge podatkovne zbirke. To ustvari vzdevek, imenovan admin
, tako da lahko namesto tega izvajamo ukaze z njim.
Če je operacija uspešna, boste prejeli obvestilo, da je bil uporabnik dodan.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Na tej točki imamo samo skrbnika za vse strežnike, vendar nas nastavitev Replica prisili, da imamo uporabnika z clusterAdmin
vlogo. Ustvarili bomo drugega uporabnika s samo to vlogo, da ločimo pomisleke.
Dosegli smo mejo localhost exception
, zato moramo spremeniti preverjanje pristnosti uporabniku, ki je bil ustvarjen en korak prej.
Uporabnike v notranjosti lahko spremenite mongo shell
z naslednjim.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Če se še niste povezali z mongo shell
ukazom, namesto tega uporabite ta ukaz.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
O spremembi uporabnika boste obveščeni in lahko greste na naslednji korak.
clusterAdmin
Vloga daje uporabniku popoln nadzor nad nizom Replica. Ustvarjanje je tako enostavno kot ustvarjanje skrbniškega uporabnika.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Upoštevajte, da se tokrat vloga spremeni vclusterAdmin
.
Trenutno imamo 2 skrbniška uporabnika: enega, ki ima popoln nadzor nad strežnikom, in drugega, ki ima dostop do skrbniških nalog na ravni nabora replik. Vendar pa nam manjka uporabnik, ki bi imel dostop do "uporabe" baze podatkov, zato bomo tega uporabnika ustvarili zdaj.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Upoštevajte, da tokrat spreminjamo db
del, tam postavljamo bazo podatkov, dostopno uporabniku, v tem primeru uporabljamo bazo podatkov z imenom cars
.
Baza podatkov še ni ustvarjena. Če želite to narediti, boste morali vnesti nekaj ukazov, da ga implicitno ustvarite. Preklopite na cars
bazo podatkov.
use cars
Prejeli boste obvestilo: switched to db cars
.
Baza podatkov še vedno ni ustvarjena, zato morate vanjo nekaj napisati. Uporabljamo naslednji primer.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Tokrat boste obveščeni z WriteResult({ "nInserted" : 1 })
.
Če želite, lahko pridobite vse predmete v bazi podatkov z find()
metodo:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Upoštevajte, da _id
bo vaš izhod drugačen, vendar morajo biti drugi podatki enaki. Če bo dovolj časa, bodo ti podatki replicirani na druge člane.
Ustvarjanje kompleta replik je sprva lahko zahtevno, ker je treba razumeti veliko informacij, a ko dobite idejo, ga lahko na hitro uporabite, zato ne obupajte, če ga ne morete dojeti že prvič. Upoštevajte, da je nabor replik pomemben pri administraciji MongoDB, ker odpira možnost dodajanja naprednih funkcij, kot je uravnoteženje obremenitve.
Uvod InfluxDB je odprtokodna, porazdeljena baza podatkov časovnih vrst brez zunanjih odvisnosti. Da, prebrali ste odstavek brez zunanjih odvisnosti
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je
Laravel GitScrum ali GitScrum je odprtokodno orodje za produktivnost, zasnovano za pomoč razvojnim ekipam pri implementaciji metodologije Scrum na podoben način.
Uvod V tem zapisu si oglejte, kako varnostno kopirati več baz podatkov MySQL ali MariaDB, ki se nahajajo na istem računalniku z uporabo bash skripta po meri.
OrientDB je večmodelna odprtokodna NoSQL DBMS naslednje generacije. S podporo za več podatkovnih modelov lahko OrientDB zagotovi več funkcionalnosti in prilagodljivosti
MongoDB privzeto ni varen. Če nameščate MongoDB in ga zaženete, ne da bi ga konfigurirali za preverjanje pristnosti, boste imeli slab čas
MySQL je najbolj priljubljena programska oprema na svetu, ki se uporablja za baze podatkov. Zelo pomembno je zagotoviti, da imate varnostne kopije vaše baze podatkov. Ta praksa omogoča
Uvod PostgreSQL je brezplačen in odprtokodni sistem za upravljanje baz podatkov, ki se lahko uporablja za shranjevanje informacij, povezanih s spletnimi mesti. Znano je tudi a
Predpogoji Strežnik Vultr, ki izvaja posodobljen Arch Linux (glejte ta članek.) Dostop Sudo. Ukazi, ki jih je treba zagnati kot root, imajo predpono # in ena
Od svoje zasnove leta 2009 MongoDB vodi industrijo NoSQL. Eden od temeljnih konceptov MongoDB je nabor replik, zato pred delom z i
MongoDB je hitra in zmogljiva baza podatkov NoSQL. Vendar pa se skladišča Debian posodabljajo počasi in pogosto vsebujejo zelo stare različice paketov. Ta vadnica
Barnyard2 je način za shranjevanje in obdelavo binarnih izhodov iz Snort v bazo podatkov MySQL. Preden začnemo. Prosimo, upoštevajte, da če nimate smrčanja
Uporaba drugega sistema? Apache Cassandra je brezplačen in odprtokodni sistem za upravljanje baz podatkov NoSQL, ki je zasnovan tako, da zagotavlja razširljivost, visoko
RockMongo je spletno orodje za upravljanje MongoDB, ki je podobno orodju za upravljanje MySQL: phpMyAdmin. Ta vadnica bo obravnavala postopek namestitve
Uvod InfluxDB je baza podatkov, ki temelji na časovnih vrstah, napisana v Go. InfluxDB ima veliko praktičnih uporab, ena od njih je shranjevanje podatkov spremljanja na strežnikih. jaz
MariaDB je brezplačna odprtokodna baza podatkov in je najbolj razširjena zamenjava za MySQL. Izdelali so ga razvijalci MySQL in naj bi ga še naprej uporabljali
phpRedisAdmin je spletna aplikacija, ki upravlja baze podatkov Redis z intuitivnim grafičnim uporabniškim vmesnikom. Ta vadnica bo razložila, kako namestiti
Uporaba drugega sistema? Uvod ArangoDB je odprtokodna baza podatkov NoSQL s prilagodljivim podatkovnim modelom za dokumente, grafe in ključe-vrednosti. je
Umetna inteligenca ni v prihodnosti, tukaj je prav v sedanjosti. V tem blogu preberite, kako so aplikacije umetne inteligence vplivale na različne sektorje.
Ste tudi vi žrtev DDOS napadov in ste zmedeni glede načinov preprečevanja? Preberite ta članek, če želite rešiti svoja vprašanja.
Morda ste že slišali, da hekerji zaslužijo veliko denarja, a ste se kdaj vprašali, kako zaslužijo takšen denar? razpravljajmo.
Ali želite videti revolucionarne izume Googla in kako so ti izumi danes spremenili življenje vsakega človeka? Nato preberite v blogu in si oglejte Googlove izume.
Koncept samovozečih avtomobilov, ki zapeljejo na ceste s pomočjo umetne inteligence, so sanje, ki jih imamo že nekaj časa. A kljub številnim obljubam jih ni nikjer. Preberite ta blog, če želite izvedeti več…
Ker se znanost hitro razvija in prevzame veliko naših prizadevanj, se povečuje tudi tveganje, da se podvržemo nerazložljivi singularnosti. Preberite, kaj bi za nas lahko pomenila singularnost.
Metode shranjevanja podatkov so se lahko razvijale od rojstva podatkov. Ta blog pokriva razvoj shranjevanja podatkov na podlagi infografike.
Preberite blog, če želite na najpreprostejši način spoznati različne plasti v arhitekturi velikih podatkov in njihove funkcionalnosti.
V tem digitalno vodenem svetu so pametne naprave za dom postale ključni del življenja. Tukaj je nekaj neverjetnih prednosti pametnih naprav za dom o tem, kako naredijo naše življenje vredno življenja in poenostavijo.
Pred kratkim je Apple izdal macOS Catalina 10.15.4 dopolnilno posodobitev za odpravo težav, vendar se zdi, da posodobitev povzroča več težav, ki vodijo do opečenja računalnikov Mac. Preberite ta članek, če želite izvedeti več