Статьи

Управление журналом шлюза APIGEE API с помощью ELK (Elastic Search, Logstash и Kibana)

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

API-шлюз APIGEE

В качестве части шлюза 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 {
     hosts => "http://localhost:9200"
     index => "apiproxies-log"
  }
  stdout {}
}

После успешного ввода данных системного журнала в Logstash мы можем настроить визуализацию на основе доступных полей в индексе. Ниже приведен пример визуализации, созданной для кодов состояния ответа прокси-сервера API.

API-шлюз APIGEE

В следующих статьях мы обсудим другую тему. До тех пор, Распространяйте любовь к API!

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

Мнения, высказанные участниками Java Code Geeks, являются их собственными.