ELK (Elasticsearch, Logstash, Kibana) используется для сбора журналов и их анализа, а также для отображения их через визуальный пользовательский интерфейс. В сценарии проекта, где генерируется большое количество журналов, ELK является мощным инструментом для сбора и анализа журналов!
существуетСталкивались ли вы с этими проблемами развертывания Elasticsearch 7.10?В этой статье я уже развернул Elasticsearch, Эта навигация завершит развертывание Logstash и Kibana и напишет небольшой проект SpringBoot для демонстрации сбора журналов ELK.
Установить Логсташ
Установка трех основных компонентов лося очень проста, и она может быть сделана с несколькими строками команд:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.2-linux-x86_64.tar.gz
tar -zxvf logstash-7.10.2-linux-x86_64.tar.gz
Версия Elasticsearch, которую мы установили раньше, — 7.10.2, поэтому устанавливаемая кибана будет установлена.7.10.2
эта версия.
После завершения распаковки, чтобы каждый раз при запуске не заходить в домашнюю директорию Logstash, настроим переменные окружения:
vi ~/.bash_profile
# 在后面添加
export LOGSTASH_HOME=/home/elastic/logstash-7.10.2
export PATH=$PATH:$LOGSTASH_HOME/bin
Что касается проблемы с версией, одна из вещей, которая меня радует в ELK, заключается в том, что номера версий Elasticsearch, Logstash и Kibana в Elastic Stack одинаковы, что на самом деле избавляет от многих проблем.
При скачивании, если вы хотите скачать другие версии, вы можете изменить это прямо по ссылке
版本号
Вы можете скачать соответствующую версию файла.
сделать копию$LOGSTASH_HOME/config/logstash-sample.conf
файл конфигурации, названныйlogstash-app-search.conf
, измените его содержимое на:
input {
tcp {
# Logstash 作为服务
mode => "server"
host => "192.168.242.120"
# 开放9001端口进行采集日志
port => 9001
# 编解码器
codec => json_lines
}
}
output {
elasticsearch {
# 配置ES的地址
hosts => ["http://192.168.242.120:9200"]
# 在ES里产生的index的名称
index => "app-search-log-collection-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
stdout {
codec => rubydebug
}
}
Запустите Логсташ:
logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf
# 后台启动
# nohup logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf &
Установить Кибану
Все еще очень легко:
# 下载
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.2-linux-x86_64.tar.gz
# 解压
tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz
# 重命名
mv kibana-7.10.2-linux-x86_64.tar.gz kibana-7.10.2
# 配置环境变量
# 编辑 ~/.bash_profile
# 最终ELK的环境变量配置
export ES_HOME=/home/elastic/elasticsearch-7.10.2
export KIBANA_HOME=/home/elastic/kibana-7.10.2
export LOGSTASH_HOME=/home/elastic/logstash-7.10.2
export PATH=$PATH:$ES_HOME/bin:$KIBANA_HOME/bin:$LOGSTASH_HOME/bin
# 使之生效
source ~/.bash_profile
Сначала изменить$KIBANA_HOME/config/kibana.yml
Следующие элементы в файле конфигурации:
# Logstash端口
server.port: 5601
# Logstash的IP地址
server.host: "192.168.242.120"
# ES实例URL
elasticsearch.hosts: ["http://192.168.242.120:9200"]
Начните непосредственно со следующей команды (при условии настройки переменных среды):
kibana
Начните успешно, посетитеhttp://192.168.242.120:5601
:
Используйте ELK для сбора журналов Logback для проектов SpringBoot.
В основном посмотрите на файл конфигурации журнала SpringBoot.logback-spring.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 在logstash启动文件logstash-app-search.conf中配置的IP地址和端口 -->
<destination>192.168.242.120:9001</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="INFO">
<appender-ref ref="LOGSTASH" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
Я получил эту конфигурацию напрямую отlogstash-logback-encoder
Скопирован на проекте GitHub, поменял IP-адрес и портировать их.
Адрес гитхаба:
Запустите службу SpringBoot:
Появляется сообщение об ошибке, но запуск не успешен. В это время мы предполагаем, что этот журнал ошибок должен отображаться в журнале Logstash. Посмотрите:
Хорошо, да, но лучше посмотреть лог SpringBoot напрямую.В нем нет того удовольствия, которое должен был бы иметь ELK.В сочетании с Kibana сначала перейдите на страницу управления индексом:
Здесь я вижу, что оно было настроено как имя индекса в файле конфигурации Logstash.
Создайте шаблон индекса:
Затем вы можете увидеть журнал на панели Discover:
Теперь давайте исправим это на основе этого сообщения об ошибке и перезапустим SpringBoot.
Как видно из сообщения об ошибке,
Could not find an appender named [CONSOLE]
Причина в том,logback-spring.xml
В конфигурационном файле нет настроекCONSOLE
Приложение, просто добавьте его или удалите, если вам не нужен вывод консоли<appender-ref ref="CONSOLE" />
это предложение.
Здесь для облегчения просмотра на консоли, по сравнению с ELK, мы также добавляем вывод в консоль:
<property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
<!-- 输出到CONSOLE控制台 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${pattern}</pattern>
</encoder>
</appender>
Запустите SpringBoot и просмотрите логи, собранные Logstash через Kibana:
комфортный!
Эта навигация окончена, отдыхайте!
Первый публичный аккаунтлинейный барьер, Добро пожаловать старые утюги, чтобы обратить внимание на чтение и исправление. репозиторий кодаGitHub GitHub.com/Ответственность маленького белого дракона/Java…