Научу вас, как построить ELK, это так просто

Java
Научу вас, как построить ELK, это так просто

карта разума

Статья была выбрана Github, добро пожаловать в Star:GitHub.com/Yehongqin/Лай…

Обзор

Все мы знаем, что в производственной среде часто встречается множество исключений и сообщений об ошибках, и нам необходимо проверять информацию журнала для устранения ошибок. Большинство современных систем более сложны.Даже за службой стоит кластер работающих машин.Очевидно, что очень трудоемко и нереально проверять логи по одному..

Если все логи можно собрать на одной платформе, то как у Baidu и GoogleПоиск релевантных журналов по ключевому слову, разве это не было бы весело. Так что естьЦентрализованная система регистрации. ELK — один из наиболее часто используемых продуктов с открытым исходным кодом.

1. Что такое ЕЛК

ELK на самом деле является аббревиатурой от Elasticsearch, Logstash и Kibana, все три из которых являются продуктами с открытым исходным кодом.

ElasticSearch(сокращенно ES) — это распределенный механизм поиска и анализа в реальном времени, который можно использовать для полнотекстового поиска, структурированного поиска и анализа.

Logstash, представляет собой механизм сбора данных, в основном используемый для сбора данных, анализа и отправки данных в ES. Поддерживаемые источники данных включают локальные файлы, ElasticSearch, MySQL, Kafka и другие.

Kibana, который предоставляет интерфейс анализа и веб-визуализации для Elasticsearch, а также создает различные таблицы измерений и графики.

2. Построить ЛОСЬ

Зависимости от окружения: CentOS7.5, JDK1.8, ElasticSearch7.9.3, Logstash 7.9.3, Kibana7.9.3.

2.1 Установите ElasticSearch

Во-первых, чтобыОфициальный сайтЗагрузите установочный пакет и используйтеtar -zxvfкоманда распаковать.

Найдите файл elasticsearch.yml в каталоге config и измените конфигурацию:

cluster.name: es-application
node.name: node-1
#对所有IP开放
network.host: 0.0.0.0
#HTTP端口号
http.port: 9200
#elasticsearch数据文件存放目录
path.data: /usr/elasticsearch-7.9.3/data
#elasticsearch日志文件存放目录
path.logs: /usr/elasticsearch-7.9.3/logs

После настройки создайте пользователя, поскольку ElasticSearch запускается с пользователем без полномочий root.

# 创建用户
useradd yehongzhi
# 设置密码
passwd yehongzhi
# 赋予用户权限
chown -R yehongzhi:yehongzhi /usr/elasticsearch-7.9.3/

Затем переключите пользователей и запустите:

# 切换用户
su yehongzhi
# 启动 -d表示后台启动
./bin/elasticsearch -d

использовать командуnetstat -nltpПроверьте номер порта:

доступhttp://192.168.0.109:9200/ Вы можете увидеть следующую информацию, указывающую на то, что установка прошла успешно.

2.2 Установите Логсташ

Сначала скачайте и установите сжатый пакет на официальном сайте, затем распакуйте его, найдите файл logstash-sample.conf в каталоге /config и измените конфигурацию:

input {
  file{
    path => ['/usr/local/user/*.log']
    type => 'user_log'
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.0.109:9200"]
    index => "user-%{+YYYY.MM.dd}"
  }
}

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

После завершения настройки должен быть источник данных, то есть файл журнала, подготовить приложение user.jar, а затем запустить его в фоновом режиме и вывести в файл журнала user.log.Команда выглядит следующим образом :

nohup java -jar user.jar >/usr/local/user/user.log &

Затем запустите Logstash в фоновом режиме с помощью следующей команды:

nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf &

После запуска используйтеjpsкоманда, вы можете увидеть два запущенных процесса:

2.3 Установите Кибану

первымОфициальный сайтЗагрузите сжатый пакет, разархивируйте его, найдите файл kibana.yml в каталоге /config и измените конфигурацию:

server.port: 5601
server.host: "192.168.0.111"
elasticsearch.hosts: ["http://192.168.0.109:9200"]

Как и elasticSearch, его нельзя запустить от пользователя root, нужно создать пользователя:

# 创建用户
useradd kibana
# 设置密码
passwd kibana
# 赋予用户权限
chown -R kibana:kibana /usr/kibana/

Затем начните с команды:

#切换用户
su kibana
#非后台启动,关闭shell窗口即退出
./bin/kibana
#后台启动
nohup ./bin/kibana &

Открыть в браузере после запускаhttp://192.168.0.111:5601, вы можете увидеть веб-интерфейс кибаны:

2.4 Отображение эффектов

После того, как все стартапы успешны, весь процесс должен быть таким, давайте посмотрим:

браузер открытhttp://192.168.0.111:5601, заходим в интерфейс управления, нажимаем «ИндексироватьМенеджмент» можно увидеть, что существуетuser-2020.10.31индекс чего-либо.

нажмитеIndex PatternsЗатем создается строка меню с именем user-*.

Наконец, вы можете перейти в столбец «Обнаружение», чтобы выбрать шаблон индекса пользователя-*, а затем выполнить поиск по ключевым словам, чтобы найти соответствующие журналы!

3. Улучшение и оптимизация

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

FileBeat также является официально рекомендуемым сборщиком журналов.Сначала загрузите установочный zip-пакет Linux:

https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz

После завершения загрузки разархивируйте его. Затем измените файл конфигурации filebeat.yml:

#输入源
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/local/user/*.log
#输出,Logstash的服务器地址
output.logstash:
  hosts: ["192.168.0.110:5044"]
#输出,如果直接输出到ElasticSearch则填写这个
#output.elasticsearch:
  #hosts: ["localhost:9200"]
  #protocol: "https"

Затем также следует изменить файл конфигурации Logstash logstash-sample.conf:

#输入源改成beats
input {
  beats {
    port => 5044
    codec => "json"
  }
}

Затем запустите FileBeat:

#后台启动命令
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &

Запустите Logstash снова:

#后台启动命令
nohup ./bin/logstash -f /usr/logstash-7.9.3/config/logstash-sample.conf &

Как определить, что запуск прошел успешно?Посмотрите файл журнала logstash-plain.log в каталоге /logs приложения Logstash:

напиши в конце

В настоящее время многие интернет-компании используют ELK в качестве централизованной лог-системы, причина очень проста:Открытый исходный код, множество плагинов, простота расширения, поддержка множества источников данных, активное сообщество, готово к использованию.и Т. Д. Я видел, как компания добавляла кластер Kafka к вышеописанной архитектуре, в основном из-за учета большого объема данных журнала. Однако три основных компонента ElasticSearch, Logstash и Kibana незаменимы.

Я надеюсь, что эта статья поможет вам получить некоторое представление об ELK, спасибо за чтение.

Ставьте лайки, если считаете это полезным, ваши лайки — самая большая мотивация для моего творчества.~

Не хочу быть соленой рыбой, я программист, стремящийся запомниться всем. Увидимся в следующий раз! ! !

Возможности ограничены, если есть какие-то ошибки или неуместности, просьба критиковать и исправлять их, учиться и обмениваться вместе!