Splunk (6 серий части)
Когда мы отлаживаем приложение, нам может потребоваться агрегация данных, чтобы узнать, что произошло. Итак, как в SQL, мы можем сделать некоторые подделки в Splunk, чтобы быстро извлечь много информации.
Во-первых, мы проверем, как сделать простой поиск и как данные извлекаются.
Для того, что произошло дальше, мы будем использовать следующий пример:
- API, который всегда регистрирует идентификатор транзакции [ Transaction_id ] и общий код ошибки [ error_code ] (Если транзакция была неверной) прежде чем ответить на пользователя
- Журнал с идентификатором транзакции [ Transaction_id ] и с контентом исключения [ Исключение Несомненно Если поле было пропущено
Так что здесь, с простыми поисками, мы можем искать, какие транзакции не удались
error_code=* | table transaction_id
1 |
2 |
3 |
Или ищите журнал ошибок
transaction_id="1" AND exception=* | table timestamp, transaction_id, exception
Недостающее поле | 2021-01-01 00: 00: 00.000 | 1 |
Теперь, когда мы видим, что мы можем сделать с простыми поисками, мы сможем объединить их, чтобы получить все Transaction_id с исключением!
Так как мы делаем подпись?
В вашем поисковом Splunk вы просто должны добавить
[Поиск [Содержание подсчета] Несомненно
пример
[ search transaction_id="1" ]
Так в нашем примере, поиск, который нам нужен является
[search error_code=* | table transaction_id ] AND exception=* | table timestamp, transaction_id, exception
А также у нас будет
Недостающее поле | 2021-01-01 00: 00: 00.000 | 1 |
Неудачно не удалось | 2021-01-03 00: 00: 00.000 | 3 |
Transaction_ID 2 отсутствует, потому что это не была транзакция с ошибкой.
Но как это работает?
Это довольно просто! В моем примере я прошел простой поиск, который возвращает только одну информацию в журнал.
error_code=* | table transaction_id
1 |
2 |
3 |
Поэтому, когда вы делаете этот вид поиска как подпись, Splunk преобразует его на Или Состояние для каждой строки.
[search error_code=* | table transaction_id ] AND exception=* becomes (transaction_id = "1" OR transaction_id = "2" OR transaction_id = "3") AND exception=*
И если вы извлекаете более одной информации в вашем подставке, Splunk преобразует его как состояние, где каждый корпус является соответствием. (Состояние, которое должно быть действительным — сопоставить все значения из одной линии.)
[search error_code=* | table transaction_id, timestamp ] AND exception=* becomes ( (transaction_id = "1" AND timestamp = "2021-01-01 00:00:00.000") OR (transaction_id = "2" AND timestamp = "2021-01-02 00:00:00.000") OR (transaction_id = "3" AND timestamp = "2021-01-03 00:00:00.000") ) AND exception=*
Ссылки
Splunk Documentation
- «Используйте подводное расследование»: https://docs.splunk.com/documentation/splunk/8.2.1/searchtutorial/useasubsearch.
- «О подскаче»: https://docs.splunk.com/documentation/splunk/8.2.1/search/aboutsubsearches.
Вот и все! Вы узнали, как делать подразделения в Splunk!
Я надеюсь, что вам понравилось, и это поможет вам! 🍺
Splunk (6 серий части)
Оригинал: «https://dev.to/adaendra/how-to-do-a-subsearch-in-splunk-3n56»