как разобрать журналы laravel в fluentd - PullRequest
0 голосов
/ 10 июня 2019

Пожалуйста, помогите мне с журналами стековых драйверов в GCP.Я использую Fluentd Agent для отправки журналов с сервера в журналы стека драйверов GCP.Основная проблема заключается в том, что я не могу разделить журналы по уровням (информация, предупреждение, ошибка) и отправить их в правильном формате.Вот мой конфиг для fluentd.

<source>
  @type tail
  format /^(?<message>(?<time>[^ ]*\s*[^ ]) .*)$/
  path /var/www/example.com/shared/storage/logs/laravel.*.%Y-%m-%d.log
  pos_file /var/lib/google-fluentd/pos/example-app.pos
  read_from_head true
  tag example-app
</source>

Прямо сейчас некоторые журналы поступают на стековый драйвер, а некоторые нет.Как правильно распознать журналы приложений laravel в stackdriver?Спасибо.

Вот несколько примеров журналов, которые я пытаюсь отправить в стекдрайвер

INFO

[2019-06-10 17:41:03] production.INFO: Updated status for  Application with external id [ 123-456-789 ]. PubSub message: array (
  'message' => 
  array (
    'attributes' => 
    array (
      'event' => 'application.applied',
      'id' => '1111-222222-5555',
      'example_id' => '1234567890',
      'source' => 'projectname',
      'timestamp' => '1560181263',
    ),
    'data' => 'sldjfhskjdfnakjfhawejflaskdflawiefjalskdfoawiejfslKDFjlkfsjgaoiwefjawoiejflKJF',
    'messageId' => '123123123',
    'message_id' => '123123123',
    'publishTime' => '2019-06-10T15:41:03.282Z',
    'publish_time' => '2019-06-10T15:41:03.282Z',
  ),
  'subscription' => 'projects/some-name/subscriptions/example-prod-application',
  '/pubsub/projectname/application/12jh3g1j2h3g12h3g1j2h3123h' => '',
)

ОШИБКА

[2019-06-10 17:33:05] production.ERROR: BraintreeException. account_id: 123123. 
 Declined. 
 Braintree\Result\Error[errors=, params=paymentMethod=customerId=123123, paymentMethodNonce=tokencc_bd_123123123, options=makeDefault=true, billingAddress=streetAddress=123123 E st apt 1111, locality=city, postalCode=123123, region=some-region, countryCodeAlpha2=NO, merchantId=123123123, message=Declined, verification=Braintree\Result\CreditCardVerification[status=processor_declined, cvvResponseCode=1233, avsErrorResponseCode=, avsPostalCodeResponseCode=U, =]

Предупреждение

 [2019-06-10 09:03:11] production.WARNING: projectname PubSub message validation error: Event for application with external id [ 123123123123 ] discarded because a later message was already processed. PubSub message: array (
  'message' => 
  array (
    'attributes' => 
    array (
      'event' => 'application.applied',
      'id' => '123123123',
      'projectname_id' => '123123123',
      'source' => 'some-source',
      'timestamp' => '1560150185',
    ),
    'data' => 'j1h2g3j1h2g3j1h23gj1h2g3j1h23g1j2h3g',
    'messageId' => '123123123',
    'message_id' => '123123123',
    'publishTime' => '2019-06-10T07:03:10.647Z',
    'publish_time' => '2019-06-10T07:03:10.647Z',
  ),
  'subscription' => 'projects/project-name/subscriptions/example-prod-application',
  '/pubsub/projectname/application/123123123123' => '',
)   
[2019-06-10 15:13:22] production.WARNING: Wrong account [ 123123123 ] provided for resetting password with token [ 123123123 ]. No password reset token found.

1 Ответ

0 голосов
/ 14 июня 2019

Я решил эту проблему, изменив формат на «none»

<source>
  @type tail
  format none
  path /var/www/example.com/shared/storage/logs/laravel.*.%Y-%m-%d.log
  pos_file /var/lib/google-fluentd/pos/example-app.pos
  read_from_head true
  tag example-app
</source>
...