Получение Apache2 комбинированных журналов в Elastic Stack и использование инструментальных панелей
Я смотрю в стек ELK, и я в основном запустил его. Моя цель - запустить панели управления Apache2 в Кибане, но я не могу. Вот как далеко я получил:
** На стороне Apache:*
Я использую формат журнала vhosts_combined. Я попытался использовать модуль apache2, но он не будет анализировать данные на стороне Logstash.
На хосте, на котором работает Apache2, я установил filebeat и настроил его следующим образом: в filebeat.yml я отключил filebeat.inputs, включил setup.kibana и указал его на свой хост Kibana, отключил output.elasticsearch, включил вывод. logstash и добавил, в конце, это:
filebeat.prospectors:
- paths:
- /var/log/apache2/access*
tags: [apache_access]
Затем я запустил настройку filebeat, но получил: Exiting: загрузка шаблона запрошена, но вывод Elasticsearch не настроен / не включен
Поэтому я запустил настройку filebeat --dashboards и получил подтверждение.
На стороне Logstash:
На хосте Logstash я помещаю это в файл beats.conf:
input {
beats {
port => 5044
}
}
filter {
if "apache_access" in [tags] {
grok {
match => { "message" => "%{HOSTNAME:vhost}\:%{NUMBER:port} %{COMBINEDAPACHELOG}"}
}
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
}
На кибане:
Теперь я иду в Кибану и на вкладке "Обнаружение" вижу, что данные есть и анализируются. Однако инструментальные панели Apache не работают, и я вижу:
Не удалось найти это поле index-pattern-field (id: apache2.access.remote_ip)
Есть ли способ, которым я могу использовать эти панели?
Это JSON, который я вижу на вкладке Discover:
{
"_index": "filebeat-6.6.1-2019.03.07",
"_type": "doc",
"_id": "Fbm8V2kBi7AHxLGEc7Po",
"_version": 1,
"_score": null,
"_source": {
"vhost": "MYSAMPLEHOST.com",
"agent": "\"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0\"",
"beat": {
"hostname": "ubuntu",
"name": "ubuntu",
"version": "6.6.1"
},
"@timestamp": "2019-03-07T10:37:30.160Z",
"referrer": "\"-\"",
"clientip": "192.168.56.1",
"request": "/lib/icons-e6866a5982aa3f74d114acb3a4ae4a72/apple-touch-icon-180x180.png",
"log": {
"file": {
"path": "/var/log/apache2/access.log"
}
},
"bytes": "15302",
"port": "80",
"host": {
"os": {
"platform": "ubuntu",
"family": "debian",
"name": "Ubuntu",
"codename": "bionic",
"version": "18.04.2 LTS (Bionic Beaver)"
},
"name": "ubuntu",
"architecture": "x86_64",
"id": "09be1c222bc742e9bba35b5c29c09036",
"containerized": false
},
"timestamp": "07/Mar/2019:11:37:24 +0100",
"verb": "GET",
"httpversion": "1.1",
"response": "200",
"source": "/var/log/apache2/access.log",
"offset": 569899,
"tags": [
"apache_access",
"beats_input_codec_plain_applied"
],
"ident": "-",
"auth": "-",
"message": "MYSAMPLEHOST.com:80 192.168.56.1 - - [07/Mar/2019:11:37:24 +0100] \"GET /lib/icons-e6866a5982aa3f74d114acb3a4ae4a72/apple-touch-icon-180x180.png HTTP/1.1\" 200 15302 \"-\" \"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:65.0) Gecko/20100101 Firefox/65.0\"",
"@version": "1"
},
"fields": {
"@timestamp": [
"2019-03-07T10:37:30.160Z"
]
},
"sort": [
1551955050160
]
}