Как я могу отслеживать журналы эластичного поиска, используя Graylog?

Мне нужно отслеживать логи эластичного поиска с помощью Graylog. Я настроил Graylog, но я не совсем понимаю, какой тип ввода следует отслеживать из файлов журнала Elasserach.

1 ответ

Решение

Ознакомьтесь с этими инструкциями: https://gist.github.com/joschi/e5d50048ddbcef038df9c4527b653ea9

  • Скачать и распаковать Elasticsearch
  • Загрузите logstash-gelf и json-simple в ./lib каталог Elasticsearch:

    cd /path/to/elasticsearch/
    pushd ./lib
    wget http://central.maven.org/maven2/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar \
      http://central.maven.org/maven2/biz/paluch/logging/logstash-gelf/1.10.0/logstash-gelf-1.10.0.jar
    popd
    
  • Добавить logstash-gelf appender в config/logging.yml:

    # you can override this using by setting a system property, for example -Des.logger.level=DEBUG
    es.logger.level: INFO
    rootLogger: ${es.logger.level}, console, file, gelf
    logger:
      # [...]
    appender:
      # [...]
      gelf:
        type: biz.paluch.logging.gelf.log4j.GelfLogAppender
        Host: "udp:127.0.0.1"
        Port: 12201
        Facility: elasticsearch
        ExtractStackTrace: true
        FilterStackTrace: true
        IncludeFullMdc: true
    
  • Запустите Elasticsearch

замечания

Если Graylog не запущен или настроенный хост GELF недоступен, вы увидите следующие сообщения об ошибках при запуске. Их можно игнорировать и они специфичны для приложения GELF (другие могут выдавать другие исключения или вообще не выдавать их):

[2016-06-22 16:31:46,451][INFO ][node                     ] [Jonothon Starsmore] version[2.3.2], pid[30390], build[b9e4a6a/2016-04-21T16:03:47Z]
[2016-06-22 16:31:46,462][INFO ][node                     ] [Jonothon Starsmore] initializing ...
log4j:ERROR null
java.io.IOException: Cannot send data to /127.0.0.1:12201
    at biz.paluch.logging.gelf.intern.sender.GelfUDPSender.sendDatagrams(GelfUDPSender.java:59)
    at biz.paluch.logging.gelf.intern.sender.GelfUDPSender.sendMessage(GelfUDPSender.java:49)
    at biz.paluch.logging.gelf.log4j.GelfLogAppender.append(GelfLogAppender.java:95)
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251)
    at org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66)
    at org.apache.log4j.Category.callAppenders(Category.java:206)
    at org.apache.log4j.Category.forcedLog(Category.java:391)
    at org.apache.log4j.Category.log(Category.java:856)
    at org.elasticsearch.common.logging.log4j.Log4jESLogger.internalInfo(Log4jESLogger.java:120)
    at org.elasticsearch.common.logging.support.AbstractESLogger.info(AbstractESLogger.java:81)
    at org.elasticsearch.node.Node.<init>(Node.java:151)
    at org.elasticsearch.node.Node.<init>(Node.java:140)
    at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Caused by: java.net.PortUnreachableException
    at sun.nio.ch.DatagramDispatcher.write0(Native Method)
    at sun.nio.ch.DatagramDispatcher.write(DatagramDispatcher.java:51)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93)
    at sun.nio.ch.IOUtil.write(IOUtil.java:65)
    at sun.nio.ch.DatagramChannelImpl.write(DatagramChannelImpl.java:605)
    at biz.paluch.logging.gelf.intern.sender.GelfUDPSender.sendDatagrams(GelfUDPSender.java:56)
    ... 15 more
Другие вопросы по тегам