Home »

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

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

1 Записи
1 Пользователи
0 Likes
1,433 Просмотры
(@kolbaser2010)
Записи: 4
New Member
Создатель темы
 

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

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

Настроил ELK+Kibana+Logstash

При этом ELK в кластере, отдельно стоит Kibana c ролью ELK Coordinating only, так же на этом же сервере стоит Logstah

Настроил базовый функционал по защите (логин / пароль), плюс настрорил авторизацию по сертам  который описан в доке.

Настроил API key, для сбора Logstah.

При сборе логов с самого logstash проблем нет, они собираются, пытаюсь запихнуть файлы input output И filter, ловлю проблему, что ни чего не падает в индекс. 

Лог logstash-plain

[2021-06-07T21:34:21,537][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:21,544][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[ ссылка удалена ,  ссылка удалена ,  ссылка удалена ]}}
[2021-06-07T21:34:21,579][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:21,585][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7}
[2021-06-07T21:34:21,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-07T21:34:21,663][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:21,745][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:21,796][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]}
[2021-06-07T21:34:21,805][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:21,868][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[ ссылка удалена ,  ссылка удалена ,  ссылка удалена ]}}
[2021-06-07T21:34:21,908][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:21,914][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7}
[2021-06-07T21:34:21,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-07T21:34:22,009][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,084][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,140][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]}
[2021-06-07T21:34:22,151][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:22,155][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[ ссылка удалена ,  ссылка удалена ,  ссылка удалена ]}}
[2021-06-07T21:34:22,243][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,259][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7}
[2021-06-07T21:34:22,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-07T21:34:22,336][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,411][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,464][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]}
[2021-06-07T21:34:22,475][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:22,483][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[ ссылка удалена ,  ссылка удалена ,  ссылка удалена ]}}
[2021-06-07T21:34:22,517][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,523][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7}
[2021-06-07T21:34:22,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-07T21:34:22,608][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,688][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,737][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs::ElasticSearch", :hosts=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "]}
[2021-06-07T21:34:22,756][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:22,767][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[ ссылка удалена ,  ссылка удалена ,  ссылка удалена ]}}
[2021-06-07T21:34:22,913][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:22,919][INFO ][logstash.outputs.elasticsearch][main] Elasticsearch version determined (7.13.1) {:es_version=>7}
[2021-06-07T21:34:22,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-07T21:34:23,053][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:23,172][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>" ссылка удалена "}
[2021-06-07T21:34:23,227][INFO ][logstash.outputs.elasticsearch][main] Using a default mapping template {:es_version=>7, :ecs_compatibility=>:disabled}
[2021-06-07T21:34:24,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"=>[" ссылка удалена ", " ссылка удалена ", " ссылка удалена "], :thread=>"#<Thread:0x3c9ac27b run>"}
[2021-06-07T21:34:27,682][INFO ][logstash.javapipeline    ][main] Pipeline Java execution initialization time {"seconds"=>3.59}
[2021-06-07T21:34:27,810][INFO ][logstash.inputs.beats    ][main] Starting input listener {:address=>"0.0.0.0:5044"}
[2021-06-07T21:34:27,842][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}
[2021-06-07T21:34:27,921][INFO ][logstash.inputs.syslog   ][main][2c584cbbadc06cca794731231fa558c2fee2546713ab8f162d7962fa3eb1a938] Starting syslog tcp listener {:address=>"0.0.0.0:5045"}
[2021-06-07T21:34:27,954][INFO ][logstash.inputs.syslog   ][main][2c584cbbadc06cca794731231fa558c2fee2546713ab8f162d7962fa3eb1a938] Starting syslog udp listener {:address=>"0.0.0.0:5045"}
[2021-06-07T21:34:28,049][INFO ][org.logstash.beats.Server][main][b045a75a45b3461b60d26b83a47471747f20d6c245290a8708d6386bd67397cb] Starting server on port: 5044
[2021-06-07T21:34:28,062][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[: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/YYYY:HH:mm:ss 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/YYYY:HH:mm:ss Z" ]
  }
 }

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

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

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

 

 
Размещено : 07.06.2021 21:52
Метки темы
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar