Já vimos como o Logstash funciona, de maneira bem simples. 
Agora, vamos partir para a configuração de um ambiente distribuído, e usando uma interface Web com mais recursos. Neste ambiente, teremos dois tipos de máquinas: máquinas que enviam as mensagens e máquinas que coletam e indexam as mensagens. 
Nas máquinas do primeiro tipo, iremos usar apenas o Logstash, já que elas apenas lêem as mensagens das aplicações de origem e aplicam alguns filtros. 
No segundo tipo de máquina, iremos coletar e armazenar as mensagens. Do primeiro tipo, teremos várias máquinas, já do segundo, apenas uma (ou algumas poucas, no caso de uma carga muito grande de acessos). 
Por isso, para que o ambiente consiga tratar uma grande quantidade de mensagens, iremos usar o 
Redis, como uma fila que vai receber as mensagens dos hosts que enviam as mensagens, o Logstasg para tratar e indexar as mensagens, o Elasticsearch para armazenar e o 
Kibana para visualizar as mensagens.
Crie as pastas 
/opt/monitor/logstash/{bin,conf,log} nos dois tipos de máquinas - já que todas elas irão executar uma instância do Logstash. 
Faça o download do Logstash na pasta 
bin - lembre-se do pré-requisito de ter o Java instalado. 
Nas máquinas que enviarão as mensagens, crie um arquivo de configuração para o Logstash, na pasta 
/opt/monitor/logstash/conf, chamado "shipper.conf", com o seguinte conteúdo:
input { stdin { type => "stdin-type" } }
output { redis { host => "<endereço IP do redis server>" data_type => "list" key => "logstash" } }
Substituindo <endereço IP do redis server>, pelo endereço IP (ou DNS hostname) do servidor que vai executar o Redis. 
Já na máquina que vai agregar, indexar e armazenar as mensagens, crie um arquivo chamado "indexer.conf", na pasta 
/opt/monitor/logstash/conf, com o seguinte conteúdo:
input { redis { host => "127.0.0.1" type => "redis-input" data_type => "list" key => "logstash" message_format => "json_event" } }
output { elasticsearch { host => "127.0.0.1" } }
Aqui, o Elasticsearch vai executar na mesma máquina que o Redis e o Logstash indexer, mas é possível ter cada componente em seu próprio servidor, sem nenhum prejuízo de desempenho ou configuração - apenas lembrando de usar os endereços corretos.
Faça o download do Elasticsearch, disponível em:
Visite a página do Elasticsearch e verifique a versão mais recente, na pasta 
/opt/monitoring, descompacte o arquivo e renomeie a pasta criada para: elasticsearch
Crie uma pasta para os logs (o pacote do Elasticsearch já contém pastas com os binários e com as configurações):
# cd /opt/monitoring
# wget https://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.19.9.tar.gz
# tar -zxf elasticsearch-0.19.9.tar.gz
# mv elasticsearch-0.19.9 elasticsearch
# mkdir /opt/monitoring/elasticsearch/log
# rm /opt/monitoring/elasticsearch-0.19.9.tar.gz
Para facilitar o processo, vamos também criar um script para iniciar o Elasticsearch junto com o sistema (no caso, estamos usando o 
Ubuntu). 
Para isso, crie um arquivo chamado "elasticsearch" na pasta 
/etc/init.d/, com o seguinte conteúdo:
 #!/bin/sh
 ### BEGIN INIT INFO
 # Provides:          elasticsearch
 # Required-Start:    $all
 # Required-Stop:     $all
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Starts elasticsearch
 # Description:       Starts elasticsearch using start-stop-daemon
 ### END INIT INFO
  
 ES_HOME=/opt/monitoring/elasticsearch
 ES_MIN_MEM=256m
 ES_MAX_MEM=1g
 DAEMON=$ES_HOME/bin/elasticsearch
 NAME=elasticsearch
 DESC=elasticsearch
 PID_FILE=/var/run/$NAME.pid
 LOG_DIR=/opt/monitoring/$NAME/log
 DATA_DIR=/opt/monitoring/$NAME/data
 WORK_DIR=/tmp/$NAME
 CONFIG_FILE=/opt/monitoring/$NAME/config/elasticsearch.yml
 DAEMON_OPTS="-p $PID_FILE -Des.config=$CONFIG_FILE -Des.path.home=$ES_HOME -Des.path.logs=$LOG_DIR -Des.path.data=$DATA_DIR -Des.path.work=$WORK_DIR"
test -x $DAEMON || exit 0
  
set -e
case "$1" in
  start)
    echo -n "Starting $DESC: "
    mkdir -p $LOG_DIR $DATA_DIR $WORK_DIR
    if start-stop-daemon --start --pidfile $PID_FILE --startas $DAEMON -- $DAEMON_OPTS
    then
      echo "started."
    else
      echo "failed."
    fi
    ;;
  stop)
    echo -n "Stopping $DESC: "
    if start-stop-daemon --stop --pidfile $PID_FILE
    then
      echo "stopped."
    else
      echo "failed."
    fi
    ;;
  restart|force-reload)
    ${0} stop
    sleep 0.5
    ${0} start
    ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac
exit 0
E instale o script: 
# chmod +x /etc/init.d/elasticsearch
# update-rc.d elasticsearch defaults
Para este roteiro, as configurações disponíveis nos arquivos de configuração do Elasticsearch ("elasticsearch.yaml" e "logging.yaml") são o suficiente. 
Para um ambiente de produção, pode ser necessário ajustar alguns parâmetros (Ex.: no caso de você pensar em usar um 
Cluster do Elasticsearch). Feito isso, inicie o Elasticsearch:
# /etc/init.d/elasticsearch start
Você pode acompanhar o 
startup do Elasticsearch através do log:
# tail -f /opt/monitoring/elasticsearch/log/elasticsearch.log
Agora, crie as pastas 
/opt/monitoring/redis/{bin,conf,log} para o Redis. Faça o download do código-fonte, disponível em: 
Visite a página do Redis e verifique a versão mais recente. Descompacte o arquivo e compile o Redis:
# mkdir -p /opt/monitoring/redis/{conf,log,data}
# cd /opt/monitoring/redis
# wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz
# tar -zxf redis-2.4.17.tar.gz
# make
Depois de compilar, pode ser uma boa ideia testar os arquivos (para rodar o teste, é necessário ter instalado o pacote 
tcl8.5):
# make test
E depois disso, o make install, passando o caminho onde os binários do Redis serão instalados:
# make PREFIX=/opt/monitoring/redis/ install
Para inicializar o Redis junto com o sistema, você pode copiar o script de inicialização 
redis_init_script, disponível dentro da pasta "utils", para a pasta 
/etc/init.d, editando os caminhos corretamente. 
Feito isso, copie o arquivo "redis.conf" para a pasta 
/opt/monitoring/redis/conf com o nome "6379.conf" e edite as seguintes linhas: 
daemonize yes
logfile /opt/monitoring/redis/log/redis_6379.log
dir /opt/monitoring/redis/data
Feito isso, você pode inicializar o Redis:
# /etc/init.d/redis start
E acompanhar a operação através do log. Agora, você já pode iniciar as duas instâncias do Logstash, começando pelas máquinas que irão enviar as mensagens (shipper). 
Na pasta onde está o binário do Logstash:
# java -jar logstash-1.1.1-monolithic.jar agent -f ../conf/shipper.conf
O Logstash já pode enviar mensagens ao Redis. Como ele está configurado para receber eventos da entrada padrão, vamos digitar algumas mensagens no console do Logstash. No servidor onde roda o Redis, execute o seu cliente: 
# /opt/monitoring/redis/bin/redis-cli
No console do Redis-cli, execute o comando: 
llen logstash - para ver o tamanho da fila do Redis.
E o comando: 
lpop logstash - para recuperar mensagens da fila.
Agora, inicie o Logstash da máquina que vai indexar as mensagens (indexer):
# java -jar logstash-1.1.1-monolithic.jar agent -f ../conf/indexer.conf
O Logstash agora vai começar a ler as mensagens no Redis e enviar para o Elasticsearch. Digite algumas mensagens no console do Logstash da máquina shipper. Se quiser, pode verificar no console do redis-cli, que a mensagens estão sendo consumidas.
Entretanto, agora nós não estamos mais rodando o Logstash com sua interface Web. Para visualizar o conteúdo do Elasticsearch - e as mensagens coletadas pelo Logstash - vamos usar o Kibana. 
O 
Kibana é uma interface gráfica para o Logstash (e Elasticsearch), com bem mais recursos que a interface embutida no Logstash.
Dependências
O Kibana é uma aplicação PHP, então é necessário um servidor Web e o PHP instalados na máquina. Nesse caso, iremos usar o 
Apache e o 
mod-php. Também é necessário o módulo 
cURL do PHP. 
Eu usei os pacotes disponíveis no repositório do Ubuntu. O nome dos pacotes:
-  apache2
-  libapache2-mod-php5 
-  php5-curl
 
Crie as pastas 
/opt/monitoring/kinaba/{www,log} e faça o download do Kibana, disponível em:
Visite a página do Kibana e verifique a versão mais recente. Descompacte e mova os arquivos para a pasta 
/opt/monitoring/kibana/www. Com o Apache já instalado, crie um arquivo de configuração similar ao abaixo:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /zunnit/kibana/www
    <Directory /zunnit/kibana/www>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         allow from all
    </Directory>
    ErrorLog /zunnit/kibana/log/error.log
    LogLevel warn
    CustomLog /zunnit/kibana/log/access.log combined
</VirtualHost>
Também é necessário editar o arquivo de configuração do Kibana, o "config.php". 
A princípio, a única opção que deve ser alterada é a "elasticsearch_server", que define o endereço e a porta do Elasticsearch. No nosso caso, o servidor é 
localhost e a porta é a padrão (9200). 
Reinicie o Apache e aponte o browser para este servidor. A página inicial do Kibana será aberta. Clique no botão "Search" e veja as últimas mensagens que você digitou no console do Logstash Shipper. 
Entretanto, coletar mensagens digitadas no console não é nada útil. Por isso, iremos configurar o Logstash para coletar alguma coisa mais interessante.