Bonjour à tous,
Je débute avec la stack elastic, je ne suis d'ailleurs qu'en stagiaire, donc étudiant.
Je dois être à l'aise avec ces outils en vu ensuite de faire des mini projets pour que je puisse ensuite les utiliser sur des cas clients.
J'ai décidé de commencer par afficher mes log /var/log/syslog
et /var/log/auth.log
et ensuite prendre en main kibana pour affiner mes recherches.
J'ai egalement voulu "dockeriser" mes services. Le tout est sur une seule et même machine
J'ai donc pris cette base : https://github.com/deviantony/docker-elk
Sur laquelle j'ai rajouter le container prima/filebeat.
https://hub.docker.com/r/prima/filebeat/
Avec Sense j'observe que je n'ai aucun log d'indexé dans ES.
Mes fichiers de conf
docker-compose.yml:
elasticsearch:
image: elasticsearch:latest
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200:9200"
- "9300:9300"
logstash:
image: logstash:latest
command: logstash -f /etc/logstash/conf.d/logstash.conf
volumes:
- ./logstash/config:/etc/logstash/conf.d
ports:
- "5000:5000"
links:
- elasticsearch
kibana:
build: kibana/
volumes:
- ./kibana/config/kibana.yml:/opt/kibana/config/kibana.yml
ports:
- "5601:5601"
links:
- elasticsearch
logstash.conf:
input {
beats {
port => 5000
type => "logs"
}
}
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}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
output {
elasticsearch {
hosts => "elasticsearch:9200"
}
}
filebeate.yml
filebeat:
# List of prospectors to fetch data.
prospectors:
# Each - is a prospector. Below are the prospector specific configurations
-
# Paths that should be crawled and fetched. Glob based paths.
# For each file found under this path, a harvester is started.
paths:
- "/var/log/*.log"
- "/var/log/syslog"
# - c:\programdata\elasticsearch\logs\*
# Type of the files. Based on this the way the file is read is decided.
# The different types cannot be mixed in one prospector
#
# Possible options are:
# * log: Reads every line of the log file (default)
# * stdin: Reads the standard in
input_type: log
document_type: syslog
output:
logstash:
hosts:["localhost:5000"]
Avez-vous une idée d'ou ça coince car je ne sais pas comment débuguer ça ?
Les fichiers me semblent correctement configurés.
Merci.