Az InfluxDB telepítése Ubuntu 14-re
Bevezetés Az InfluxDB egy nyílt forráskódú, elosztott, idősoros adatbázis, külső függőségek nélkül. Igen, elolvastad a külső függőségek nélkül par
A MongoDB 2009-es megalakulása óta vezeti a NoSQL-ipart. A MongoDB egyik alapkoncepciója a replikakészlet, ezért a vele való munka előtt tekintse át a koncepciót.
Az adatbázisok replikációjához használt legegyszerűbb kommunikációs modell a Master-Slave architektúra. Ahogy a neve is sugallja, ennek a modellnek 2 szerepe van, amelyek egy egyedi masterben és sok slave-ben vannak elosztva, a mester szerepe az, hogy feldolgozza a kliensek által végzett olvasási és írási műveleteket, és a slave-eket a mester másolataként kezeli.
Ennek a modellnek a legfontosabb előnye, hogy a mester teljesítményét nem rontják a biztonsági mentési műveletek, a mentési műveletek aszinkron módon történnek, és ez komoly problémát jelenthet egy fő csomópont meghibásodása esetén. A slave csomópontok csak olvashatók, és manuálisan kell előléptetni őket a fő csomóponttá, így ez idő alatt fennáll az adatvesztés lehetősége.
A rendelkezésre állási probléma megoldásának egyik lehetősége az, hogy egynél több mestert kell használni az architektúrában, de ez egy másik problémához vezethet a példányok közötti adatok konzisztenciájában és a konfiguráció bonyolultabbá tételében.
A most adott kontextusban bemutathatjuk a MongoDB Replica Set technológiáját. A replikakészlet a Master-Slave architektúra neve, amely automatikus feladatátvétellel rendelkezik, így abban a pillanatban, amikor egy mester primary
csomópont (amelynek neve ) nem működik megfelelően, egy election
akarat trigger lesz, és egy új elsődleges csomópont kerül kiválasztásra a többi slave közül ( most mint secondaries
).
Az elsődleges csomópont az egyetlen, amely írási műveleteket hajt végre, alapértelmezés szerint az olvasási műveleteket is az elsődleges kezeli, de ez a viselkedés később módosítható.
A műveletek rögzítésre kerülnek a oplog
(műveleti naplóba), majd a másodlagos csomópontok aszinkron módon frissítik tartalmukat aoplog
Megjegyzés: oplog
ez egy korlátos gyűjtemény, ez azt jelenti, hogy a gyűjteménynek van korlátja, mivel local.oplog.rs
a gyűjtemény tartalmát egy mongo shell-en belül ellenőrizheti bármely halmaztagban.
Amellett, hogy egy másodlagos csomópont megfelelő biztonsági mentést készít az adatbázisról, a következő szerepekkel rendelkezik:
Ezeknek a jellemzőknek köszönhetően különböző típusú másodlagos csomópontjaink lehetnek:
primary
és nem válthatnak ki választást, mégis szavazhatnak a választásokon, rendelkeznek teljes másolattal, és fogadhatnak olvasási műveleteket. Ezek hasznosak lehetnek több adatközpontú üzembe helyezéshez.Priority 0
tagok, de nem tudják feldolgozni az olvasási műveleteket. Szükség esetén szavazhatnak. Ezeknek a tagoknak a preferált feladatai a jelentéskészítés és a biztonsági mentések.priority 0
csomópontnak kell lennie , és javasolt, hogy azok is legyenek hidden
tagok.Az infrastruktúra telepítése előtt fontos megtervezni azt, és vannak szempontok, amelyeket figyelembe kell venni ebben a tervezésben.
Ne feledje, hogy a replikakészlet felépítéséhez szükséges elemek minimális száma 3. A három típusú csomópontot legalább egy elsődleges és egy másodlagos csomóponttal keverheti.
Ebben az útmutatóban 3 tagot telepítünk, egy elsődleges és két normál másodlagos tagot.
Megjegyzés: Javasoljuk, hogy legfeljebb 7 szavazati joggal rendelkező tag legyen a választott bírók és másodlagos tagok keverékével.
A név csak tájékoztató jellegű, de Ön ezt használja a készlet konfigurációjában. Ne feledje, hogy az éles környezetben több replikakészlet is lehet, ezért ne hagyja figyelmen kívül a készlet nevét.
Ez az oktatóanyag arra ösztönzi a felhasználót, hogy válassza ki a készlet nevét.
Ez az oktatóanyag azt javasolja, hogy ugyanabban az adatközpontban telepítse, így elkerülheti a kommunikációs problémákat.
Megjegyzés: Különböző adatközpontokban történő telepítés esetén javasoljuk, hogy a csomópontokat VPN-vel vonja be
Indítsa el az Ubuntu 16.04 x64 3 csomópontját; ugyanabban a régióban az ügyfélkapuról, ha lehetséges. Ne felejtse el elnevezni őket a projekt típusának megfelelően, és ügyeljen arra, hogy ezekben a csomópontokban ugyanaz a kiszolgálóméret legyen.
Miután telepítette a 3 csomópontot, biztosnak kell lennie abban, hogy minden csomópont beszélni tud a többivel. Két csomópontba kell ssh-t küldenie, és a többit a segítségével kell elérnie ping -c 4 EXAMPLE_IP
. Váltson EXAMPLE_IP
a csomópontok tényleges IP-címére.
Itt láthat egy példát két csomópont közötti sikeres kommunikációra.
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
Általában használhatja az Ubuntu MongoDB csomagját, de jobb a hivatalos közösségi repót használni, mert az mindig naprakész. Ez a repo a következő csomagokat tartalmazza:
mongod
démont (az adatkéréseket kezelő elsődleges folyamat).mongos
démont (útválasztó szolgáltatás megosztott telepítésekhez).mongo shell
JavaScript felület.Folytassa a csomagok telepítésével.
Importálja a nyilvános kulcsot a csomagkezelő rendszerbe.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Hozza létre a MongoDB „/etc/apt/sources.list.d/mongodb-org-3.4.list” listafájlját.
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
Frissítse a csomagadatbázist.
sudo apt-get update
Telepítse a MongoDB metacsomagot.
sudo apt-get install -y mongodb-org
Indítsa el a MongoDB szolgáltatást.
sudo service mongod start
Most már mongo shell
bármelyik bash munkamenetben megnyithatja . Ehhez a mongo
parancsot kell használni . Valami ehhez hasonló fogadni fogja.
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 felejtse el kikapcsolni a szolgáltatást a -val sudo service mongod stop
, mert később mongod
néhány paraméterrel újra kezdjük . Ismételje meg ezt a folyamatot a készlet mind a 3 csomópontjában.
A kulcsfájl használata két koncepciót kényszerít ki a replikakészlet adminisztrációjában. Az első az Internal Authentication
. Alapértelmezés szerint a mongo shell
munkamenetet felhasználó használata nélkül is elindíthatja, és ez a munkamenet teljes mértékben felügyeli az adatbázist, de amikor kulcsfájlt használ a hitelesítéshez, a mongo shell
munkamenet eléri a nevű állapotot localhost exception
. Ez az állapot csak a rendszergazda felhasználó és a replikakészlet létrehozását teszi lehetővé. A második fogalom a Role-Based Access Control
, vagy más szóval felhatalmazás. Ez kényszerítve van a replikakészlet adminisztrációs szintjeinek szabályozására.
A kulcsfájl a készletben használandó jelszó, ennek a jelszónak azonosnak kell lennie a készlet minden tagjában. A biztonság növelése érdekében fontos, hogy véletlenszerű kulcsot használjon a választott eszközzel.
A tartalomnak 6 és 1064 karakter között kell lennie. Ezenkívül be kell állítania read only
a kulcsfájl engedélyét.
chmod 400 PATH_OF_YOUR_KEYFILE
Most másolja a kulcsfájlt a készlet minden tagjába, kérjük, használjon konzisztens mappát a jövőbeni hivatkozáshoz, és ne tárolja cserélhető adathordozón.
Használjon olyan mappát is a fájlhoz, mongod
amelyhez hozzáférhet.
Ebben a lépésben el kell indítanunk az mongod daemon
in minden halmaztagot . A mongod
folyamat elindításának két módja van : konfigurációs fájl vagy parancssor használatával. Mindkettő meglehetősen egyszerű módszer, de az egyszerűség kedvéért ez az oktatóanyag a parancssori verziót használja.
Használja a parancsban korábban kiválasztott nevet.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
Alapértelmezés szerint mongod
nem démonként fut. Használnia kell a --fork
paramétert, vagy a upstart
-t kell használnia a démon teljes futtatásához. Ebben az oktatóanyagban nem javasoljuk mongod
a démonként való futtatást , így közvetlenül láthatja a naplókat a termináljában.
Megjegyzés: Óvatosan írja be a replikakészlet nevét, mert a létrehozás után nem módosíthatja.
Megjegyzés: Ha mongod
nem démon folyamatként fut , akkor a munka folytatásához egy másik ssh-kapcsolatot kell nyitnia.
A mongo
parancsot kell használnia a mongo shell
. Ez a készlet bármely tagjában megtehető.
Ebben a pillanatban egy olyan állapotban vagyunk, amelyet localhost exception
. Ha kulcsfájlt használnak a mongod
folyamat beállításához, az olvasási-írási műveletek alkalmazása előtt létre kell hoznia egy adatbázis-adminisztrátort, de erre később térünk ki.
Ez egy kényes rész, rs.initiate()
a mongo shell
4. lépésben lévő parancsot használjuk. Mielőtt ezt a parancsot használnánk, tekintsük át.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Az első _id
mező egy karakterlánc, és meg kell egyeznie azzal, --replSet
amit korábban átadtak mongod
. Ezenkívül minden egyes értéknek host
vagy a replikakészlet minden tagjának ip-jének vagy tartománynevének kell lennie. Ne felejtse el hozzáfűzni a mongo példány által használt portot minden taghoz.
Most itt az ideje, hogy végrehajtsa a parancsot az Ön adataival, ez elindít egy election
, majd automatikusan megválasztja az elsődlegest.
Itt meg kell jegyezni, hogy a shell-kurzor a YOUR_SET_NAME:PRIMARY>
vagy értékre változott YOUR_SET_NAME:SECONDARY
. Ez azt jelenti, hogy a készlet létrehozása sikeres volt.
A munka folytatásához meg kell találnia a -t primary
, ha természetesen nincs rajta. Használja a rs.status()
parancsot a replikakészlet információinak megjelenítéséhez, és keresse meg a primary
. Ön az ingatlant keresi "stateStr" : "PRIMARY"
.
Miután megtalálta a primary
, írja be a mongo shell
parancsot, és futtassa a következő parancsot az adatok felhasználásával.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
A admin = db.getSiblingDB("admin")
rész lehetővé teszi, hogy admin
egy másik adatbázisból írjunk be . Ez létrehoz egy aliast admin
, amivel ehelyett parancsokat hajthatunk végre.
Ha a művelet sikeres, értesítést kap arról, hogy a felhasználó hozzáadásra került.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
Jelenleg az összes kiszolgálóhoz csak adminisztrátorunk van, de a replikakészlet megléte arra kényszerít bennünket, hogy rendelkezzünk a clusterAdmin
szerepkörrel rendelkező felhasználóval . Létrehozunk egy másik felhasználót, aki csak ezzel a szerepkörrel rendelkezik az aggályok elkülönítésére.
Elértük a korlátot, localhost exception
ezért a hitelesítést az egy lépéssel korábban létrehozott felhasználóra kell módosítanunk.
A felhasználókat mongo shell
az alábbiak szerint módosíthatja .
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Ha még nem csatlakozott, mongo shell
használja ezt a parancsot.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
A felhasználóváltásról értesítést kap, és máris léphet a következő lépésre.
A clusterAdmin
szerepkör a felhasználó számára biztosítja a replikakészlet teljes irányítását. Létrehozása ugyanolyan egyszerű, mint az adminisztrátor létrehozása.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Vegye figyelembe, hogy ezúttal a szerepkör a következőre módosultclusterAdmin
.
Jelenleg 2 adminisztrátori felhasználónk van: az egyik teljes ellenőrzést gyakorol a szerver felett, a másik pedig a replikakészlet szintjén fér hozzá az adminisztrációs feladatokhoz. Nincs azonban olyan felhasználónk, aki hozzáférne egy adatbázis "használatához", ezért most létrehozzuk ezt a felhasználót.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Figyeljük meg, ezúttal a db
részt változtatjuk , ott a felhasználó számára elérhetővé tesszük az adatbázist, ebben az esetben egy nevű adatbázist használunk cars
.
Az adatbázis még nincs létrehozva. Ehhez be kell írnia néhány parancsot, hogy implicit módon létrehozza azt. Váltson át az cars
adatbázisra.
use cars
Értesítést fog kapni: switched to db cars
.
Az adatbázis még mindig nem jött létre, ehhez írni kell valamit. A következő példát használjuk.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Ezúttal a következővel kap értesítést WriteResult({ "nInserted" : 1 })
.
Ha akarja, lekérheti az adatbázisban lévő összes objektumot a következő find()
módszerrel:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Vegye figyelembe, hogy _id
ez eltérő lesz a kimenetben, de a többi adatnak azonosnak kell lennie. Ha elegendő idő áll rendelkezésre, ezeket az adatokat a rendszer a többi tag számára replikálja.
A replikakészlet létrehozása eleinte kihívást jelenthet, mert rengeteg információt kell megérteni, de ha egyszer megvan a mögötte rejlő ötlet, gyorsan bevetheti, ezért ne adja fel, ha első alkalommal nem tudja felfogni. Ne feledje, hogy a replikakészlet fontos a MongoDB adminisztrációjában, mert lehetővé teszi olyan speciális szolgáltatások hozzáadását, mint a terheléselosztás.
Bevezetés Az InfluxDB egy nyílt forráskódú, elosztott, idősoros adatbázis, külső függőségek nélkül. Igen, elolvastad a külső függőségek nélkül par
Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,
Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,
Más rendszert használ? Bevezetés Az ArangoDB egy nyílt forráskódú NoSQL adatbázis, amely rugalmas adatmodellt kínál dokumentumokhoz, grafikonokhoz és kulcsértékekhez. Ez
A Laravel GitScrum vagy a GitScrum egy nyílt forráskódú termelékenységi eszköz, amelynek célja, hogy segítse a fejlesztőcsapatokat a Scrum módszertan hasonló módon történő megvalósításában.
Bevezetés Ebben az írásban részletesen végigvezeti, hogyan készíthet biztonsági másolatot több MySQL vagy MariaDB adatbázisról, amelyek ugyanazon a gépen vannak egy egyedi bash szkript segítségével.
Az OrientDB egy következő generációs többmodellű nyílt forráskódú NoSQL DBMS. Több adatmodell támogatásával az OrientDB több funkcionalitást és rugalmasságot biztosít
A MongoDB alapértelmezés szerint nem biztonságos. Ha telepíti a MongoDB-t és elindítja anélkül, hogy hitelesítésre konfigurálta volna, akkor rossz idő lesz
A MySQL a világ legnépszerűbb adatbázis-kezelő szoftvere. Nagyon fontos, hogy legyen biztonsági másolata az adatbázisról. Ez a gyakorlat lehetővé teszi
Bevezetés A PostgreSQL egy ingyenes és nyílt forráskódú adatbázis-kezelő rendszer, amely webhelyekkel kapcsolatos információk tárolására használható. Ismert még a
Előfeltételek Egy Vultr-szerver, amelyik naprakész Arch Linuxot futtat (lásd ezt a cikket.) Sudo hozzáférés. A rootként futtatandó parancsok előtt # és egy szerepel
A MongoDB 2009-es megalakulása óta vezeti a NoSQL-ipart. A MongoDB egyik alapkoncepciója a Replica Set, így mielőtt az i-vel dolgozna
A MongoDB egy gyors és hatékony NoSQL adatbázis. A Debian-tárolók azonban lassan frissülnek, és gyakran nagyon régi csomagverziókat tartalmaznak. Ez a tutoria
A Barnyard2 egy mód a Snort bináris kimeneteinek MySQL adatbázisba történő tárolására és feldolgozására. Mielőtt elkezdené Kérjük, vegye figyelembe, hogy ha nem horkol
Más rendszert használ? Az Apache Cassandra egy ingyenes és nyílt forráskódú NoSQL adatbázis-kezelő rendszer, amelyet úgy terveztek, hogy biztosítsa a méretezhetőséget,
A RockMongo egy webalapú MongoDB felügyeleti eszköz, amely hasonló a MySQL Management eszközhöz: phpMyAdmin. Ez az oktatóanyag a telepítés folyamatát ismerteti
Bevezetés Az InfluxDB egy Go nyelven írt idősor alapú adatbázis. Az InfluxDB-nek számos gyakorlati felhasználása van, amelyek közül az egyik a megfigyelési adatok szervereken való tárolása. én
A MariaDB egy ingyenes nyílt forráskódú adatbázis, és a MySQL legszélesebb körben használt beépülő modulja. A MySQL fejlesztői készítették, és a továbbfejlesztésre szánták
A phpRedisAdmin egy webalkalmazás, amely intuitív grafikus felhasználói felülettel kezeli a Redis adatbázisokat. Ez az oktatóanyag elmagyarázza, hogyan kell telepíteni
Más rendszert használ? Bevezetés Az ArangoDB egy nyílt forráskódú NoSQL adatbázis, amely rugalmas adatmodellt kínál dokumentumokhoz, grafikonokhoz és kulcsértékekhez. Ez
A mesterséges intelligencia nem a jövőben, hanem itt a jelenben. Ebben a blogban Olvassa el, hogyan hatott a mesterséges intelligencia alkalmazások különböző ágazatokra.
Ön is DDOS támadások áldozata, és tanácstalan a megelőzési módszereket illetően? Olvassa el ezt a cikket a kérdések megoldásához.
Talán hallottál már arról, hogy a hackerek sok pénzt keresnek, de elgondolkodtál már azon, hogyan kereshetnek ennyi pénzt? beszéljük meg.
Szeretné látni a Google forradalmi találmányait, és azt, hogy ezek a találmányok hogyan változtatták meg minden mai ember életét? Ezután olvassa el a blogot, és nézze meg a Google találmányait.
Az önvezető autók koncepciója, hogy mesterséges intelligencia segítségével kerüljenek az utakra, már egy ideje álmunk. De számos ígéret ellenére sehol sem látszanak. Olvassa el ezt a blogot, hogy többet megtudjon…
Ahogy a tudomány gyors ütemben fejlődik, átveszi erőfeszítéseink nagy részét, megnő annak a kockázata is, hogy alávetjük magunkat egy megmagyarázhatatlan szingularitásnak. Olvassa el, mit jelenthet számunkra a szingularitás.
Az adatok tárolási módjai az Adatok születése óta alakulhatnak. Ez a blog egy infografika alapján mutatja be az adattárolás fejlődését.
Olvassa el a blogot, hogy a legegyszerűbb módon ismerje meg a Big Data Architecture különböző rétegeit és azok funkcióit.
Ebben a digitálisan vezérelt világban az intelligens otthoni eszközök az élet döntő részévé váltak. Íme az intelligens otthoni eszközök néhány elképesztő előnye, hogyan teszik életünket érdemessé és egyszerűbbé.
Az Apple a közelmúltban kiadott egy kiegészítést a macOS Catalina 10.15.4-hez a problémák megoldására, de úgy tűnik, hogy a frissítés több problémát okoz, ami a Mac gépek blokkolásához vezet. További információért olvassa el ezt a cikket