Что такое Splunk?
Splunk — это инструмент, используемый для регистрации, анализа, составления отчетов, визуализации, мониторинга или поиска машинных данных в режиме реального времени.
Машинные данные — это информация, которая генерируется компьютерным процессом, приложением, устройством или любым другим механизмом без какого-либо активного вмешательства человека. Машинные данные находятся повсюду, и они могут генерироваться автоматически из различных источников, таких как компьютерные процессы, лифты, автомобили, смартфоны и т. Д., И, как правило, такие данные генерируются в виде событий в неструктурированной форме.
Splunk способен выполнять поиск, создание отчетов, визуализацию, ведение журнала или мониторинг любого типа данных, включая структурированные и неструктурированные данные.
Splunk Основные компоненты
Splunk Search Heads
Splunk Search Head — это экземпляр Splunk, который распределяет поиски по индексаторам.
Splunk Indexers
Индексаторы — это компонент Splunk, используемый для индексации и хранения входящих данных от серверов пересылки. Экземпляры Splunk преобразуют входящие данные в события и сохраняют их в индексах для эффективного выполнения поисковых операций.
Splunk Forwarders
Серверы пересылки используются для безопасного и надежного сбора данных из различных источников и передачи данных в Splunk для индексации и анализа.
Splunk Deployments
Splunk Enterprise
Splunk может быть развернут и администрирован локально.
Splunk Cloud
Splunk Cloud — это SaaS-платформа (программное обеспечение как услуга) для оперативного интеллекта и корпоративного масштаба. Никакой инфраструктуры не требуется.
Splunk Light
Splunk Light — это решение для небольших ИТ-сред.
Вам также может понравиться:
Аналитика сообщений журнала приложений Java с использованием Splunk
Загрузите и установите Splunk Enterprise On-Premise
Для установки Splunk локально или на вашем компьютере вам необходимо перейти к бесплатной загрузке Splunk и создать учетную запись, заполнив форму. Нажмите здесь, чтобы начать загрузку бесплатно.
Существует 2 варианта: либо вы можете загрузить локальную пробную версию Splunk Enterprise на 60 дней, либо пробную версию Splunk Cloud на 15 дней.
Создав учетную запись Splunk, вы сможете загрузить Splunk Enterprise и Splunk Cloud.
В этой статье мы будем загружать 64-разрядную версию Windows Splunk 8.0.1, а также загружать spunk-8.0.1-x64-release.msi и просто запускать msi. Начнется установка Splunk на вашем компьютере, и в процессе установки вам нужно будет создать пароль для пользователей с правами администратора и выбрать локальные учетные записи во время установки. Для Windows будет создан Windows-сервис « Splunkd Service. »
После установки Splunk вы можете перейти по адресу http: // localhost: 8000 , и он перейдет к веб-интерфейсу Splunk Web.
Для входа в Splunk необходимо указать имя пользователя « admin » и пароль, которые вы создали во время установки.
Создание токена сборщика событий HTTP
Коллектор событий HTTP (HEC) позволяет отправлять данные и события приложений в развертывание Splunk по протоколам HTTP и Secure HTTP (HTTPS). HEC использует модель аутентификации на основе токенов.
Для создания токенов перейдите в Настройки → Ввод данных → HTTP Event Collector.
Как только вы выберете HTTP Event Collector , он перейдет к экрану, с которого вы можете создать новый токен . Нажмите на кнопку Новый токен .
После того, как вы нажмете кнопку « Новый токен» , он перейдет к форме и начнет заполнять детали, такие как Имя. Нажмите Далее в верхней части веб-страницы для заполнения дополнительной информации.
На следующем экране вы можете выбрать SourceType как log4j, так как мы будем использовать log4j в качестве источника для отправки данных в Splunk из приложения MuleSoft.
На том же экране выберите все основные индексы, сводку и историю.
Теперь нажмите на кнопку Review в верхней части экрана. Наконец, просмотрите детали и нажмите кнопку « Отправить» .
После того, как вы нажмете кнопку « Отправить» , он создаст токен, который мы будем использовать для аутентификации.
Вы можете снова перейти в « Настройки» → «Ввод данных» → «Сборщик событий HTTP», чтобы увидеть вновь созданный токен.
Также убедитесь, что токен включен. В случае, если он не включен, вы можете нажать на Глобальные настройки и включить токен, как показано на скриншоте ниже.
Также обратите внимание на номер порта HTTP 8088, и он потребуется для отправки журналов из приложения в Splunk. Мы будем использовать URL http: // localhost: 8088 и токен, который мы создали выше, для отправки журналов в Splunk из приложения MuleSoft.
Отредактируйте токен и выберите Индекс по умолчанию в качестве основного .
Настройка почтового сервера на Splunk
Для настройки почтового сервера перейдите в « Настройки» → «Настройки сервера» → «Настройки почтового сервера».
Вам необходимо указать почтовый хост, имя пользователя и пароль. Если вы используете smtp.gmail.com , используйте порт 465 для SSL и 587 для TLS.
Вы можете определить формат электронной почты в настройках почтового сервера, и мы оставим по умолчанию эту статью. Нажмите Сохранить .
Интеграция приложения MuleSoft с Splunk Enterprise с использованием Anypoint Studio
Для интеграции приложения MuleSoft со Splunk мы добавим HttpAppender в log4j2.xml, расположенный по адресу src / main / resources
XML
xxxxxxxxxx
1
<Appenders>
2
<Http name="Splunk" url="http://localhost:8088/services/collector/raw">
3
<Property name="Authorization" value="Splunk 42e1dcf7-6e14-4a1b-8485-c5fa15edb47d" ></Property>
4
<PatternLayout pattern="[%d{MM-dd HH:mm:ss}] %-5p %c{1} [%t]: %m%n"></PatternLayout>
5
</Http>
6
</Appenders>
Для подключения к Splunk из приложения MuleSoft необходимо указать URL-адрес, по которому мы будем отправлять журналы в Splunk. В нашем случае URL-адрес « http: // localhost: 8088 / services / collector / raw », и вам необходимо добавить свойство авторизации и значение Token, которое мы создали выше, с помощью Prefix Splunk.
Нам нужно определить регистраторы в log4j2.xml.
XML
xxxxxxxxxx
1
<AsyncRoot level="INFO">
2
<AppenderRef ref="Splunk" ></AppenderRef>
3
</AsyncRoot>
Также убедитесь, что AppenderRef совпадает с именем HTTP Appender .
XML
xxxxxxxxxx
1
2
<Configuration status="INFO" name="cloudhub"
3
packages="com.splunk.logging,org.apache.logging.log4j">
4
<Appenders>
5
<Http name="Splunk" url="http://localhost:8088/services/collector/raw">
6
<Property name="Authorization" value="Splunk 24110863-bf85-42af-bfe4-6853954b6ba6" ></Property>
7
<PatternLayout pattern="[%d{MM-dd HH:mm:ss}] %-5p %c{1} [%t]: %m%n" ></PatternLayout>
8
</Http>
9
</Appenders>
10
<Loggers>
11
<logger name="httpclient.wire">
12
<level value="debug" ></level>
13
</logger>
14
<AsyncRoot level="INFO">
15
<AppenderRef ref="Splunk" ></AppenderRef>
16
</AsyncRoot>
17
<AsyncLogger name="com.gigaspaces" level="ERROR" ></AsyncLogger>
18
<AsyncLogger name="com.j_spaces" level="ERROR" ></AsyncLogger>
19
<AsyncLogger name="com.sun.jini" level="ERROR" ></AsyncLogger>
20
<AsyncLogger name="net.jini" level="ERROR" ></AsyncLogger>
21
<AsyncLogger name="org.apache" level="WARN" ></AsyncLogger>
22
<AsyncLogger name="org.apache.cxf" level="WARN" ></AsyncLogger>
23
<AsyncLogger name="org.springframework.beans.factory"
24
level="WARN" ></AsyncLogger>
25
<AsyncLogger name="org.mule" level="INFO" ></AsyncLogger>
26
<AsyncLogger name="com.mulesoft" level="INFO" ></AsyncLogger>
27
<AsyncLogger name="org.jetel" level="WARN" ></AsyncLogger>
28
<AsyncLogger name="Tracking" level="WARN" ></AsyncLogger>
29
<AsyncLogger name="org.mule.module.http.internal.HttpMessageLogger"
30
level="DEBUG" ></AsyncLogger>
31
<AsyncLogger name="com.ning.http" level="DEBUG" ></AsyncLogger>
32
</Loggers>
33
</Configuration>
Создано приложение Mulesoft, которое будет регистрировать информацию, ошибки и другую информацию в Splunk.
Это приложение MuleSoft получит запрос и отправит запрос к API часового пояса мира для получения сведений о часовом поясе.
XML
xxxxxxxxxx
1
2
<mule xmlns:edifact="http://www.mulesoft.org/schema/mule/edifact" xmlns:scripting="http://www.mulesoft.org/schema/mule/scripting"
4
xmlns:kafka="http://www.mulesoft.org/schema/mule/kafka"
5
xmlns:wsc="http://www.mulesoft.org/schema/mule/wsc" xmlns:sap="http://www.mulesoft.org/schema/mule/sap" xmlns:ee="http://www.mulesoft.org/schema/mule/ee/core" xmlns:db="http://www.mulesoft.org/schema/mule/db" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
6
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
7
http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd
8
http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd
9
http://www.mulesoft.org/schema/mule/sap http://www.mulesoft.org/schema/mule/sap/current/mule-sap.xsd
10
http://www.mulesoft.org/schema/mule/wsc http://www.mulesoft.org/schema/mule/wsc/current/mule-wsc.xsd
11
http://www.mulesoft.org/schema/mule/kafka http://www.mulesoft.org/schema/mule/kafka/current/mule-kafka.xsd
12
http://www.mulesoft.org/schema/mule/scripting http://www.mulesoft.org/schema/mule/scripting/current/mule-scripting.xsd
13
http://www.mulesoft.org/schema/mule/edifact http://www.mulesoft.org/schema/mule/edifact/current/mule-edifact.xsd">
14
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="c498279f-ca24-4a46-999a-64b662cb2adf" >
15
<http:listener-connection host="0.0.0.0" port="8082" ></http:listener>
16
</http:listener-config>
17
<http:request-config name="HTTP_Request_configuration" doc:name="HTTP Request configuration" doc:id="b3f4b64e-a5d9-47d4-9a97-385b13338d1d" basePath="/api/timezone" >
18
<http:request-connection host="worldtimeapi.org" ></http:request>
19
</http:request-config>
20
<edifact:config name="EDIFACT_EDI_Config" doc:name="EDIFACT EDI Config" doc:id="24fa248b-732a-456c-95e8-8f0e47db74e5" ></edifact:config>
21
<flow name="Splunk_POC" doc:id="deb4fc3a-cd56-44ce-9331-f127cdb55e7a" >
22
<http:listener doc:name="Listener" doc:id="bf3535c5-c649-430d-b4f0-7c0573b78586" config-ref="HTTP_Listener_config" path="/timezone/{region}/{city}" allowedMethods="GET">
23
<http:error-response statusCode="#[vars.httpStatusCode]" >
24
<http:body ><![CDATA[#[payload]]]></http:body>
25
</http:error-response>
26
</http:listener>
27
<set-variable value="#[attributes.uriParams.region]" doc:name="Set Variable" doc:id="2c0068e9-454d-4262-8b06-5164b4882beb" variableName="region"></set>
28
<set-variable value="#[attributes.uriParams.city]" doc:name="Set Variable" doc:id="c655e67a-19d2-47a4-b8b4-27dbfc78eaac" variableName="city"></set>
29
<logger level="INFO" doc:name="Logger" doc:id="98e05fb8-9815-4a8a-9ed5-02ab75c457f6" message="#[payload]"></logger>
30
<http:request method="GET" doc:name="Request" doc:id="a0c6b2e0-6f0b-40ea-ae79-f4c2c34253ae" config-ref="HTTP_Request_configuration" path="/{region}/{city}">
31
<http:uri-params><![CDATA[#[output application/java
32
---
33
{
34
city : vars.city,
35
region : vars.region
36
}]]]></http:uri-params>
37
</http:request>
38
<logger level="INFO" doc:name="Logger" doc:id="6644e958-16c4-4d61-8546-4247d4f4389e" message="#['Process Completed']"></logger>
39
<error-handler >
40
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" doc:id="18fc98f5-2072-4d4f-ba53-2b907533b1d6" type="HTTP:NOT_FOUND">
41
<ee:transform doc:name="Transform Message" doc:id="a3a33b85-44fa-4bac-a07f-0f2079d51c69" >
42
<ee:message >
43
<ee:set-payload ><![CDATA[%dw 2.0
44
output application/json
45
---
46
{
47
message:error.description
48
}]]></ee:set-payload>
49
</ee:message>
50
<ee:variables >
51
<ee:set-variable variableName="httpStatusCode" ><![CDATA[404]]></ee:set-variable>
52
</ee:variables>
53
</ee:transform>
54
<logger level="ERROR" doc:name="Logger" doc:id="fc850af2-b9a1-4131-8399-e579fb6f8b24" message="#[payload]"></logger>
55
</on-error-propagate>
56
<on-error-propagate enableNotifications="true" logException="true" doc:name="On Error Propagate" doc:id="aca640dd-26c8-4105-aaec-4fe857a5e8ee" type="ANY">
57
<ee:transform doc:name="Transform Message" doc:id="aedd383a-c841-4441-a4da-8a5f2e4e8eab" >
58
<ee:message >
59
<ee:set-payload ><![CDATA[%dw 2.0
60
output application/json
61
---
62
{
63
message:error.description
64
}]]></ee:set-payload>
65
</ee:message>
66
<ee:variables >
67
<ee:set-variable variableName="httpStatusCode" ><![CDATA[500]]></ee:set-variable>
68
</ee:variables>
69
</ee:transform>
70
<logger level="ERROR" doc:name="Logger" doc:id="76af331a-5bdd-468f-8d69-9a92279075dd" message="#[payload]"></logger>
71
</on-error-propagate>
72
</error-handler>
73
</flow>
74
</mule>
Как только вы запустите приложение Mule и отправите запрос, оно начнет регистрировать события в Splunk.
Поиск событий с помощью Splunk
Для просмотра событий вы можете перейти на домашнюю страницу Splunk и выбрать Поиск и отчетность .
Он переместит вас на страницу поиска. На этой странице вы можете использовать фильтр для поиска событий и просматривать сводку данных . Сводка данных покажет вам все хосты, источники и типы источников, откуда происходят события.
Эти хосты, источники и типы источников могут использоваться для поиска событий.
Фильтр 1: sourceType = log4j за последние 24 часа
Фильтр 2: ошибка за последние 24 часа
Фильтр 3: HTTP: NOT_FOUND за последние 24 часа
Фильтр 4: HTTP: NOT_FOUND ИЛИ HTTP: CONNECTIVITY за последние 24 часа
Интеграция приложения MuleSoft с Splunk Enterprise с использованием платформы Anypoint и группы или кластера Anypoint Server
Для локальной интеграции Splunk Enterprise с Anypoint Server Group или Cluster вам необходимо создать кластер или группу серверов в Anypoint Platform Runtime Manager.
Добавление сервера в диспетчер среды выполнения Anypoint Platform
Чтобы добавить сервер в Диспетчер времени исполнения Anypoint Platform, выберите « Диспетчер времени выполнения» → «Серверы» → «Добавить серверы» .
После того, как вы нажмете « Добавить серверы» , он даст команду, которую вам нужно запустить на вашем компьютере, чтобы перейти в папку / bin среды исполнения Mule.
После выполнения команды вы увидите, что сервер будет добавлен в диспетчер среды выполнения Anypoint Platform и будет развернутым агентом на вашем локальном компьютере в папке / conf . Подробности агента можно найти в mule-agent.yml . Это обеспечит безопасную связь между Anypoint Platform Runtime Manager и средой исполнения Mule вашего локального компьютера.
Создание группы серверов
Для создания группы серверов в Anypoint Runtime Manager выберите Runtime Manager → Серверы → Создать группу .
Определите имя группы и добавьте серверы, которые вам нужны в этой группе серверов. Чтобы добавить сервер в группу, он должен быть в рабочем состоянии. Нажмите Создать группу, и она создаст группу серверов.
Вы можете добавить более одного сервера в группу серверов.
Развертывание приложения MuleSoft в группе серверов
Для развертывания приложения в группе серверов перейдите к Runtime Manager → Приложения → Развернуть приложение
Для развертывания приложения в группе серверов вам нужно выбрать Deployment Target в качестве имени группы серверов (в данном случае это jitendra-group ). Нажмите Развернуть приложение . Это развернет приложения на всех серверах в этой конкретной группе серверов.
Включение Splunk для группы серверов с помощью Anypoint Runtime Manager
Чтобы включить Splunk для группы серверов, перейдите к Runtime Manager → Серверы → Нажмите на группу серверов → Управление группой.
После нажатия кнопки « Управление группой» перейдите на вкладку «Плагины», и вы увидите плагин Splunk и ELK.
Нажмите на значок настройки перед Splunk, чтобы настроить его.
Настройте отслеживание событий Splunk, как показано выше на скриншоте.
Вам необходимо указать хост и номер порта Splunk. В нашем случае номер порта - 8088, а токен - это то, что мы создали в начале статьи.
Splunk Source - это mule-events, и он будет полезен для поиска событий, поступающих из Anypoint Runtime Manager. Нажмите Применить .
Это отслеживание будет применимо ко всем приложениям, развернутым в этой группе серверов.
Мы будем выполнять приложение, развернутое в группе серверов, и оно начнет регистрировать данные в Splunk, который можно использовать для генерации предупреждений, создания отчетов, визуализации, устранения неполадок и аналитики.
Теперь вы можете видеть, что новые Source = mule -события и sourceType = mule были добавлены в сводку данных.
Источник фильтра = «события мул» за последние 24 часа
Фильтр sourceType = mule за последние 24 часа
Точно так же вы можете включить ведение журнала Splunk для серверов в кластере.
Создание отчетов и оповещений по электронной почте с помощью Splunk
В Splunk доступны отчеты по умолчанию. Для просмотра отчетов перейдите в « Настройки» → «Поиск», «Отчеты и оповещения».
Мы запустим ошибки в отчете за последние 24 часа, нажав на кнопку выполнить. Это покажет все ошибки или исключения, которые произошли за последние 24 часа.
Для составления расписания отчета нажмите « Правка» → «Изменить расписание» .
После того, как вы нажали « Изменить расписание» , оно откроет всплывающее окно и начнет заполнять детали, такие как расписание, выражение CRON и инициированные действия (отправка электронной почты), как показано на снимке экрана ниже. Нажмите Сохранить .
Еще один способ планирования PDF: перейдите на главную страницу Splunk → Поиск и отчетность → Отчеты
Нажмите на
Ошибки за последние 24 часа → Добавить на панель инструментов .
Он откроет всплывающее окно и заполнит заголовок панели. Нажмите Сохранить .
После сохранения откроется всплывающее окно. Нажмите на панель просмотра .
Теперь нажмите Экспорт → Расписание доставки PDF .
Это откроет всплывающее окно, и вы можете запланировать доставку PDF. Мы настроили планировщик CRON для запуска отчетов каждую минуту, и он будет отправлять по электронной почте каждую минуту со всеми ошибками, которые произошли за последние 24 часа. Нажмите Сохранить .
Образец полученного письма
Пример ошибки PDF
Заключение
Splunk - очень полезный и мощный инструмент для регистрации, анализа, составления отчетов, поиска и визуализации событий и данных. MuleSoft предоставляет возможность легко интегрировать Splunk, используя Anypoint Studio и Anypoint Platform Runtime Manager.