карта разума
Статья была выбрана 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
Проверьте номер порта:
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, спасибо за чтение.
Ставьте лайки, если считаете это полезным, ваши лайки — самая большая мотивация для моего творчества.~
Не хочу быть соленой рыбой, я программист, стремящийся запомниться всем. Увидимся в следующий раз! ! !
Возможности ограничены, если есть какие-то ошибки или неуместности, просьба критиковать и исправлять их, учиться и обмениваться вместе!