Logstash поддерживает огромный спектр журналов из разных источников. Он работает с известными источниками, как описано ниже.
Собирать логи из метрик
Системные события и другие временные действия записываются в метриках. Logstash может получить доступ к журналу из системных показателей и обработать их с помощью фильтров. Это помогает показать пользователю прямую трансляцию событий в индивидуальном порядке. Метрики сбрасываются в соответствии с настройкой фильтра метрик flush_interval и по умолчанию; он установлен на 5 секунд.
Мы отслеживаем тестовые показатели, сгенерированные Logstash, собирая и анализируя события, проходящие через Logstash, и показывая прямой поток в командной строке.
logstash.conf
Эта конфигурация содержит плагин генератора, который предлагается Logstash для тестовых метрик и устанавливает для параметра типа «сгенерированный» для анализа. На этапе фильтрации мы обрабатываем только строки сгенерированного типа с помощью оператора if. Затем плагин метрики считает поле, указанное в настройках счетчика. Плагин metrics сбрасывает счет после каждых 5 секунд, указанных в flush_interval .
Наконец, выведите события фильтра в стандартный вывод, такой как командная строка, используя плагин кодека для форматирования. Плагин Codec использует значение [ events ] [ rate_1m ] для вывода событий в секунду в 1-минутном скользящем окне.
input { generator { type => "generated" } } filter { if [type] == "generated" { metrics { meter => "events" add_tag => "metric" } } } output { # only emit events with the 'metric' tag if "metric" in [tags] { stdout { codec => line { format => "rate: %{[events][rate_1m]}" } } }
Запустите Logstash
Мы можем запустить Logstash с помощью следующей команды.
>logsaths –f logstash.conf
стандартный вывод (командная строка)
rate: 1308.4 rate: 1308.4 rate: 1368.654529135342 rate: 1416.4796003951449 rate: 1464.974293984808 rate: 1523.3119444107458 rate: 1564.1602979542715 rate: 1610.6496496890895 rate: 1645.2184750334154 rate: 1688.7768007612485 rate: 1714.652283095914 rate: 1752.5150680019278 rate: 1785.9432934744932 rate: 1806.912181962126 rate: 1836.0070454626025 rate: 1849.5669494173826 rate: 1871.3814756851832 rate: 1883.3443123790712 rate: 1906.4879113216743 rate: 1925.9420717997118 rate: 1934.166137658981 rate: 1954.3176526556897 rate: 1957.0107444542625
Сбор журналов с веб-сервера
Веб-серверы генерируют большое количество журналов, касающихся доступа пользователей и ошибок. Logstash помогает извлекать журналы с разных серверов с помощью входных плагинов и хранить их в централизованном месте.
Мы извлекаем данные из журналов stderr локального сервера Apache Tomcat и сохраняем их в файле output.log.
logstash.conf
Этот файл конфигурации Logstash указывает Logstash на чтение журналов ошибок apache и добавление тега с именем «apache-error». Мы можем просто отправить его в output.log с помощью плагина вывода файла.
input { file { path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0 /logs/*stderr*" type => "apache-error" } } output { file { path => "C:/tpwork/logstash/bin/log/output.log" } }
Запустите Logstash
Мы можем запустить Logstash с помощью следующей команды.
>Logstash –f Logstash.conf
Образец входного журнала
Это пример журнала stderr , который генерируется, когда события сервера происходят в Apache Tomcat.
C: \ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ logs \ tomcat7-stderr.2016-12-25.log
Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["http-bio-9999"] Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start INFO: Starting ProtocolHandler ["ajp-bio-8009"] Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 823 ms
output.log
{ "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start\r", "type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"INFO: Starting ProtocolHandler [ \"ajp-bio-8009\"]\r","type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start\r", "type":"apache-error","tags":[] } { "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/ tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z", "@version":"1","host":"Dell-PC", "message":"INFO: Server startup in 823 ms\r","type":"apache-error","tags":[] }
Сбор журналов из источников данных
Для начала давайте разберемся, как настроить MySQL для ведения журнала. Добавьте следующие строки в файл my.ini сервера базы данных MySQL под [mysqld].
В окнах он присутствует внутри установочного каталога MySQL, который находится в —
C:\wamp\bin\mysql\mysql5.7.11
В UNIX вы можете найти его в — /etc/mysql/my.cnf
general_log_file = "C:/wamp/logs/queries.log" general_log = 1
logstash.conf
В этом конфигурационном файле плагин файла используется для чтения журнала MySQL и записи его в файл ouput.log.
input { file { path => "C:/wamp/logs/queries.log" } } output { file { path => "C:/tpwork/logstash/bin/log/output.log" } }
queries.log
Это журнал, сгенерированный запросами, выполненными в базе данных MySQL.