Iniciando com MongoDB

Após termos realizado a instalação do MongoDB nesse post, hoje vamos iniciar com os primeiros passos com nosso banco de dados.

Utilizando o Mongo Shell

Quando estamos utilizando o mongo em localhost (127.0.0.1) não é necessário usuário e senha para realizar a conexão.

Primeiro comando a ser usado é o use, utilizado para selecionar o banco usado.

Método insert( ) para armazenar um documento contendo as chaves “name” e “idade”. As informações são armazenadas na estrutura, chave/valor, similar ao JSON.

No comando db.usuarios.insert, esse usuários corresponde a uma coleção, e ela não precisa de uma estrutura definida, podendo ser dinâmica caso haja necessidade. Podemos usar o comando abaixo sem alterar nenhum tipo de definição de estrutura que o insert irá funcionar normalmente.

Use o método find( ) para visualizar os documentos inseridos. Vamos buscar o que foi salvo na coleção usuarios:

Essa pesquisa também pode ser aprofundada, por exemplo pesquisando só quem está na cidade “Sapiranga”

E para sairmos do nosso shell basta executar o comando:

Para o início está de bom tamanho, até a próxima.

Instalando MongoDB Community Edition 4.0 no Ubuntu

O que é MongoDB

O MongoDB é um banco de dados NoSQL orientado a documentos de alto desempenho (sistema noSQL significa que ele não fornece tabelas, linhas, etc.). Ele armazena dados em documentos semelhantes a JSON com esquemas dinâmicos para melhor desempenho.

Adicionando repositórios

Para instalar MongoDB Community Edition no Ubuntu, precisamos primeiro importar a chave pública usada pelo gerenciador de pacotes.

No Ubuntu 18.04

No Ubuntu 16.04

No Ubuntu 14.04

Instalando o pacote

Habilitando e iniciando serviço

E pronto já podemos usar no mongo, lembrando que é necessário liberar a porta 27017 no firewall caso o mesmo esteja habilitado. Nos próximos posts falaremos um pouco mais sobre o mongo.

Instalando última versão do Ansible no Ubuntu/Debian

Caso não saiba o que é Ansible, pode dar uma lida nesse post.

A forma mais simples para instalar o Ansible é com o comando abaixo, porém é instalado uma versão mais antiga.

Agora para baixar uma versão mais atualizada basta seguir os passos abaixo:

 

Identificar sistema operacional com ping

O comando ping utiliza o protocolo icmp e é muito útil para alguns testes de rede. O que pouca gente sabe é que durante a resposta do comando ping, uma informação pode nos informar qual o sistema operacional está respondendo. Essa informação é TTL (Time to Live).

Ex:

Podemos ver que nesse exemplo o TTL é 64 que corresponde ao Linux. É bom lembrar que cada vez que um pacote passa por um roteador é reduzido um do valor TTL. Caso a resposta seja 64, significa que o pacote veio de um Linux e passou por 2 roteadores.

Unix = 255
Linux = 64
Windows = 128

Limpar container antigos Docker

Caso sua lista de container esteja muito grande e queira remover alguns containers do seu host, podemos usar o comando abaixo para remover container parados a mais tempo:

Explicando:

docker ps –filter “status=exited” = Lista somente os containers parados, que não estão em execução

grep ‘weeks ago’ = Filtra por containers criados a semanas atrás

awk ‘{print $1}’ = Exibe a primeira coluna, que refere ao CONTAINER ID

xargs –no-run-if-empty docker rm = Pega o que foi filtrado até agora e joga como parâmetro para o docker rm

Sempre use os comandos com muito cuidado caso não tenha certeza do que está fazendo, não me responsabilizo por qualquer erro humano 🙂

Convertendo arquivos DOS ^M com Vim

Quem nunca passou pela situação de executar um script e o mesmo apresentar erro. Normal, mas algumas vezes o erro ocorre pela formatação, principalmente se foi escrito ou salvo em um Windows. Ocorre de no final de cada linha ele acrescentar um ^M, o que não o Linux não consegue interpretar.

Existem algumas formas de corrigir esse problema, a mais conhecida é usando o aplicativo dos2unix.

Mas o quero apresentar hoje é usando o poderoso Vim. Basta estando dentro do arquivo digitar o comando abaixo:

Simples e rápido, caso por algum motivo queira fazer o processo contrário, basta executar:

Comando fuser – Quem mexeu no meu arquivo

O fuser é um programa que permite que saibamos qual processo está utilizando determinado arquivo, socket (portas) e sistema de arquivos especificado. Aprender sua manipulação é essencial para poder administrar um servidor para saber o que está acontecendo principalmente nas conexões. É um comando extremamente flexível, vamos ver suas opções e seu uso.

Diretiva Descrição Exemplo
-a, –all Mostra todos os arquivos, inclusive os que estão sem uso # fuser -a *
-k, –kill Desativa/Mata os processos que estão utilizando determinado arquivo # fuser -k /home/zonebin
-i, –interactive Pede confirmação sempre que for matar um processo utilizando um arquivo # fuser -ik /home/zonebin
-m, –mount Especifica um sistema de arquivos para descobrir qual processo está sendo utilizado # fuser -m /dev/sda1
-s, –silent Realiza as operações indicadas silenciosamente, não use a opção -a, -u, -v # fuser -ks /home
-u, –user Mostra o nome de usuário que iniciou o processo que está utilizando o arquivo # fuser -u /var/log/messages
-4, –ipv4 Mostra processos de IPV4 somente # fuser -4 ssh/tcp -6,
-ipv6 Mostra somente processos de sockets IPV6 # fuser -6 25/tcp

Tipos de acesso:
c  Diretório atual
e  Arquivo executável rodando
f  Arquivo aberto (omitido no modo de display padrão)
F  arquivo aberto para escrita (omitido no modo de display padrão)
r  Diretório root
m  Arquivo mapeado ou biblioteca compartilhada

Exemplos:
Mostrar os processos em execução no diretório atual:

Verificando se está sendo usado socket TCP ou UDP, como a porta 22 (SSH):
Para mais informações:

Iniciando Zabbix com Docker Compose

Obviamente precisaremos ter instalado o docker e docker-compose, caso não saiba como instalar pode acessar o link e esse outro link . Precisaremos criar um arquivo docker-compose.yml com o seguinte conteúdo:

E iremos executar o seguinte comando:

Caso queiram contribuir segue o github desse código: https://github.com/sidneiweber/zabbix-docker

Gerenciando serviços com SystemD

Com SystemD é possível gerenciar o sistema e serviços no seu Linux. Ele usa o Control Groups (CGroups), cada serviço iniciado pelo systemd roda dentro de um cgroup separado, fazendo com que se tenha garantia que cada processo iniciado por serviço seja encerrado corretamente.

Para listar todos os serviços em execução:

Para ver o status de um serviço:
Para ativar um serviço na inicialização:
Para retirar um serviço da inicialização:
Para listar units sendo executadas:
Para listar units que falharam:
Listar os serviços instalados:
Reiniciar o sistema:
Desliga e encerra o sistema:
Suspender o sistema:
Colocar o sistema em modo de hibernação:
Colocar o sistema em modo de suspensão: