Ни один из существующих ответов не помог, поэтому здесь новый вопрос.
Вариант использования: Перенаправление статического файла системного журнала (или) мониторинга.
Я успешно установил logstash (1.4.2), elasticsearch (1.1.1) и kibana (3.0.1), но изо всех сил пытаюсь избавиться от ошибки
No results There were no results because no indices were found that match your selected time span
/opt/logstash/bin/logstash -f </etc/logstash/conf.d/10-syslog.conf>
Примеры используемых файлов журналов приведены ниже. Пожалуйста, дайте мне знать, если с моей стороны потребуется что-нибудь еще.
syslog (прослушивание порта 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 }
}
Перечислите все индексы с помощью curl localhost: 9200 / _cat / index? V, чтобы убедиться, что ваши журналы попадают в elasticsearch. Затем убедитесь, что шаблон индекса, настроенный в kibana (я думаю, значок шестеренки в правом верхнем углу) соответствует шаблону именования индекса, отображаемому в _cat / indicies (который должен быть установлен в конфигурации logstash, но я больше не использую logstash, поэтому я Я не уверен. Я очень предпочитаю модуль rsyslog om-elasticsearch, а не logstash. Он намного более энергоэффективен.)
Также убедитесь, что путь elasticsearch, настроенный в файле конфигурации kibana, на 100% буквально доступен для копирования и вставки из вашего локального веб-браузера. Если вы сказали example.com, вам лучше указать хост example.com на правильный сервер. localhost вообще не будет работать, если на вашей рабочей станции не установлен elasticsearch и не подключен основной сервер ...
Документация для elasticsearch 1.1 больше недоступна (1.3 или 0.9), а поведение сети по умолчанию ES изменилось (с первоначального прослушивания IP-адресов без обратной петли на прослушивание петли по умолчанию).
За https://www.elastic.co/guide/en/elasticsearch/reference/1.3/modules-network.html:
Параметр network.publish_host позволяет управлять хостом, на котором узел будет публиковать себя в кластере, чтобы другие узлы могли подключаться к нему. Конечно, это не может быть anyLocalAddress, и по умолчанию это будет первый адрес без обратной связи (если возможно) или локальный адрес.
Хотя вопрос сейчас носит в основном академический характер, наиболее вероятная проблема, с которой столкнулся задающий вопрос, связана с попыткой отправить данные в localhost
, вместо того example.com
(который, согласно информации о вопросе, как известно, работает).
Я подозреваю, что с более поздней версией ES этой проблемы не возникло бы (поскольку ES теперь по умолчанию слушает только localhost).
Как упоминалось в другом потоке:
"У меня было что-то похожее, похоже, вы не настроили ACL, чтобы позволить пользователю logstash просматривать этот файл журнала.
Используйте, например, setfacl -m u: logstash-: r-x / var / log, а затем проверьте, отредактировав / etc / passwd и временно предоставив пользователю logstash оболочку. Затем, su - logstash и попробуйте cd или cat этот файл. Если это работает, то данные должны появиться в вашей настройке Kibana ".
Я использую redis перед elasticsearch, поэтому я могу проверить, работает ли logstash, просто запустив LLEN и LPOP.