Home »

Кластер ELK и настр...
 

Кластер ELK и настройка Logstash

 
kolbaser2010
(@kolbaser2010)
Эникей

День/вечер/ночь/утро, добрый!

Буду признателен, если сможете направить на путь истинный.

Настроил 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" ]
  }
 }

Данных очень много, которые надо собирать и раскладывать по полочкам, так как для отдельных людей есть отдельные доступы.

Вероятнее всего, что я само лично где-то накосячил, но к сожалению, пока не вижу где.

На вопрос, почему Апи ключами прописано? ответ простой, с ними проше, чем с логином и пролем.

 

ОтветитьЦитата
Topic starter Размещено : 07.06.2021 21:52
Метки темы