Elastic Stack - De l'installation à la découverte de l'alpha 2
Alasta 5 Mai 2016 bigdata shell cli BigData elasticsearch
Description : Nous allons voir comment installer et découvrir la nouvelle brique big-data d'elastic Elastic Stack
Description :
Nous allons voir comment installer Elastic Search.
Installation :
Nous partirons d'une VM Centos 6.7 sans iptables, SELinux pour la démo.
Java
1 yum -y install java-1.8.0-openjdk
Elasticsearch
Récupération du package :
1 cd /usr/src/
2 wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/5.0.0-alpha2/elasticsearch-5.0.0-alpha2.rpm
Installation
1 yum localinstall elasticsearch-5.0.0-alpha2.rpm
Logstash
Récupération de package :
1 wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-5.0.0-alpha2.noarch.rpm
Installation
1 yum localinstall logstash-5.0.0-alpha2.noarch.rpm
Kibana
Récupération de package :
1 wget https://download.elastic.co/kibana/kibana/kibana-5.0.0_alpha2-1.x86_64.rpm
Installation
1 yum localinstall kibana-5.0.0_alpha2-1.x86_64.rpm
Configuration :
Elasticsearch
Modifier les lignes suivantes dans /etc/elasticsearch/elasticsearch.yml :
1 #limiter l'accès local
2 network.host: localhost
3
4 #Nom du node
5 node.name: ${HOSTNAME}
Gestion du service :
1 chkconfig --add elasticsearch
2 service elasticsearch start
Vérification
1 curl http://127.0.0.1:9200
2 {
3 "name" : "es5",
4 "cluster_name" : "elasticsearch",
5 "version" : {
6 "number" : "5.0.0-alpha2",
7 "build_hash" : "e3126df",
8 "build_date" : "2016-04-26T12:08:58.960Z",
9 "build_snapshot" : false,
10 "lucene_version" : "6.0.0"
11 },
12 "tagline" : "You Know, for Search"
13 }
Logstash
Nous allons créer une configuration ultra basique pour commencer, on l'agrémentera au besoin par la suite.
Edition du fichier de configuration /etc/logstash/conf.d/es5.conf :
1 input {
2 #Ouverture en entrée d'un port d'écoute utilisant le protocol syslog
3 tcp {
4 port => 5544
5 type => syslog
6 }
7 udp {
8 port => 5544
9 type => syslog
10 }
11 }
12 filter {
13 # Traitement type syslog, le type étant marqué sur les données entrant par nos ports de type syslog
14 if [type] == "syslog" {
15 grok {
16 # Si on ne veut pas garder le message non traité
17 overwrite => "message"
18 match => {
19 # rsyslong envoi des messages de type : <Numero>Ligne Syslog avec le message
20 #"message" => "^(?:<%{NONNEGINT:syslog_pri}>)?%{SYSLOGBASE2} %{GREEDYDATA:message}"
21 "message" => "%{SYSLOG5424PRI}%{SYSLOGBASE2} %{DATA:message}"
22 }
23 # on ajoute des tags perso, pratique pour filtrer dans l'interface kibana
24 add_tag => [ "syslog", "grokked" ]
25 }
26 }
27 }
28 # on stock dans elasticsearch
29 output {
30 elasticsearch {
31 hosts => "localhost"
32 template_overwrite => true
33 }
34 }
Gestion du service
1 chkconfig --add logstash
2 service logstash start
Vérification
1 service logstash status
2 logstash is running
3
4 #Logstash sera fonctionnel quand les ports d'écoute seront ouvert :
5 lsof -i :5544
6 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
7 java 4041 logstash 15u IPv6 53611 0t0 TCP :5544 (LISTEN)
8 java 4041 logstash 40u IPv6 53615 0t0 UDP :5544
Rsyslog
Ajouter à la fin du fichier de configuration /etc/rsyslog.conf
1 . @@127.0.0.1:5544
Pour générer des logs on forward tous les logs Logstash.
Gestion du service
1 service rsyslog restart
Génerer quelques logs
1 logger ${USER} test $(date)
2 logger ${USER} test $(date)
3 logger ${USER} test $(date)
Kibana
Gestion du service
1 service kibana start
2 kibana started
3
4 chkconfig --add kibana
Vérification
1 lsof -i :5601
2 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
3 node 4173 kibana 10u IPv4 54297 0t0 TCP *:esmagent (LISTEN)
On peut maintenant utiliser un navigateur à l'adresse http://@IP_ES:5601.
Première connexion, configuration du pattern d'index :
Le menu Discover :
Visualisation
Dashboard
Nouveau dans kibana : la console
Settings
Création d'un line chart