Кибана: нет ошибки индексов

Ни один из существующих ответов не помог, так что тут новый вопрос.

Вариант использования: перенаправление статического файла системного журнала (или) мониторинга.

Я успешно установил logstash (1.4.2),asticsearch(1.1.1) и kibana(3.0.1), но изо всех сил пытаюсь избавиться от ошибки

No results There were no results because no indices were found that match your selected time span
  • Я могу посетить http://example.com:9200/ -> Успешное сообщение 200
  • Посещение http://example.com:9200/_aliases?pretty -> {} -> пустого словаря!
  • То же самое работает с этим CLI /opt/logstash/bin/logstash -f </etc/logstash/conf.d/10-syslog.conf>

Примеры используемых файлов logstash приведены ниже. Пожалуйста, дайте мне знать, если что-то еще потребуется от моего конца.

  1. системный журнал (прослушивание порта 9000, да, я добавил " . @@ localhost: 9000" к /etc/rsyslog.d/50-default.conf и перезапустил rsyslog)

    sudo cat > /etc/logstash/conf.d/10-syslog.conf <<EOF
    input {
      tcp {
        port => 9000
        type => syslog
      }
      udp {
        port => 9000
        type => syslog
      }
    }
    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 { host => localhost }
      stdout { codec => rubydebug }
    }
    EOF
    
  2. Статический файл (файл с типом данных системного журнала)

    input {
       file {
          path => "/var/log/awasthi.log"
          type => syslog
          start_position => "beginning"
          sincedb_path => "/dev/null"
       }
    }
    
    filter {
    if [type] == "syslog" {
      grok {
        match => [ "message", "%{SYSLOGTIMESTAMP} %{NOTSPACE:hostname1}/%{NOTSPACE}"]
      }
    }
    }
    
    output {
      stdout { codec => rubydebug }
    }
    

3 ответа

Как уже упоминалось в другой теме:

"У меня было что-то похожее, похоже, вы не настроили ACL, чтобы позволить пользователю logstash просматривать этот файл журнала.

Например, используйте 'setfacl -m u:logstash-:rx /var/log', а затем протестируйте, отредактировав /etc/passwd и временно предоставив пользователю logstash оболочку. Затем su - logstash, и попробуйте cd или cat этот файл. Если это работает, то данные должны появиться в вашей настройке Kibana."

Я использую Redis перед Elassearch, поэтому я могу проверить, работает ли logstash, просто запустив 'LLEN' и 'LPOP'.

Перечислите все индексы с помощью curl localhost:9200/_cat/indices? V, чтобы подтвердить, что ваши журналы попадают в asticsearch. Затем убедитесь, что шаблон индекса, настроенный в kibana (значок шестерни в верхнем правом углу, я думаю), соответствует шаблону именования индекса, отображаемому в _cat / indicies (который должен быть установлен в конфигурации logstash, но я больше не использую logstash, поэтому я Я не уверен. Я очень предпочитаю модуль rsyslog om -asticsearch модулю logstash. Он гораздо более энергоэффективен.)

Также убедитесь, что путь эластичного поиска, настроенный в конфигурационном файле kibana, буквально на 100% доступен для копирования и вставки из локального веб-браузера. Если вы сказали example.com, вам лучше иметь host.com на правильном сервере. localhost не будет работать вообще, если на вашей рабочей станции не установлен эластичный поиск и не подключен главный сервер...

Документация для asticsearch 1.1 больше не доступна (1.3 или 0.9), и поведение сети ES по умолчанию изменилось (от первоначального прослушивания на IP без петлевого подключения до прослушивания loopback по умолчанию).

По https://www.elastic.co/guide/en/elasticsearch/reference/1.3/modules-network.html:

Параметр network.publish_host позволяет управлять хостом, который узел будет публиковать в кластере, чтобы другие узлы могли подключаться к нему. Конечно, это не может быть anyLocalAddress, и по умолчанию это будет первый не-петлевой адрес (если возможно) или локальный адрес.

Хотя вопрос в настоящее время носит в основном академический характер, наиболее вероятная проблема, с которой сталкивался аскер, заключалась в попытке отправить данные localhost, вместо example.com (который согласно информации вопроса, как известно, работает).

Я подозреваю, что с более новой версией ES этой проблемы не было бы (потому что ES теперь слушает только localhost по умолчанию).

Другие вопросы по тегам