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-а за претрагу грешке:
- Идентификовање инцидента (нпр. жалба корисника).
- Улазак у Kibanu, избор одговарајућег индекса логова.
- Уношење кључних речи или филтера (нпр. ID корисника, време захтева, име микросервиса).
- Претрага по пољу
level: ERRORилиlevel: WARNING. - Анализа 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"
}
Анализа логова је критична компонента процеса тестирања и подршке производа, омогућавајући брзо откривање и локализацију проблема.