Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk melaksanakan analisis log masa nyata di Linux?

Bagaimana untuk melaksanakan analisis log masa nyata di Linux?

PHPz
PHPzasal
2023-07-30 14:40:491500semak imbas

Bagaimana untuk melaksanakan analisis log masa nyata dalam Linux?

Dengan perkembangan pesat Internet, analisis log semakin menjadi tugas penting, membantu kami memahami status pengendalian sistem, penyelesaian masalah dan audit keselamatan. Dalam persekitaran Linux, keperluan untuk analisis log masa nyata menjadi semakin penting. Artikel ini akan memperkenalkan cara melaksanakan analisis log masa nyata dalam Linux dan memberikan contoh kod.

1. Lihat fail log
Pertama, kita perlu melihat fail log untuk dianalisis. Fail log biasanya terletak dalam direktori /var/log sistem Linux yang biasa digunakan ialah: /var/log/syslog (log sistem), /var/log/auth.log (log pengesahan), /var/. log/kern .log (log kernel), dsb. Dengan menggunakan ekor alat baris arahan, kita boleh melihat kandungan fail log dalam masa nyata.

Sebagai contoh, arahan berikut boleh melihat log sistem dalam masa nyata:
tail -f /var/log/syslog

2 Tapis kata kunci
Dalam analisis log sebenar, kami biasanya hanya menumpukan pada maklumat log yang berkaitan dengan kata kunci tertentu . Untuk menapis kata kunci dalam masa nyata, kita boleh menggunakan alat baris arahan grep.

Sebagai contoh, arahan berikut boleh menapis log sistem yang mengandungi kata kunci "ralat" dalam masa nyata:
tail -f /var/log/syslog | grep "error"

3. Selain menapis kata kunci , Kami juga mungkin perlu melaksanakan statistik pada maklumat log, seperti mengira kekerapan kata kunci tertentu. Untuk mencapai fungsi ini, kita boleh menggunakan alat baris arahan awk.

Sebagai contoh, arahan berikut boleh mengira kekerapan kata kunci "ralat" dalam log sistem dalam masa nyata:

tail -f /var/log/syslog | +} TAMAT { for (line in count) print line": "count[line]" times"}'

4 Analisis automatik

Untuk mencapai analisis log automatik, kami boleh menggunakan skrip shell dan tugasan berjadual cron dalam kombinasi. . Berikut ialah contoh skrip shell untuk pengiraan masa nyata bilangan kata kunci "ralat" yang muncul dalam log sistem seminit:

!/bin/bash

LOG_FILE="/var/log/syslog"

Kosongkan log

echo "" > ${LOG_FILE}_error.log

Tugasan berjadual, jalankan sekali setiap minit

sementara [ true ]

do

# 统计每分钟的错误次数
count=$(tail -n 100 ${LOG_FILE} | grep -c "error")

# 将统计结果输出到日志文件中
echo "$(date +"%Y-%m-%d %H:%M:%S"): ${count}" >> ${LOG_FILE}_error.log

# 休眠60秒
sleep 60

done

Simpan kod di atas ke fail skrip (such sebagai log_analysis sh) dan tambahkan kebenaran boleh laku.

Kemudian, kita boleh menggunakan tugas berjadual cron untuk melaksanakan skrip setiap minit:

          • /path/to/log_analysis.sh >/dev&
          • ;>/dev/
          • ;
    Dengan konfigurasi di atas, sistem akan secara automatik melaksanakan skrip log_analysis.sh setiap minit, mengira bilangan kata kunci "ralat" yang muncul dalam log sistem setiap minit, dan mengeluarkan keputusan ke /var/log /syslog_error.
Melalui langkah di atas, kita boleh mencapai analisis log masa nyata dalam Linux. Menggunakan alat baris perintah tail, grep, dan awk, kami boleh melihat dan menapis maklumat log dalam masa nyata dan dengan menggabungkan skrip shell dan tugas berjadual cron, kami boleh melaksanakan analisis log automatik. Dalam aplikasi praktikal, kod boleh diubah suai dan dioptimumkan mengikut keperluan untuk memenuhi keperluan analisis khusus.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan analisis log masa nyata di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn