Criando um arquivo de swap em seu VPS

Olá,

Quando contratamos um VPS (Virtual Private Server),  um servidor virtual privado que fica em infraestrutura compartilhada em nuvem, muitas vezes o perfil escolhido não conta com uma pré-partição para a utilização de uma área de troca (swap) nativo no template do S.O. escolhido.

Há várias empresas que oferecem este serviço de VPS e o seu custo x benefício é muito bom. Hoje contamos com preços bem acessíveis, como no caso da Amazon, DigitalOcean, OVH, Host1Plus, etc… Particularmente uso um VPS da DigitalOcean e quando criei meu servidor (Droplet), o S.O. escolhido, no meu caso uma distro GNU/Linux vem com o disco todo particionado com apenas uma partição (/) . Eu poderia usar uma ferramenta para redimensionar a partição para criar uma partição de swap, mas como o server utiliza um SSD que o desempenho de leitura/escrita é muito bom, um arquivo de swap resolveria meu problema. Afinal, a intenção é que o servidor não precise do swap, mas que funcione como um recurso de emergência para que o mesmo não trave no momento em que toda a memória RAM for utilizada.

Como podem notar, o plano que contratei tem 20GB de disco no servidor e o S.O. já veio particionado com o 20GB para o /:

# df -h
Filesystem Size Used Avail Use% Mounted on
udev 238M 0 238M 0% /dev
tmpfs 49M 664K 49M 2% /run
/dev/vda1 20G 4.2G 15G 23% /

Podemos ver que o servidor tem apenas 512MB de RAM,  o que é pouco para os dias atuais, mas foi o que contratei e até então esta me atendendo bem. A vantagem de ter um VPS é que quando precisar de mais recursos, eu posso entrar em minha conta e facilmente alocar mais recursos como memória RAM, espaço em disco, core de processamento e transferência de dados, mas claro com um cisto adicional.

Vejam que não na situação inicial não existe swap:

# free -m
total used free shared buff/cache available
Mem: 488 397 7 21 83 32
Swap: 0 0 0

Agora, vamos iniciar passo-a-passo para criação de um arquivo para área de troca:

Passo 1 – Criando um arquivo de 1 GB para swap:

# dd if=/dev/zero of=/swapfile bs=1024 count=1048576

No caso acima, estou criando um arquivo chamado /swapfile de 1GB para utilizar como swap.

Passo 2 – Preparando o arquivo para ser swap:

# mkswap /swapfile

Passo 3 – Ativando o arquivo como swap:

# swapon /swapfile

Testando:

# free -m
total used free shared buff/cache available
Mem: 488 326 7 20 154 104
Swap: 1023 67 956

Podemos ver acima, que o arquivo já esta sendo utilizado como swap, porém ao reiniciar o servidor o arquivo não será montado como swap automaticamente. Devemos então, editar o arquivo /etc/rc.local e adicionar as linhas em vermelho para que o arquivo de swap seja ativado na inicialização do S.O., no meu caso o Ubuntu:

#  vim  /etc/rc.local
#!/bin/sh -e
….
mkswap /swapfile
swapon /swapfile
exit 0

Pronto! Seu arquivo de swap será ativado em toda inicialização do VPS!

Atá a próxima!

 

Instalando o Bandwidthd e protegendo com senha no Ubuntu 16.04

Olá,

Hoje vou mostrar como instalar o Bandwidthd, uma ferramenta web que gera gráficos a partir do tráfego das interfaces de rede, em um servidor Ubuntu 16.04 e o mais importante, protegendo com senha para que só você tenha acesso aos gráficos.

Vamos lá:

Passo 1 -Pré-requisitos:

Caso não tenha o servidor web Apache instalado, instale-o primeiro:

$ sudo apt-get update  && sudo apt-get install apache2 apache2-utils


Passo 2 -Instalando a ferramenta:

$ sudo apt-get install bandwidthd

No momento da instalação ele vai perguntar qual interface você quer monitorar, caso o servidor tenha múltiplas interfaces, seria interessante selecionar todas elas. E também vai perguntar qua a faixa de IP’s vai querer gerar o relatório, no caso você deve selecionar o CIDR das interfaces.

Após a instalação, você já poderá acessar o bandwidthd pelo navegador:

http://ip_do_seu_servidor/bandwidthd/

Caso apareça a mensagem “Not Found”, mesmo depois de reiniciado o apache, crie um link simbólico para o diretório do bandwidthd:

$ sudo systemctl restart apache2

Crie um link, caso continue aparecendo mensagem de “Not found”:

$ cd /var/www/html

$ sudo ln -s /var/lib/bandwidthd/htdocs/ bandwidthd

Recarregue a página, provavelmente os gráficos estarão acessíveis, mas sem senha!


Passo 3 – Configurando uma senha para acesso à pagina do bandwidthd:

Agora com o bandwitdthd rodando e sendo acessado corretamente via browser, vamos configurar uma senha para protegê-la.

Edite o arquivo /etc/apache2/sites-enabled/000-default.conf:

$ sudo vim /etc/apache2/sites-enabled/000-default.conf

e adicione as linhas abaixo em vermelho:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
         <Directory “/var/www/html/bandwidthd”>
                AuthType Basic
                AuthName “Acesso restrito”
                AuthUserFile /etc/apache2/.htpasswd
                Require valid-user
        </Directory>
</VirtualHost>

Agora vamos criar o arquivo que conterá os usuários e senhas, no exemplo abaixo estou criando o usuário diego:

$ sudo htpasswd -c /etc/apache2/.htpasswd diego

Digite uma senha para este novo usuário e confirme.

Restarte o apache2 para que ele recarregue as modificações no arquivo de configuração:

$ sudo systemctl restart apache2

Pronto! A ferramenta bandwitdthd esta protegida por usuário e senha!

OBS: Esta proteção por senha pode ser aplicada para qualquer diretório do Apache, não apenas limitada a esta ferramenta!

Até a próxima!