В этой статье мы увидим, как мы можем управлять журналами, генерируемыми шлюзом APIGEE API с помощью Elastic Search , Logstash и Kibana . На приведенной ниже схеме показано, как данные журнала проходят через стек ELK для визуализации и мониторинга данных.

В качестве части шлюза API мы будем использовать политику MessageLogging для захвата журналов прокси API в потоке прокси, целевом потоке и потоке после клиента в зависимости от требований. На сегодняшний день политика MessageLogging поддерживает системный журнал и ведение журнала на основе файлов (доступно только для локальной установки). Ниже приведена конфигурация политики MessageLogging для отправки журналов на сервер syslog.
|
1
2
3
4
5
6
7
8
9
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><MessageLogging async="false" continueOnError="false" enabled="true" name="TestEnv-Message-Logging"> <DisplayName>TestEnv Message Logging</DisplayName> <Syslog> <Message>{messageId}|{apiproxy.name}|{response.status.code}|{target.received.start.timestamp}|{target.received.end.timestamp}|{environment.name}|{client.received.start.timestamp}|{client.sent.end.timestamp}</Message> <Host>127.0.0.1</Host> <Port>514</Port> </Syslog></MessageLogging> |
Теперь мы увидим конфигурацию logstash для загрузки данных из системного журнала в logstash. Здесь я не даю шагов по настройке ELK, поскольку это выходит за рамки.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
input { file { path => "/Users/sjana/Documents/POC/ELK/APIGEE_LOG.log" start_position => "beginning" sincedb_path => "/dev/null" }}filter { csv { separator => "|" columns => ["MessageId","API_PROXY_NAME","RESPONSE_STATUS_CODE","TARGET_RECEIVED_START_TIME","TARGET_RECEIVED_END_TIME","ENVIRONMENT_NAME","CLIENT_RECEIVED_START_TIME","CLEINT_SENT_END_TIME"] remove_field => "message" }}output { elasticsearch { index => "apiproxies-log" } stdout {}} |
После успешного ввода данных системного журнала в Logstash мы можем настроить визуализацию на основе доступных полей в индексе. Ниже приведен пример визуализации, созданной для кодов состояния ответа прокси-сервера API.

В следующих статьях мы обсудим другую тему. До тех пор, Распространяйте любовь к API!
|
Опубликовано на Java Code Geeks с разрешения Шивы Джанапати, партнера нашей программы JCG. См. Оригинальную статью здесь: управление журналом шлюза APIGEE API с помощью ELK (Elastic Search, Logstash и Kibana) Мнения, высказанные участниками Java Code Geeks, являются их собственными. |