Instalando MongoDB 3.4.9 em CentOS7

Pessoal, no artigo de hoje vamos realizar uma instalação básica do MongoDB 3.4.9 no CentOS7.



Primeiros criamos o usuário mongo, que será o dono da instalação e administração do banco:

[root@serv01 Instalacao]# groupadd -g 1102 mongo
[root@serv01 Instalacao]# adduser -g 1102 -u 1102 mongo
[root@serv01 Instalacao]# passwd mongo
Mudando senha para o usuário mongo.
Nova senha: senha123
Redigite a nova senha: senha123
passwd: todos os tokens de autenticações foram atualizados com sucesso.

Agora criamos os diretórios: conf, data e logs para armazenar o arquivo de configuração, os dados e logs do mongoDB:
O 10000 que estamos criando é referente a porta que iremos utilizar para o banco de dados do MongoDB.

[root@serv01 ~]# mkdir -p /opt/mongodb/conf
[root@serv01 ~]# mkdir -p /u00/mongodb/data/10000/repairdb
[root@serv01 ~]# mkdir -p /u00/mongodb/logs/10000

Vamos mudar o dono dos diretórios para o usuário mongo que criamos:

[root@serv01 ~]# chown mongo:mongo /opt/mongodb -R
[root@serv01 ~]# chown mongo:mongo /u00 -R
[root@serv01 ~]# ls -ltr /opt/mongodb/
drwxr-xr-x. 2 mongo mongo 4096 Nov 17 18:05 conf

[root@serv01 ~]# ls -ltr /u00/mongodb/
drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 data
drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 logs

[root@serv01 ~]# ls -ltr /u00/mongodb/data/
drwxr-xr-x. 3 mongo mongo 4096 Nov 17 18:05 10000

Certo, agora com o usuário mongo, repare que já temos os binário de instalação do MongoDB no diretório: /u00/Instalacao/:
Nós baixamos o arquivo compactado direto do site do mongodb.

[root@serv01 ~]# su - mongo
[mongo@serv01 ~]$ cd /u00/Instalacao/
[mongo@serv01 Instalacao]$ ls -larth
total 97M
-rw-r--r--. 1 mongo mongo  97M Set 19 09:38 mongodb-linux-x86_64-rhel70-3.4.9.tgz
drwxr-xr-x. 2 mongo mongo 4,0K Nov 12 20:19 .
drwxr-xr-x. 4 mongo mongo 4,0K Nov 17 18:05 ..

Certo, então vamos criar o diretório que irá armazenar dos binários do mongo que baixamos do site do mongodb:

[mongo@serv01 Instalacao]$ mkdir -p  /opt/mongodb/bin/3.4.9

Agora descompactamos os binários de instalação:

[mongo@serv01 Instalacao]$ ls -lart
total 98348
-rw-r--r--. 1 mongo mongo 100693080 Set 19 09:38 mongodb-linux-x86_64-rhel70-3.4.9.tgz
drwxr-xr-x. 2 mongo mongo      4096 Nov 12 20:19 .
drwxr-xr-x. 4 mongo mongo      4096 Nov 17 18:05 ..

[mongo@serv01 Instalacao]$ tar xvf mongodb-linux-x86_64-rhel70-3.4.9.tgz
mongodb-linux-x86_64-rhel70-3.4.9/README
mongodb-linux-x86_64-rhel70-3.4.9/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-rhel70-3.4.9/MPL-2
mongodb-linux-x86_64-rhel70-3.4.9/GNU-AGPL-3.0
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongodump
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongorestore
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoexport
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoimport
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongostat
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongotop
mongodb-linux-x86_64-rhel70-3.4.9/bin/bsondump
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongofiles
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongooplog
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoreplay
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongoperf
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongod
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongos
mongodb-linux-x86_64-rhel70-3.4.9/bin/mongo
[mongo@serv01 Instalacao]$

Ok, mova a pasta bin que foi descompactada do arquivo que baixamos para: /opt/mongodb/bin/3.4.9, como demonstrado abaixo:

[mongo@serv01 Instalacao]$ cd mongodb-linux-x86_64-rhel70-3.4.9/
[mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$ ll
total 120
drwxrwxr-x. 2 mongo mongo  4096 Nov 17 18:15 bin
-rw-r--r--. 1 mongo mongo 34520 Set 11 12:32 GNU-AGPL-3.0
-rw-r--r--. 1 mongo mongo 16726 Set 11 12:32 MPL-2
-rw-r--r--. 1 mongo mongo  1359 Set 11 12:32 README
-rw-r--r--. 1 mongo mongo 55625 Set 11 12:32 THIRD-PARTY-NOTICES
[mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$

[mongo@serv01 mongodb-linux-x86_64-rhel70-3.4.9]$ mv bin /opt/mongodb/bin/3.4.9/

De dentro do diretóro:

[mongo@serv01 3.4.9]$ pwd
/opt/mongodb/bin/3.4.9
[mongo@serv01 3.4.9]$ ls
bin

Desabilitamos o firewall da máquina com root:

[root@serv01 ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@serv01 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

Agora, com usuário mongo vamos criar um arquivo base de parâmetros ou configuração de uma instância MongoDB. Vamos editar o arquivo com: vi /opt/mongodb/conf/database10000.cnf
Estamos criando o arquivo database10000, este arquivo concatena a porta 10000 junto ao "database" como nome do arquivo.
Para uma configuração standalone server a configuração abaixo é o suficiente, como mencionado na documentação do MongoDB: https://docs.mongodb.com/v3.0/administration/configuration/:
Vamos lá, vamos configurar, coloque dentro do arquivo database10000.cnf o conteúdo abaixo:

[mongo@serv01 ~]$ cat /opt/mongodb/conf/database10000.cnf
fork = true
bind_ip = 10.0.2.4
port = 10000
quiet = true
dbpath = /u00/mongodb/data/10000
logpath = /u00/mongodb/logs/10000/mongod10000.log
logappend = true
journal = true

O parâmetro bind_ip diz o IP de nosso servidor, enquanto port, nos diz a porta que o mongo estará escutando para execução.
A flag dbpath, indica o diretório dos dados do MongoDB, como não é o padrão, estamos informando o diretório. Já o logpath diz o diretório que armazenará logs do MongoDB.

Após uma instalação do MongoDB, existem várias aplicações no diretório /bin do MongoDB que nos permite a execução de uma série de tarefas, como podemos ver na tabela abaixo:



Tudo certo, agora inicie a instância do MongoDB com o arquivo de configuração que acabamos de criar:
O mongod inicia o daemon ou o serviço do MongoDB.

[mongo@serv01 ~]$ /opt/mongodb/bin/3.4.9/bin/mongod --config /opt/mongodb/conf/database10000.cnf
about to fork child process, waiting until server is ready for connections.
forked process: 2828
child process started successfully, parent exiting
[mongo@serv01 ~]$

Confira que o mongo está executando:

[root@serv01 ~]# ps -ef | grep mongod
mongo     2828     1  3 19:02 ?        00:00:00 /opt/mongodb/bin/3.4.9/bin/mongod --config /opt/mongodb/conf/database10000.cnf
root      2853  2730  0 19:02 pts/1    00:00:00 grep --color=auto mongod

Vamos efetuar um teste de conexão no MongoDB com o utilitário shell: "mongo", passando o nosso servidor e a porta que configuramos, 10000:
Na sequencia já vamos listar os bancos disponíveis no MongoDB com o comando: show dbs.

[mongo@serv01 ~]$ /opt/mongodb/bin/3.4.9/bin/mongo serv01.localdomain:10000
MongoDB shell version v3.4.9
connecting to: serv01.localdomain:10000
MongoDB server version: 3.4.9
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:
2017-11-17T19:02:18.966-0200 I STORAGE  [initandlisten]
2017-11-17T19:02:18.967-0200 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-11-17T19:02:18.967-0200 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-11-17T19:02:19.588-0200 I CONTROL  [initandlisten]
2017-11-17T19:02:19.588-0200 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-11-17T19:02:19.588-0200 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-11-17T19:02:19.588-0200 I CONTROL  [initandlisten]
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten]
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten]
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-11-17T19:02:19.589-0200 I CONTROL  [initandlisten]

> show dbs
admin  0.000GB
local  0.000GB
>

Abaixo deixo um tabela com alguns comandos básicos para serem executados e testados no shell do MongoDB:



Bom, é isso ae pessoal. Claro que não removemos o warnings, não configuramos os limites de configuração de memória e etc, foi apenas uma instalação básica para iniciar seus estudos.
Abraço,

Ronaldo.

Nenhum comentário:

Postar um comentário