Научите, как построить систему сбора журналов ELK

Logstash
Научите, как построить систему сбора журналов ELK

Если вы считаете, что статья полезна или хорошо написана, поставьте лайк слева!

Эта статья размещена в личном блоге:geekvic.top, добро пожаловать дразнить!

Введение в ELK

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

В традиционном проекте, если в производственной среде есть несколько разных кластеров серверов, если производственной среде необходимо найти ошибки проекта с помощью журналов, необходимо использовать традиционный командный запрос на каждом узле, что очень неэффективно. Поэтому нам нужен журнал централизованного управления, и появился ELK. ELK=ElasticSeach+Logstash+Kibana, принцип сбора логов следующий.

  1. Установите плагин системы сбора логов Logstash на каждом узле кластера серверов.

  2. Каждый серверный узел передает журналы в Logstash.

  3. Logstash форматирует журнал в формате json, каждый день создает разные индексы и выводит их в ElasticSearch.

  4. Браузер использует установку Kibana для запроса информации журнала.

elk-.png

Elastic Search

Введение

ElasticSearch – это служба распределенного поиска, предоставляющая набор Restful API. Нижний уровень основан на Lucene. Он использует несколько сегментов (шардов) для обеспечения безопасности данных и обеспечивает автоматическое повторное разделение. Это лучший выбор для систем полнотекстового поиска, которые могут быстро хранить, искать и анализировать большие объемы данных.

Установить

  1. Скачать последнюю версию с официального сайта, адрес:woohoo.elastic.co/capable/download…

  2. Разархивируйте: # tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz

  3. Команда: #cd elasticsearch-7.4.2, настройте файл elasticsearch.yml в конфиге, конфигурация следующая.

 cluster.name: es-application
 node.name: es-node-1
 network.host: 0.0.0.0
 http.port: 9200
 discovery.seed_hosts: ["192.168.1.169"]
 cluster.initial_master_nodes: ["es-node-1"]
 path.data: /var/data/es
 path.logs: /var/log/es

Общая проблема

can not run elasticsearch as root

Решение: В целях безопасности не разрешается использовать пользователя root для запуска, и вам необходимо создать новую учетную запись es, как показано ниже.

# adduser es
# passwd es
# chown -R  es elasticsearch-7.4.2 
# su elasticsearch
启动ES:
# ./bin/elasticsearch

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

Решение: переключитесь на пользователя root, чтобы изменить # vim /etc/security/limits.conf, добавьте в конец следующее содержимое, где es — это пользователь, запустивший ES, а не root.

es hard nofile 65536
es soft nofile 65536

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

Решение: переключитесь на пользователя root, чтобы изменить конфигурацию sysctl.conf.

#vi /etc/sysctl.conf
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p

запускать

后台启动:./elasticsearch -d
停止命令:./elasticsearch -stop

проверять

Получите доступ к ip:9200, успешно отобразите следующую информацию json

es.png

ES Head

Рекомендуется установить плагин chrome, или вы можете скачать установочный пакет для установки.

Logstash

Введение

Logstash — это инструмент с полностью открытым исходным кодом, который может собирать, фильтровать, анализировать ваши журналы, поддерживать большое количество методов сбора данных и сохранять их для последующего использования (например, для поиска).

установка и настройка

  • Разархивируйте logstash-7.4.2 и измените файл logstash.conf в logstash-7.4.2/config;
  • Файл logstash.conf настроен следующим образом:
input {
tcp {
mode => "server"
host => "192.168.1.169"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "192.168.1.169:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}
  • Выполнение заказа
# ../bin/logstash -f logstash.conf

Spring boot интегрирует Logstash

Вставьте пакет jar в файл pom.

<!--logstash-->
<dependency>
   <groupId>net.logstash.logback</groupId>
   <artifactId>logstash-logback-encoder</artifactId>
   <version>6.2</version>
</dependency>

Изменить logback-spring.xml

<!--logstash地址-->
<springProperty scope="context" name="LOGSTASH_ADDRESS" source="logstash.address"/>
<!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<destination>${LOGSTASH_ADDRESS}</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>UTC</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app": "java-study",
"level": "%-5level",
"thread": "%thread",
"logger": "%logger{50} %M %L ",
"message": "%msg"
}
</pattern>
</pattern>
</providers>
</encoder>
</appender>


<root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>

yml добавить конфигурацию

logstash:
     address: 192.168.1.169:4560

Kibana

Введение

Kibana — это браузерный интерфейсный инструмент отображения для Elasticsearch. Это также бесплатный инструмент с открытым исходным кодом. Kibana может предоставить Logstash и ElasticSearch веб-интерфейс, удобный для анализа журналов, который может помочь вам собирать, анализировать и искать важные данные. журналы.

установка и настройка

  • Разархивируйте kibana-7.4.2-linux-x86_64.tar.gz и измените файл конфигурации kibana.yml.
  • Выполнение заказа
# ./kibana --allow-root
  • Настроить формат даты

dateformat.png

  • create index pattern
  • Сохранение настраиваемых полей фильтра для последующей фильтрации

kibana.png

Стук по клавиатуре левой рукой, стрельба правой рукой, кодер, который любит баскетбол~~~

Синхронизировать личный блог:geek.top/post/5 из 1 из 8…

Отказ от ответственности. Все статьи в этом блоге распространяются по лицензии BY-NC-SA, если не указано иное. Пожалуйста, укажите источник!

Категории