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.

1 yum -y install httpd
2 
3 chkconfig --level 2345 httpd on

Java

1 yum -y install java-1.8.0-openjdk

Elasticsearch

Import de la clés GPG du repo :

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

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

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

Installation

1 yum -y install elasticsearch
2 
3 chkconfig --add elasticsearch

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

1 network.host: localhost

Démarrage du service

1 service elasticsearch start

Test :

 1 curl http://127.0.0.1:9200
 2 {
 3   "name" : "Scott Washington",
 4   "cluster_name" : "elasticsearch",
 5   "version" : {
 6     "number" : "2.0.0",
 7     "build_hash" : "de54438d6af8f9340d50c5c786151783ce7d6be5",
 8     "build_timestamp" : "2015-10-22T08:09:48Z",
 9     "build_snapshot" : false,
10     "lucene_version" : "5.2.1"
11   },
12   "tagline" : "You Know, for Search"
13 }

Logstash :

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

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

Installation du service

1 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 :

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

Création de l'utilisateur/groupe :

1 groupadd kibana
2 
3 useradd kibana -g kibana

Configuration de Kibana :

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

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

1 server.host: "localhost"

1 cp -R kibana-4/ /opt/kibana/
2 
3 chown -R kibana:kibana /opt/kibana/

Scripts de démarrage du service kiabana :

1 cd /etc/init.d && curl -o kibana https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/fc5025c3fc499ad8262aff34ba7fde8c87ead7c0/kibana-4.x-init
2 
3 cd /etc/default && curl -o kibana https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/fc5025c3fc499ad8262aff34ba7fde8c87ead7c0/kibana-4.x-default
4 
5 chmod +x /etc/init.d/kibana
6 
7 chkconfig --add kibana
8 
9 service kibana start

Apache

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

1 <LocationMatch "^/+$">
2     Options -Indexes
3     ErrorDocument 403 /error/noindex.html
4 </LocationMatch>
5 
6 ProxyPass / http://127.0.0.1:5601/
7 ProxyPassReverse / http://127.0.0.1:5601/

Démarrage d'Apache

1 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

1 yum -y install policycoreutils-python
2 
3 semanage  port -a -t http_port_t -p tcp 5601

iptables

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