День/вечер/ночь/утро, добрый!
Буду признателен, если сможете направить на путь истинный.
Настроил ELK+Kibana+Logstash
При этом ELK в кластере, отдельно стоит Kibana c ролью ELK Coordinating only, так же на этом же сервере стоит Logstah
Настроил базовый функционал по защите (логин / пароль), плюс настрорил авторизацию по сертам который описан в доке.
Настроил API key, для сбора Logstah.
При сборе логов с самого logstash проблем нет, они собираются, пытаюсь запихнуть файлы input output И filter, ловлю проблему, что ни чего не падает в индекс.
Лог logstash-plain
[2021-06-07T2121,537][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2121,544][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {removed=>[], :added=>[ ссылка удалена , ссылка удалена , ссылка удалена ]}} [2021-06-07T2121,579][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2121,585][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7} [2021-06-07T2121,585][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7} [2021-06-07T2121,663][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2121,745][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2121,796][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]} [2021-06-07T2121,805][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2121,868][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {removed=>[], :added=>[ ссылка удалена , ссылка удалена , ссылка удалена ]}} [2021-06-07T2121,908][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2121,914][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7} [2021-06-07T2121,915][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7} [2021-06-07T2122,009][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,084][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,140][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]} [2021-06-07T2122,151][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2122,155][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {removed=>[], :added=>[ ссылка удалена , ссылка удалена , ссылка удалена ]}} [2021-06-07T2122,243][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,259][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7} [2021-06-07T2122,259][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7} [2021-06-07T2122,336][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,411][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,464][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]} [2021-06-07T2122,475][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2122,483][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {removed=>[], :added=>[ ссылка удалена , ссылка удалена , ссылка удалена ]}} [2021-06-07T2122,517][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,523][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7} [2021-06-07T2122,524][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7} [2021-06-07T2122,608][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,688][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,737][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]} [2021-06-07T2122,756][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2122,767][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {removed=>[], :added=>[ ссылка удалена , ссылка удалена , ссылка удалена ]}} [2021-06-07T2122,913][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2122,919][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7} [2021-06-07T2122,920][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event field won't be used to determine the document _type {:es_version=>7} [2021-06-07T2123,053][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2123,172][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "} [2021-06-07T2123,227][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, disabled} [2021-06-07T2124,084][INFO ][logstash.javapipeline ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers"=>8, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>50, "pipeline.max_inflight"=>1000, "pipeline.sources"=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "], 0x3c9ac27b run>"} [2021-06-07T2127,682][INFO ][logstash.javapipeline ][main] Pipeline Java execution initialization time {"seconds"=>3.59} [2021-06-07T2127,810][INFO ][logstash.inputs.beats ][main] Starting input listener {:address=>"0.0.0.0:5044"} [2021-06-07T2127,842][INFO ][logstash.javapipeline ][main] Pipeline started {"pipeline.id"=>"main"} [2021-06-07T2127,921][INFO ][logstash.inputs.syslog ][main][2c584cbbadc06cca794731231fa558c2fee2546713ab8f162d7962fa3eb1a938] Starting syslog tcp listener {:address=>"0.0.0.0:5045"} [2021-06-07T2127,954][INFO ][logstash.inputs.syslog ][main][2c584cbbadc06cca794731231fa558c2fee2546713ab8f162d7962fa3eb1a938] Starting syslog udp listener {:address=>"0.0.0.0:5045"} [2021-06-07T2128,049][INFO ][org.logstash.beats.Server][main][b045a75a45b3461b60d26b83a47471747f20d6c245290a8708d6386bd67397cb] Starting server on port: 5044 [2021-06-07T2128,062][INFO ][logstash.agent ] Pipelines running {:count=>1, main], :non_running_pipelines=>[]}
Вот кусок output.conf
else if [type] == "zabbix_secure" { elasticsearch { hosts => [" ссылка удалена "," ссылка удалена "," ссылка удалена "] index => "zabbix-secur-%{+YYYY.MM.dd}" ssl => true api_key => "${API_KEY}" cacert => ' ссылка удалена ' } } else if [type] == "nginx_access" { elasticsearch { hosts => [" ссылка удалена "," ссылка удалена "," ссылка удалена "] index => "nginx-%{+YYYY.MM.dd}" ssl => true api_key => "${API_KEY}" cacert => ' ссылка удалена ' } } else if [type] == "nginx_error" { elasticsearch { hosts => [" ссылка удалена "," ссылка удалена "," ссылка удалена "] index => "nginx-%{+YYYY.MM.dd}" ssl => true api_key => "${API_KEY}" cacert => ' ссылка удалена ' } } else if "winsrv" in [tags] { elasticsearch { hosts => [" ссылка удалена "," ссылка удалена "," ссылка удалена "] index => "winsrv-%{+YYYY.MM.dd}" ssl => true api_key => "${API_KEY}" cacert => ' ссылка удалена ' } } else if "win1CSRV" in [tags] { elasticsearch { hosts => [" ссылка удалена "," ссылка удалена "," ссылка удалена "] index => "win1CSRV-%{+YYYY.MM.dd}" ssl => true api_key => "${API_KEY}" cacert => ' ссылка удалена '
И соответсвенно filter.conf
else if [type] == "zabbix_secure" { grok { match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user} \[%{HTTPDATE:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" } } } else if [type] == "zabbix_agent" { grok { match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user} \[%{HTTPDATE:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" } } } else if [type] == "zabbix_server" { grok { match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user} \[%{HTTPDATE:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" } } } else if [type] == "winsrv" { grok { match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user} \[%{HTTPDATE:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" } } } date { match => [ "timestamp" , "dd/MMM/YYYYss Z" ] } else if [type] == "win1CSRV" { grok { match => { "message" => "%{IPORHOST:remote_ip} - %{DATA:user} \[%{HTTPDATA:access_time}\] \"%{WORD:http_method} %{DATA:url} HTTP/%{NUMBER:http_version}\" %{NUMBER:response_code} %{NUMBER:body_sent_bytes} \"%{DATA:referrer}\" \"%{DATA:agent}\"" } } } date { match => [ "timestamp" , "dd/MMM/YYYYss Z" ] } }
Данных очень много, которые надо собирать и раскладывать по полочкам, так как для отдельных людей есть отдельные доступы.
Вероятнее всего, что я само лично где-то накосячил, но к сожалению, пока не вижу где.
На вопрос, почему Апи ключами прописано? ответ простой, с ними проше, чем с логином и пролем.