Адрес фактического центра электронной коммерции SpringBoot (40k+star):GitHub.com/macro-positive/…
Резюме
существует"Вы все равно ходите на сервер собирать логи, разве не восхитительно настроить систему сбора логов! 》В этой статье мы представили построение системы сбора логов ELK.Поскольку наша Kibana не имеет какого-либо механизма защиты безопасности, если она развернута в общедоступной сети, любой может просматривать ваши логи. Выставлять логи в сеть нехорошо, сегодня я научу вас, как настроить аутентификацию при входе в Kibana, чтобы защитить ее.
Принцип реализации
Поскольку информация журнала Kibana хранится в Elasticsearch, просто включите Elasticsearch.X-PACK
Вы можете установить пароль для предустановленной учетной записи. После настройки Elasticsearch пользователями, ролями и разрешениями можно управлять в Kibana.Все версии компонентов ELK, используемые в этой статье,7.6.2
.
Elasticsearch установить пароль
- Измените файл конфигурации Elasticsearch и включите его.
X-PACK
функции безопасности в файле конфигурации в каталоге установкиconfig
ниже папки, например.elasticsearch-7.6.2\config\elasticsearch.yml
;
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
-
Запустите службу Elasticsearch, запустите команду в
bin
каталог, напримерelasticsearch-7.6.2\bin\elasticsearch.bat
; -
существует
bin
Используйте следующую команду в каталогеelasticsearch-setup-passwords interactive
Измените пароль предустановленной учетной записи. В течение периода вам необходимо установить несколько паролей для учетных записей. Я установил их как123456
;
- За этот период было создано несколько учетных записей. Давайте сначала разберемся, что делают эти учетные записи;
elastic:超级管理员账号
kibana:Kibana访问专用账号
logstash_system:Logstash访问专用账号
beats_system:FileBeat访问专用账号
apm_system:APM系统专用账号
remote_monitoring_user:远程监控账号
- Далее нам нужно добавить учетную запись, которая может получить доступ к Elasticsearch, в файл конфигурации Kibana, который находится в каталоге установки.
config
ниже папки, например.kibana-7.6.2\config\kibana.yml
;
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
-
Запустите службу Kibana, запустите команду в
bin
каталог, напримерkibana-7.6.2\bin\kibana.bat
; -
Когда Kibana запускается, нам нужно войти в систему и аутентифицироваться при посещении, используя учетную запись суперадминистратора.
elastic:123456
Вы можете войти и посетить адрес:http://localhost:5601
- После успешного входа в наш
Management
Конфигурацию, связанную с безопасностью, можно найти в параметрах, где мы можем установить пользователей, роли и разрешения.
Безопасный доступ SpringBoot
Поскольку Elasticsearch включен
X-PACK
Функция безопасности в , когда наше приложение SpringBoot обращается к Elasticsearch, нам также необходимо установить имя пользователя и пароль!
-
Мы можем настроить учетную запись суперадминистратора прямо в SpringBoot, но это не очень хороший способ, давайте создадим роль и учетную запись сами!
-
Сначала создайте определенную роль для доступа к приложению в Kibana.
app_user
;
- Создайте пользователя и настройте роль, пароль учетной записи
app:123456
;
- Измените файл конфигурации приложения SpringBoot.
application.yml
, настройте пароль учетной записи, и вы сможете получить к ней доступ в обычном режиме!
spring:
elasticsearch:
rest:
uris: http://localhost:9200
username: app
password: 123456
Безопасный доступ к Logstash
Поскольку Elasticsearch включен
X-PACK
Функция безопасности в Logstash, которая выводит журналы в Elasticsearch, также требует установки имени пользователя и пароля!
- Сначала измените исходный файл конфигурации Logstash.
logstash.conf
,существуетoutput
Установите имя пользователя и пароль для доступа к Elasticsearch под узлом и используйте тот, который мы создали напрямую.app:123456
Счет;
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
type => "debug"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4561
codec => json_lines
type => "error"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4562
codec => json_lines
type => "business"
}
tcp {
mode => "server"
host => "0.0.0.0"
port => 4563
codec => json_lines
type => "record"
}
}
filter{
if [type] == "record" {
mutate {
remove_field => "port"
remove_field => "host"
remove_field => "@version"
}
json {
source => "message"
remove_field => ["message"]
}
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
action => "index"
codec => json
index => "mall-tiny-%{type}-%{+YYYY.MM.dd}"
template_name => "mall-tiny"
user => app
password => "123456"
}
}
- Используйте указанный файл конфигурации для запуска службы Logstash.Команда запуска находится в
bin
каталог, напримерlogstash-7.6.2\bin\logstash.bat
;
logstash -f logstash.conf
- Далее вы можете просмотреть журналы, выводимые приложением в Kibana!
Адрес исходного кода проекта
Эта статьяGitHubGitHub.com/macro-positive/…Он был записан, приветствую всех на Star!