Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 11882 В разделе
Sysadmin
от March 7th, 2023,
В подшивках: ELK
Opensearch это форк Elasticsearch, они как бы одно и тоже, но формально не совместимы поэтому напрямую из Filebeat и других подобных переслать данные не получится. Чтобы оно заработало нужна специальная версия Logstash, которая имеет плагин для работы с opensearch.
Ну все как обычно, поднимается где-нибудь рядом с сервисом, который необходимо отслеживать. Если у вас kubernetes я уверен на 100% вы справитесь с деплоем туда самостоятельно.
version: '3.3'
services:
filebeat:
image: elastic/filebeat:7.16.2
command: ["-e", "--strict.perms=false"]
environment:
LOGSTASH_HOST: 10.2.113.39
LOGSTASH_PORT: "5044"
user: root
restart: always
volumes:
- /srv/db/mysql-logs:/var/log/mysql:ro
- /srv/db/filebeat.yml:/usr/share/filebeat/filebeat.yml
- /srv/db/filebeat-modules.d:/usr/share/filebeat/modules.d
Внутри конфига filebeat.yml указываем output.logstash
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
output.logstash:
hosts: ['${LOGSTASH_HOST}:${LOGSTASH_PORT}']
index: "service-db-test-%{+yyyy.MM.dd}"
setup:
template:
name: "service-db-test"
pattern: "service-db-test"
Вот тут уже начинается магия. Мы видим, что это вообще не самый простой logstash.
version: "3"
services:
logstash:
image: opensearchproject/logstash-oss-with-opensearch-output-plugin:7.16.2
volumes:
- "./config:/usr/share/logstash/config:ro"
ports:
- "5044:5044/tcp"
- "5044:5044/udp"
restart: always
Конфиг пайплайна как раз и является ключевым во всей цепочке сбора логов. Обращаем внимание на то, что в output уже opensearch, а не эластик.
input {
beats {
host => "0.0.0.0"
port => "5044"
}
}
output {
if [service][type] == "mysql" {
opensearch
{
hosts => ["https://10.3.27.105:9200"]
index => "service-db-test-filebeat-%{+yyyy.MM.dd}"
user => "mylogin"
password => "mypassword"
ssl => "true"
ssl_certificate_verification => "false"
}
#stdout {}
} else {
opensearch
{
hosts => ["https://10.3.27.105:9200"]
index => "stand-test-filebeat-%{+yyyy.MM.dd}"
user => "mylogin"
password => "mypassword"
ssl => "true"
ssl_certificate_verification => "false"
}
#stdout{}
}
}
Подключаем этот пайплайн в logstash.yml: path.config: "./config/pipeline.conf"
Создаем нужные настройки для индексов в кибане и читаем логи.
Готово. Можно идти пить чай.
Fortune cookie: Spam del giorno: Ti sta bene in maldive
Leave a Reply