Если вы считаете, что статья полезна или хорошо написана, поставьте лайк слева!
Эта статья размещена в личном блоге:geekvic.top, добро пожаловать дразнить!
Введение в ELK
Вы все еще беспокоитесь о том, что не можете найти сервер узла в онлайн-журнале устранения неполадок? Сегодня я научу вас, как построить систему сбора журналов, чтобы заменить традиционный способ ручного входа на сервер для просмотра журналов фоновых служб.
В традиционном проекте, если в производственной среде есть несколько разных кластеров серверов, если производственной среде необходимо найти ошибки проекта с помощью журналов, необходимо использовать традиционный командный запрос на каждом узле, что очень неэффективно. Поэтому нам нужен журнал централизованного управления, и появился ELK. ELK=ElasticSeach+Logstash+Kibana, принцип сбора логов следующий.
-
Установите плагин системы сбора логов Logstash на каждом узле кластера серверов.
-
Каждый серверный узел передает журналы в Logstash.
-
Logstash форматирует журнал в формате json, каждый день создает разные индексы и выводит их в ElasticSearch.
-
Браузер использует установку Kibana для запроса информации журнала.
Elastic Search
Введение
ElasticSearch – это служба распределенного поиска, предоставляющая набор Restful API. Нижний уровень основан на Lucene. Он использует несколько сегментов (шардов) для обеспечения безопасности данных и обеспечивает автоматическое повторное разделение. Это лучший выбор для систем полнотекстового поиска, которые могут быстро хранить, искать и анализировать большие объемы данных.
Установить
-
Скачать последнюю версию с официального сайта, адрес:woohoo.elastic.co/capable/download…
-
Разархивируйте: # tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz
-
Команда: #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 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
- Настроить формат даты
- create index pattern
- Сохранение настраиваемых полей фильтра для последующей фильтрации
Стук по клавиатуре левой рукой, стрельба правой рукой, кодер, который любит баскетбол~~~
Синхронизировать личный блог:geek.top/post/5 из 1 из 8…
Отказ от ответственности. Все статьи в этом блоге распространяются по лицензии BY-NC-SA, если не указано иное. Пожалуйста, укажите источник!