Avís
Aquest article és antic i és possible que part de la informació estigui desactualitzada o ja no sigui vàlida actualment.
Si tens qualsevol dubte o necessites confirmar algun detall, et recomanem contactar amb el nostre equip de suport per rebre informació actualitzada i assistència personalitzada.
En aquesta entrada us explicarem com instal·lar Elasticsearch, Kibana i Logstash. Amb aquestes 3 eines podem tenir els nostres registres centralitzats, fer cerques avançades o analitzar dades.
Instal·lar Java JDK
Per instal·lar JDK afegirem el repositori ppa, actualitzarem els repositoris i instal·larem java; per fer-ho executarem:
# add-apt-repository ppa:webupd8team/java
# apt-get update
# apt-get install oracle-java8-installer
# java -versionL'última ordre ens serveix per veure si s'ha instal·lat correctament; ens ha de mostrar alguna cosa semblant a:
java version “1.8.0_144”
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)Instal·lar Elasticsearch
Elasticsearch és un motor de cerca i anàlisi distribuït; per instal·lar-lo afegirem el repositori d'Elastic i procedirem amb la instal·lació:
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
# apt-get update
# apt-get install elasticsearchAra canviarem la configuració d'Elasticsearch perquè funcioni amb la IP privada del nostre servidor:
# vi /etc/elasticsearch/elasticsearch.ymlAfegirem o modificarem:
network.host: IP-PrivadaAra engegarem Elasticsearch i el configurarem perquè s'engegui automàticament en reiniciar el servidor.
# systemctl start elasticsearch
# systemctl enable elasticsearchInstal·lar Kibana
Kibana et permet explorar, visualitzar o descobrir dades. A més, podem obtenir gràfics o col·locar dades geogràfiques en qualsevol mapa; per instal·lar Kibana:
# apt-get install kibanaEditarem el fitxer vi /etc/kibana/kibana.yml i afegirem o modificarem:
server.host: "IP-Privada"
elasticsearch.url: "http://IP-Privada:9200"Ara engegarem Kibana i el configurarem perquè s'engegui automàticament en reiniciar el servidor.
# systemctl start kibana
# systemctl enable kibanaInstal·lar Nginx
Kibana funciona a través del port 5601; farem servir Nginx per redirigir tot el trànsit del port 80 al port 5601 mitjançant l'usuari adminkibana i la contrasenya que triem.
# apt-get install nginx apache2-utils
# htpasswd -c /etc/nginx/htpasswd.kibana adminkibana
# echo > /etc/nginx/sites-available/defaultEditarem el fitxer /etc/nginx/sites-available/default i modificarem server_name i proxy_pass:
server {
listen 80;
server_name IP-Publica;
auth_basic "Acceso a Kibana";
auth_basic_user_file /etc/nginx/htpasswd.kibana;
location / {
proxy_pass http://IP-Privada:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Ara engegarem Nginx i el configurarem perquè s'engegui automàticament en reiniciar el servidor:
# systemctl start nginx
# systemctl enable nginxInstal·lar Logstash
Logstash ens permet centralitzar, transformar i emmagatzemar les nostres dades. A l'article següent us mostrem més exemples de filtres. Per instal·lar Logstash executarem:
# apt-get install logstashAra crearem els filtres següents, contingut per a /etc/logstash/conf.d/02-beats-input.conf:
input {
beats {
port => 5044
ssl => false
}
}Contingut per a /etc/logstash/conf.d/10-syslog-filter.conf:
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
add_field => [ "program", "%{syslog_program}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}Ara modificarem hosts a /etc/logstash/conf.d/30-elasticsearch-output.conf :
output {
elasticsearch {
hosts => "IP-Privada:9200"
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}Ara engegarem Logstash i el configurarem perquè s'engegui automàticament en reiniciar el servidor.
# systemctl start logstash
# systemctl enable logstashCarregar Beats Dashboards
# wget https://github.com/elastic/beats-dashboards/archive/master.zip
# unzip master.zip
# cd beats-dashboards-masterEditarem load.sh i modificarem la línia que contingui ELASTICSEARCH:
ELASTICSEARCH=http://IP-Privada:9200Entrarem a Kibana http://IP-Pública amb l'usuari i la contrasenya que hem creat a “Instal·lació de Nginx”; dins de Kibana anirem a Management > Index Patterns, farem clic a filebeat-* i després a l'“estrella”. Així establim aquest filtre per defecte.
Ja tenim el nostre ELK en funcionament:
Potser t'interessen aquests altres articles: Filtres per a Logstash o Com enviar dades a ELK mitjançant Filebeats.