Middle
Heb je ervaring met het parseren van logs? Kun je iets schrijven om gebeurtenissen in Nginx logs te zoeken?
sobes.tech AI
Antwoord van AI
Да, есть опыт парсинга логов. Для поиска событий в логах 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.