Aqui falaremos sobre os procedimentos de instalação do ELK 3 em CentOS para ser possível importar os dashboards para Exchange 2013 disponibilizado por ELIJAH PAUL (dísponível aqui, ou nas referências abaixo)

Antes de mais nada, será necessário o Java, para instalar execute:

yum -y install java-1.7.0-openjdk policycoreutils-python

Para instalar o Elasticsearch, execute os comandos abaixo:

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

echo "[elasticsearch-1.1]" > /etc/yum.repos.d/elasticsearch.repo
echo "name=Elasticsearch repository for 1.1.x packages" >> /etc/yum.repos.d/elasticsearch.repo
echo "baseurl=http://packages.elasticsearch.org/elasticsearch/1.1/centos" >> /etc/yum.repos.d/elasticsearch.repo
echo "enabled=1" >> /etc/yum.repos.d/elasticsearch.repo

yum -y install elasticsearch-1.1.1

echo "script.disable_dynamic: true" >> /etc/elasticsearch/elasticsearch.yml
sed -i "s/# network.host: 192.168.0.1/network.host: localhost/g" /etc/elasticsearch/elasticsearch.yml
sed -i "s/# discovery.zen.ping.multicast.enabled: false/discovery.zen.ping.multicast.enabled: false/g" /etc/elasticsearch/elasticsearch.yml

ln -s /usr/share/elasticsearch/bin/elasticsearch /usr/bin/elasticsearch

service elasticsearch restart

/sbin/chkconfig --add elasticsearch

Para instalar o logstash, execute os comandos abaixo:

rpm -ivh http://download.elastic.co/logstash/logstash/packages/centos/logstash-2.4.1.noarch.rpm

vi /etc/logstash/conf.d/logstash.conf

Pressione a tecla INSERT para entrar em modo de edição e insira o seguinte conteúdo no arquivo:

input {
udp {
type => “Exchange”
port => 5141
}
}
filter {
if [type] == “Exchange” {
csv {
add_tag => [ ‘exh_msg_trk’ ]
columns => [‘logdate’, ‘client_ip’, ‘client_hostname’,  ‘server_ip’, ‘server_hostname’, ‘source_context’, ‘connector_id’, ‘source’, ‘event_id’, ‘internal_message_id’, ‘message_id’, ‘network_message_id’, ‘recipient_address’, ‘recipient_status’, ‘total_bytes’, ‘recipient_count’, ‘related_recipient_address’, ‘reference’, ‘message_subject’, ‘sender_address’, ‘return_path’, ‘message_info’, ‘directionality’, ‘tenant_id’, ‘original_client_ip’, ‘original_server_ip’, ‘custom_data’]
remove_field => [ “logdate” ]
}
grok {
match => [ “message”, “%{TIMESTAMP_ISO8601:timestamp}” ]
}
mutate {
convert => [ “total_bytes”, “integer” ]
convert => [ “recipient_count”, “integer” ]
split => [“recipient_address”, “;”]
split => [ “source_context”, “;” ]
split => [ “custom_data”, “;” ]
}
date {
match => [ “timestamp”, “ISO8601” ]
timezone => “Europe/London”
remove_field => [ “timestamp” ]
}
if “_grokparsefailure” in [tags] {
drop { }
}
}
}
output {
elasticsearch {
hosts => localhost
}
stdout {
codec => rubydebug
}
}

Terminando de inserir, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair.

ln -s /opt/logstash/bin/logstash /usr/bin/logstash
/opt/logstash/bin/logstash-plugin install logstash-input-beats

/opt/logstash/bin/logstash-plugin install logstash-input-udp

/opt/logstash/bin/logstash-plugin install logstash-output-elasticsearch

systemctl daemon-reload

systemctl enable logstash
systemctl start logstash

Para instalar o Kibana, execute os comandos abaixo:

yum install -y httpd

systemctl enable httpd.service
systemctl start httpd.service

cd ~; curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.2.tar.gz

tar xvf kibana-3.1.2.tar.gz

sed -i "s/elasticsearch: \"http:\/\/\"+window.location.hostname+\":9200\",/elasticsearch: \"http:\/\/\"+window.location.hostname+\":80\",/g" ~/kibana-3.1.2/config.js
mkdir -p /var/www/html/kibana3
cp -R ~/kibana-3.1.2/* /var/www/html/kibana3/
chmod -R 777 /var/www/html/kibana3

vim /etc/httpd/conf.d/kibana3.conf

Pressione a tecla INSERT para entrar em modo de edição e insira o seguinte conteúdo no arquivo:

<VirtualHost $HOSTNAME:80>
ServerName $HOSTNAME
DocumentRoot /var/www/html/kibana3
<Directory /var/www/html/kibana3>
Allow from all
Options -MultiViews
</Directory>
<Proxy http://localhost:9200>
ProxySet connectiontimeout=5 timeout=90
</Proxy>
# Proxy for _aliases and .*/_search
<LocationMatch “^/(_nodes|_aliases|.*/_aliases|_search|.*/_search|_mapping|.*/_mapping)$”>
ProxyPassMatch http://127.0.0.1:9200/$1
ProxyPassReverse http://127.0.0.1:9200/$1
</LocationMatch>
# Proxy for kibana-int/{dashboard,temp} stuff (if you don’t want auth on /, then you will want these to be protected)
<LocationMatch “^/(kibana-int/dashboard/|kibana-int/temp)(.*)$”>
ProxyPassMatch http://127.0.0.1:9200/$1$2
ProxyPassReverse http://127.0.0.1:9200/$1$2
</LocationMatch>
<Location />
AuthType Basic
AuthBasicProvider file
AuthName “Restricted”
AuthUserFile /etc/httpd/conf.d/kibana-htpasswd
Require valid-user
</Location>
</VirtualHost>

Terminando de inserir, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair. em seguida execute:

htpasswd -c /etc/httpd/conf.d/kibana-htpasswd user

Informe a senha do usuário user, pressione ENTER, confirme a senha e pressione novamente ENTER.

yum install -y epel-release
yum install -y python-pip
pip install --upgrade pip
pip install elasticsearch-curator
systemctl restart httpd.service

Agora é possível acessar o kibana pelo endereço http://IP_SEU_SERVIDOR

Fontes/Referências

https://elijahpaul.co.uk/analysing-exchange-2013-message-tracking-logs-using-elk-elasticsearch-logstash-kibana/

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria