Sobes.tech
Middle

Реците нам о вашем искуству у анализи логова.

sobes.tech АИ

Одговор од АИ

Анализа логова је коришћена за дебаговање, мониторинг и проналажење узрока инцидената.

Главни сценарији коришћења:

  • Проналажење грешака: Идентификовање грешака, упозорења и генерисаних изузетака у логовима апликације, сервера или базе података.
  • Дијагностика перформанси: Анализа времена одговора, оптерећења CPU-а, потрошње меморије према логовима мониторинг система или самих апликација.
  • Истраживање инцидената: Враћање хронологије догађаја који су довели до квара, на основу логова различитих компоненти система.
  • Мониторинг стања система: Подешавање аларма на кључне догађаје или грешке у логовима.
  • Анализа понашања корисника: Праћење последователности акција корисника на основу логова захтева ка API-ју или веб серверу.

Алатке и приступи:

  • Текстуални уредници и командне алатке: За мале пројекте или локалну анализу користио grep, awk, sed у Linux/Unix системима.
  • Централизовани системи логовања: Радио са ELK стеком (Elasticsearch, Logstash, Kibana), Grafana Loki. Ови системи омогућавају сакупљање логова из различитих извора, централизовано чување, индексирање и визуелизацију. Коришћење Kibane или Grafане за креирање dashboard-ова и интерактивно претраживање логова било је рутина.
  • Структурирано логовање: Позивао тимове за развој да користе формате логова који олакшавају парсирање (нпр. JSON), додавајући Correlation ID за повезивање захтева између сервиса.
  • Мониторинг и аларми: Подешавао правила у системима за мониторинг (Prometheus) и логовање (ELK, Grafana) за слање обавештења при појави критичних грешака или преласку одређеног броја упозорења у логовима.

Пример коришћења ELK-а за претрагу грешке:

  1. Идентификовање инцидента (нпр. жалба корисника).
  2. Улазак у Kibanu, избор одговарајућег индекса логова.
  3. Уношење кључних речи или филтера (нпр. ID корисника, време захтева, име микросервиса).
  4. Претрага по пољу level: ERROR или level: WARNING.
  5. Анализа stacktrace-а и околних логова за одређивање контекста грешке и идентификовање модула или функције која је изазвала квар.
{
  "@timestamp": "2023-10-27T10:30:00.123Z",
  "level": "ERROR",
  "message": "Неуспешна веза са базом података",
  "service": "user-service",
  "correlation_id": "abc-123",
  "error": {
    "type": "SQLException",
    "message": "Connection refused",
    "stacktrace": "..." // Овде ће бити пун stacktrace
  },
  "user_id": "user-xyz"
}

Анализа логова је критична компонента процеса тестирања и подршке производа, омогућавајући брзо откривање и локализацију проблема.