Предположим, вы хотите отправить свои логи в Elasticsearch, чтобы вы могли искать или анализировать их в реальном времени. Если ваш кластер Elasticsearch находится в удаленном месте (EC2?) Или является нашей службой анализа журналов Logsene (которая предоставляет API Elasticsearch), вам может потребоваться пересылать данные по зашифрованному каналу.
Существует более одного способа пересылки через SSL, и этот пост является первой частью серии, объясняющей, как это сделать.
обновление: часть 2 теперь доступна!
Сегодняшний метод заключается в отправке данных по HTTPS в Elasticsearch (или Logsene ) вместо простого HTTP. Для этого вам понадобятся две части:
- инструмент, который может отправлять логи по HTTPS
- API REST Elasticsearch, предоставляемый через HTTPS
Вы можете создать свой собственный инструмент или использовать существующие. В этом посте мы покажем вам, как использовать вывод Elasticsearch rsyslog для этого. Для API вы можете использовать Nginx или Apache в качестве обратного прокси-сервера для HTTPS перед Elasticseach, или вы можете использовать конечную точку Logsene HTTPS :
Конфигурация Rsyslog
Чтобы получить плагин omelasticsearch для rsyslog, вам нужна как минимум версия 6.6. Поддержка HTTPS была только что добавлена в master, и ожидается, что она появится в версии 8.2.0. Как только это произойдет , вы сможете использовать пакеты Ubuntu , Debian или RHEL / CentOS для установки необходимых вам базовых пакетов rsyslog и rsyslog -asticsearch . В противном случае вы всегда можете установить из исходников:
— клонировать из репозитория rsyslog github
— запустить `autogen.sh –enable -asticsearch && make && make install` (в зависимости от вашей системы может потребоваться наличие некоторых зависимостей)
С omelasticsearch в месте ( ом часть поступает от O utput м МОДУЛЬ, если Вы задаетесь вопросом о странном имени), вы можете попробовать конфигурацию ниже , чтобы принять все ваши файлы журналов с локального / Dev / журнал и направить их Elasticsearch / Logsene:
# load needed input and output modules module(load="imuxsock.so") # listen to /dev/log module(load="omelasticsearch.so") # provides Elasticsearch output capability # template that will build a JSON out of syslog # properties. Resulting JSON will be in Logstash format # so it plays nicely with Logsene and Kibana template(name="plain-syslog" type="list") { constant(value="{") constant(value="\"@timestamp\":\"") property(name="timereported" dateFormat="rfc3339") constant(value="\",\"host\":\"") property(name="hostname") constant(value="\",\"severity\":\"") property(name="syslogseverity-text") constant(value="\",\"facility\":\"") property(name="syslogfacility-text") constant(value="\",\"syslogtag\":\"") property(name="syslogtag" format="json") constant(value="\",\"message\":\"") property(name="msg" format="json") constant(value="\"}") } # send resulting JSON documents to Elasticsearch action(type="omelasticsearch" template="plain-syslog" # Elasticsearch index (or Logsene token) searchIndex="YOUR-LOGSENE-TOKEN-GOES-HERE" # bulk requests bulkmode="on" queue.dequeuebatchsize="100" # buffer and retry indefinitely if Elasticsearch is unreachable action.resumeretrycount="-1" # Elasticsearch/Logsene endpoint server="logsene-receiver.sematext.com" serverport="443" usehttps="on" )
Изучение ваших данных
После перезапуска rsyslog вы сможете увидеть, как текут ваши журналы в пользовательском интерфейсе Logsene , где вы можете искать и отображать их:
Если вы предпочитаете пользовательский интерфейс Kibana в Logsene или используете свой собственный кластер Elasticsearch, вы можете запустить собственный Kibana для подключения к конечной точке HTTPS, как это делает rsyslog или собственный пользовательский интерфейс Logsene .
Завершение
Если вы используете Logsene, все, что вам нужно сделать, это убедиться, что вы добавили свой токен приложения Logsene в качестве имени индекса Elasticsearch в конфигурации rsyslog .
Если вы используете свой собственный кластер Elasticsearch, есть несколько хороших руководств по настройке обратных прокси HTTPS с Nginx и Apache соответственно. Вы также можете попробовать плагины Elasticsearch, поддерживающие HTTPS, такие как плагины для Jetty и безопасности .
Не стесняйтесь обращаться к нам, если вам нужна помощь. Мы будем рады ответить на любые ваши вопросы по Logsene, а также помочь вам с вашей локальной настройкой с помощью профессиональных услуг и технической поддержки . Если вам просто нравится этот материал, вы можете присоединиться к нам, где бы вы ни находились .
Оставайтесь с нами для части 2 , которая покажет вам, как использовать системный журнал TLS RFC-5425 для шифрования ваших сообщений от одного демона системного журнала к другому .