Sobes.tech
Middle

Log analizi konusunda deneyimin var mı? Nginx loglarında olayları bulmak için bir şeyler yazabilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

Да, есть опыт парсинга логов. Для поиска событий в логах Nginx можно написать простой скрипт на Go, который будет читать файл лога и фильтровать строки по заданному условию.

Пример: поиск всех запросов с кодом ответа 500 (ошибка сервера).

package main

import (
    "bufio"
    "fmt"
    "os"
    "strings"
)

func main() {
    file, err := os.Open("/var/log/nginx/access.log")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        line := scanner.Text()
        // Предположим, что код ответа - это 9-й элемент, разделенный пробелами
        parts := strings.Fields(line)
        if len(parts) > 8 && parts[8] == "500" {
            fmt.Println(line)
        }
    }

    if err := scanner.Err(); err != nil {
        panic(err)
    }
}

Этот код открывает лог, читает его построчно и выводит только те строки, где HTTP-статус равен 500. Аналогично можно искать другие события, например, по IP, времени или URL.