Кибана: нет ошибки индексов
Ни один из существующих ответов не помог, так что тут новый вопрос.
Вариант использования: перенаправление статического файла системного журнала (или) мониторинга.
Я успешно установил 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 приведены ниже. Пожалуйста, дайте мне знать, если что-то еще потребуется от моего конца.
системный журнал (прослушивание порта 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
Статический файл (файл с типом данных системного журнала)
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 по умолчанию).