Встановлення InfluxDB на Ubuntu 14
Вступ InfluxDB — це розподілена база даних часових рядів з відкритим вихідним кодом без зовнішніх залежностей. Так, ви читаєте параграф про відсутність зовнішніх залежностей
З моменту створення в 2009 році MongoDB лідирує в галузі NoSQL. Однією з основних концепцій MongoDB є набір реплік, тому перш ніж працювати з ним, давайте розглянемо концепцію.
Найпростішою моделлю зв'язку, що використовується при реплікації баз даних, є архітектура Master-Slave. Як випливає з назви, ця модель має 2 ролі, які розподіляються в унікальному головному і багатьох підлеглих, роль ведучого полягає в обробці операцій читання та запису, які виконуються клієнтами, а підпорядковані пристрої розглядаються як копія ведучого.
Найважливішою перевагою цієї моделі є те, що операції резервного копіювання не погіршують продуктивність головного вузла, операції резервного копіювання виконуються асинхронно, і це може стати серйозною проблемою, коли головний вузол виходить з ладу. Підлеглі вузли доступні лише для читання, і їх потрібно вручну перемістити до головного вузла, тому в цей час існує ймовірність втрати даних.
Один із варіантів вирішення проблеми доступності — мати більше одного головного в архітектурі, але це може призвести до іншої проблеми узгодженості даних між цими екземплярами та додаткової складності конфігурації.
Тепер, враховуючи контекст, ми можемо представити технологію Replica Set MongoDB. Набір реплік — це назва архітектури Master-Slave, яка має автоматичне перемикання збоїв, тому в момент, коли головний primary
вузол (який тепер називається ) не зможе належним чином функціонувати, election
він спрацює, і новий основний вузол буде обрано з інших відомих ( іменується зараз як secondaries
).
Основний вузол є єдиним, який виконує операції запису, за замовчуванням операції читання також обробляються основним, але цю поведінку можна змінити пізніше.
Операції записуються в oplog
(журнал операцій), потім вторинні вузли оновлюють свій вміст асинхронно на основі вмістуoplog
Примітка: oplog
це обмежена колекція, це означає, що колекція має обмеження, local.oplog.rs
ви можете перевірити вміст цієї колекції всередині оболонки mongo в будь-якому члені набору.
Окрім того, що вторинний вузол виконує належне резервне копіювання бази даних, він виконує такі ролі:
Завдяки цим характеристикам ми можемо мати різні типи вторинних вузлів:
primary
і не можуть ініціювати вибори, але вони можуть голосувати на виборах, мати повну копію та приймати операції читання. Вони можуть бути корисними при розгортанні кількох центрів обробки даних.Priority 0
члени, але, крім того, вони не можуть обробляти операції читання. При необхідності вони можуть проголосувати. Переважними завданнями для цих учасників є звіти та резервне копіювання.priority 0
вузлом, і рекомендується, щоб він також був hidden
учасником.Перед розгортанням інфраструктури важливо спроектувати її, і в цьому проекті є моменти, які слід враховувати.
Майте на увазі, що мінімальна кількість елементів для побудови набору реплік становить 3. Ви можете змішати три типи вузлів з як мінімум одним основним і одним вторинним вузлом.
У цьому посібнику ми розгортаємо 3 учасників, одного основного та двох стандартних вторинних.
Примітка. Рекомендується мати максимальну кількість 7 членів з правом голосу з поєднанням арбітрів і вторинних членів.
Назва лише для довідки, але ви використовуєте її в конфігурації набору. Майте на увазі, що у вашому виробничому середовищі може бути більше однієї репліки, тому не нехтуйте назвою набору.
Цей посібник заохочує користувача вибрати назву набору.
У цьому посібнику пропонується розгорнути в одному центрі обробки даних, щоб уникнути проблем зі зв’язком.
Примітка: у разі розгортання в різних центрах обробки даних рекомендується обгорнути свої вузли VPN
Запустіть 3 вузли Ubuntu 16.04 x64; в тому самому регіоні з вашого клієнтського порталу, якщо це можливо. Не забудьте назвати їх відповідно до типу проекту, з яким ви маєте справу, і переконайтеся, що всі ці вузли мають однаковий розмір сервера.
Після того, як ви розгорнули свої 3 вузли, ви повинні бути впевнені, що кожен вузол може спілкуватися з іншими. Вам потрібно розділити ssh на два вузли та досягти інших за допомогою ping -c 4 EXAMPLE_IP
. Змініть EXAMPLE_IP
на фактичні IP-адреси ваших вузлів.
Тут ви можете побачити приклад успішної комунікації між двома вузлами.
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
Загалом, ви можете використовувати пакунок MongoDB Ubuntu, але краще використовувати офіційне репо спільноти, оскільки воно завжди оновлюється. Це репо містить такі пакети:
mongod
демон (основний процес, який обробляє запити даних).mongos
демон (служба маршрутизації для спільних розгортань).mongo shell
інтерфейс JavaScript.Перейдіть до встановлення пакетів.
Імпортуйте відкритий ключ до системи керування пакетами.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Створіть файл списку для 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
Оновіть базу даних пакетів.
sudo apt-get update
Встановіть метапакет MongoDB.
sudo apt-get install -y mongodb-org
Запустіть службу MongoDB.
sudo service mongod start
Тепер ви можете відкрити його mongo shell
в будь-якій сесії bash. Для цього необхідно скористатися mongo
командою. Вас зустріне щось подібне.
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*
>
Не забудьте вимкнути службу за допомогою sudo service mongod stop
, тому що пізніше ми почнемо mongod
знову з деякими параметрами. Повторіть цей процес у всіх 3 вузлах набору.
Використання ключового файлу змушує використовувати дві концепції в адмініструванні набору реплік. Першим є Internal Authentication
. За замовчуванням ви можете почати mongo shell
сеанс без використання користувача, і цей сеанс матиме повний контроль над базою даних, але коли ви використовуєте ключовий файл для аутентифікації, ваш mongo shell
сеанс досягає стану, який називається localhost exception
. Цей стан дозволяє лише створити користувача адміністратора та набір реплік. Друге поняття - це Role-Based Access Control
, або іншими словами авторизація. Це застосовується для керування адміністративними рівнями набору реплік.
Ключовий файл — це пароль для використання в наборі, цей пароль має бути однаковим для всіх членів набору. Для підвищення безпеки важливо використовувати випадковий ключ із вибраним інструментом.
Вміст має містити від 6 до 1064 символів. Також ви повинні встановити read only
дозвіл для ключового файлу.
chmod 400 PATH_OF_YOUR_KEYFILE
Тепер скопіюйте свій ключовий файл до кожного члена набору, будь ласка, використовуйте послідовну папку для подальшого використання та не зберігайте її на знімному носії.
Також використовуйте папку для файлу, до якого mongod
можна отримати доступ.
На цьому кроці нам потрібно запустити mongod daemon
член у кожному набору . Існує два способи запуску mongod
процесу: за допомогою файлу конфігурації або за допомогою командного рядка. Обидва методи досить прості, але для простоти в цьому посібнику використовується версія командного рядка.
Використовуйте назву, яку ви вибрали раніше в цій команді.
mongod --keyFile PATH_OF_YOUR_KEYFILE --replSet "YOUR_SET_NAME"
За замовчуванням mongod
не запускається як демон. Вам потрібно буде використовувати --fork
параметр або використовувати його, upstart
щоб повністю запустити його як демон. У цьому підручнику ми не заохочуємо працювати mongod
як демон, щоб ви могли бачити журнали безпосередньо у своєму терміналі.
Примітка. Уважно введіть назву набору реплік, оскільки після створення ви не можете змінити його.
Примітка: якщо ви запускаєте mongod
як процес без демона, вам доведеться відкрити інше з’єднання ssh, щоб продовжити роботу.
Ви повинні використовувати mongo
команду, щоб відкрити файл mongo shell
. Це можна зробити в будь-якому члені набору.
На даний момент ми перебуваємо в стані, який називається localhost exception
. Коли для налаштування mongod
процесу використовується ключовий файл , ви зобов’язані створити адміністратора бази даних, перш ніж застосовувати операції читання-запису, але ми розглянемо це пізніше.
Це делікатна частина, ми використовуємо команду rs.initiate()
всередині mongo shell
з кроку 4. Перед використанням огляду цієї команди , давайте його.
rs.initiate(
{
_id : <replicaSetName>,
members: [
{ _id : 0, host : "example1.net:27017" },
{ _id : 1, host : "example2.net:27017" },
{ _id : 2, host : "example3.net:27017" }
]
}
)
Перше _id
поле є рядком і має відповідати тому, --replSet
яке було передане до mongod
. Крім того, кожне значення host
має бути або IP-адресою, або іменем домену кожного члена набору реплік. Не забудьте додати порт, який використовує екземпляр mongo, до кожного члена.
Тепер настав час виконати команду з вашими даними, це призведе до запуску election
, тоді основний буде обраний автоматично.
Тут ви повинні зауважити, що ваш курсор оболонки змінився на YOUR_SET_NAME:PRIMARY>
або YOUR_SET_NAME:SECONDARY
. Це означає, що створення набору було успішним.
Щоб продовжити роботу, вам потрібно знайти primary
файл , якщо ви його, звичайно, немає. Використовуйте rs.status()
команду, щоб показати інформацію про набір реплік і знайти файл primary
. Ви шукаєте нерухомість "stateStr" : "PRIMARY"
.
Після того, як ви знайшли primary
, введіть mongo shell
і запустіть наступну команду, використовуючи свої дані.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOU_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
admin = db.getSiblingDB("admin")
Частина дозволяє нам писати в admin
з іншої бази даних. Це створює псевдонім під назвою admin
, тому ми можемо замість нього виконувати команди.
Якщо операція пройшла успішно, ви отримаєте сповіщення про те, що користувача додано.
Successfully added user: {
"user" : "YOUR_USER",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
На даний момент у нас є лише адміністратор для всіх серверів, але наявність набору Replica змушує нас мати користувача з цією clusterAdmin
роллю. Ми створимо іншого користувача лише з цією роллю, щоб розділити проблеми.
Ми досягли межі localhost exception
, тому ми повинні змінити автентифікацію на користувача, створеного за один крок раніше.
Ви можете змінити користувачів всередині за mongo shell
допомогою наступного.
db.getSiblingDB("admin").auth("YOUR_ADMIN", "YOUR_PASSWORD" )
Якщо ви ще не підключилися до mongo shell
цієї команди, скористайтеся цією командою.
mongo -u "YOUR_ADMIN" -p "YOUR_PASSWORD" --authenticationDatabase "admin"
Ви отримаєте сповіщення про зміну користувача, і ви зможете перейти до наступного кроку.
clusterAdmin
Роль дає користувачеві повний контроль над набором реплік. Створити його так само легко, як створити користувача адміністратора.
db.getSiblingDB("admin").createUser(
{
"user" : "YOUR_USER",
"pwd" : "YOUR_PASSWORD",
roles: [ { "role" : "clusterAdmin", "db" : "admin" } ]
}
)
Зауважте, що цього разу роль змінено наclusterAdmin
.
На даний момент у нас є 2 адміністратори: один має повний контроль над сервером, а інший має доступ до адміністративних завдань на рівні набору репліки. Проте нам не вистачає користувача, який має доступ до «використання» бази даних, тому ми створимо цього користувача зараз.
admin = db.getSiblingDB("admin")
admin.createUser(
{
user: "YOUR_USER",
pwd: "YOUR_PASSWORD",
roles: [ { role: "userAdminAnyDatabase", db: "cars" } ]
}
)
Зверніть увагу, що цього разу ми змінюємо db
частину, там ми робимо базу даних доступною для користувача, у цьому випадку ми використовуємо базу даних з іменем cars
.
База даних ще не створена. Для цього вам доведеться ввести кілька команд, щоб неявно його створити. Перейдіть до cars
бази даних.
use cars
Ви отримаєте сповіщення: switched to db cars
.
База даних ще не створена, для цього потрібно щось написати в неї. Ми використовуємо наступний приклад.
db.models.insert({ make: "Dodge", model: "Viper", year: 2010 })
Цього разу ви отримаєте сповіщення за допомогою WriteResult({ "nInserted" : 1 })
.
Якщо ви хочете, ви можете отримати всі об’єкти в базі даних за допомогою find()
методу:
db.models.find()
{ "_id" : ObjectId("59acd8b55334882863541ff4"), "make" : "Dodge", "model" : "Viper", "year" : 2010 }
Зауважте, що _id
у вашому виводі вони будуть відрізнятися, але інші дані мають бути такими ж. Якщо достатньо часу, ці дані будуть репліковані іншим учасникам.
Створення набору реплік спочатку може бути складним, оскільки потрібно зрозуміти багато інформації, але як тільки ви отримаєте ідею, ви зможете швидко розгорнути її, тому не опускайте руки, якщо ви не можете зрозуміти це з першого разу. Майте на увазі, що набір реплік важливий для адміністрування MongoDB, оскільки він відкриває можливість додавати додаткові функції, такі як балансування навантаження.
Вступ InfluxDB — це розподілена база даних часових рядів з відкритим вихідним кодом без зовнішніх залежностей. Так, ви читаєте параграф про відсутність зовнішніх залежностей
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є
Laravel GitScrum або GitScrum — це інструмент підвищення продуктивності з відкритим вихідним кодом, розроблений, щоб допомогти командам розробників реалізувати методологію Scrum подібним чином.
Вступ У цій статті розглянемо, як створити резервну копію кількох баз даних MySQL або MariaDB, які знаходяться на одній машині за допомогою спеціального сценарію bash.
OrientDB — це багатомодельна СУБД NoSQL з відкритим кодом наступного покоління. Завдяки підтримці кількох моделей даних OrientDB може надати більше функціональних можливостей і гнучкості
MongoDB за замовчуванням не захищений. Якщо ви встановлюєте MongoDB і запускаєте його, не налаштувавши його для аутентифікації, у вас буде поганий час
MySQL є найпопулярнішим програмним забезпеченням у світі, яке використовується для баз даних. Дуже важливо переконатися, що у вас є резервні копії бази даних. Така практика дозволяє
Вступ PostgreSQL — це безкоштовна система управління базами даних з відкритим кодом, яку можна використовувати для зберігання інформації, пов’язаної з веб-сайтами. Відомо також а
Передумови Сервер Vultr з сучасною версією Arch Linux (див. цю статтю). Доступ до Sudo. Команди, які потрібно виконувати як root, мають префікс # і один
З моменту заснування в 2009 році MongoDB лідирує в галузі NoSQL. Однією з основних концепцій MongoDB є набір реплік, тому перш ніж працювати з i
MongoDB — це швидка та потужна база даних NoSQL. Однак репозиторії Debian оновлюються повільно і часто містять дуже старі версії пакунків. Цей підручник
Barnyard2 — це спосіб зберігання та обробки двійкових вихідних даних Snort в базу даних MySQL. Перш ніж почати. Зверніть увагу, що якщо у вас немає хропіння
Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої
RockMongo — це веб-інструмент керування MongoDB, схожий на інструмент керування MySQL: phpMyAdmin. У цьому посібнику буде описано процес встановлення
Вступ InfluxDB — це база даних на основі часових рядів, написана на Go. InfluxDB має багато практичних застосувань, одним з яких є зберігання даних моніторингу на серверах. я
MariaDB є безкоштовною базою даних з відкритим вихідним кодом і є найбільш широко використовуваною заміною MySQL. Він створений розробниками MySQL і призначений для подальшого використання
phpRedisAdmin — це веб-додаток, який керує базами даних Redis з інтуїтивно зрозумілим графічним інтерфейсом користувача. Цей підручник пояснить, як встановити
Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше