Pré-requis :

Nous partirons sur une machine CentOS 6 de base.
Nous ne verrons pas la configuration de logstash, voir d’autres billets ELK sur ce site.

Web Server

Nous allons installer Apache avec une configuration basique.

yum -y install httpd

chkconfig --level 2345 httpd on

Java

yum -y install java-1.8.0-openjdk

Elasticsearch

Import de la clés GPG du repo :

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Ajout du fichier repo /etc/yum.repos.d/elasticsearch.repo :

[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Installation

yum -y install elasticsearch

chkconfig --add elasticsearch

Modifier la ligne suivante dans /etc/elasticsearch/elasticsearch.yml pour limiter l’accès local :

network.host: localhost

Démarrage du service

service elasticsearch start

Test :

curl http://127.0.0.1:9200
{
  "name" : "Scott Washington",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.0.0",
    "build_hash" : "de54438d6af8f9340d50c5c786151783ce7d6be5",
    "build_timestamp" : "2015-10-22T08:09:48Z",
    "build_snapshot" : false,
    "lucene_version" : "5.2.1"
  },
  "tagline" : "You Know, for Search"
}

Logstash :

Ajout du repo /etc/yum.repos.d/logstash.repo

[logstash-2.0]
name=Logstash repository for 2.0.x packages
baseurl=http://packages.elasticsearch.org/logstash/2.0/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

Installation du service

yum -y install logstash

Kibana 4 :

Attention à l’architecture du RPM car apparement il n’y a pas de repo pour kibana.

Récupération de l’archive :

wget  https://download.elastic.co/kibana/kibana/kibana-4.2.0-linux-x64.tar.gz

Création de l’utilisateur/groupe :

groupadd kibana

useradd kibana -g kibana

Configuration de Kibana :

mkdir -p /opt/kibana
tar xzvf kibana-4*.tar.gz

Editer kibana-4*/config/kibana.yml et modifier la ligne suivante :

server.host: "localhost"
cp -R kibana-4*/* /opt/kibana/

chown -R kibana:kibana /opt/kibana/

Scripts de démarrage du service kiabana :

cd /etc/init.d && curl -o kibana https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/fc5025c3fc499ad8262aff34ba7fde8c87ead7c0/kibana-4.x-init

cd /etc/default && curl -o kibana https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/fc5025c3fc499ad8262aff34ba7fde8c87ead7c0/kibana-4.x-default

chmod +x /etc/init.d/kibana

chkconfig --add kibana

service kibana start

Apache

Edition de /etc/httpd/conf.d/kibana.conf (supprimer le welcome.conf qui est présent par défaut):

<LocationMatch "^/+$">
    Options -Indexes
    ErrorDocument 403 /error/noindex.html
</LocationMatch>

ProxyPass / http://127.0.0.1:5601/
ProxyPassReverse / http://127.0.0.1:5601/

Démarrage d’Apache

service httpd start

Test :

On peux maintenant tester avec son navigater (http://@IP_DU_SERVEUR_KIBANA)

Bonus

SELinux

Si SELinux est en mode enforcing, il faut permettre à Apache d’accéder au port 5601

yum -y install policycoreutils-python

semanage  port -a -t http_port_t -p tcp 5601

iptables

Penser à ajouter une régle en fonction de votre configuration iptables.