Linux日誌分析

一、日誌基礎知識

1、什麼是日誌

日誌是記錄應用程序運行狀態和問題的文件,是查找和解決問題時重要的依據。Linux系統日誌文件一般位於/var/log目錄下,包括系統級別的日誌、應用級別的日誌等。

2、日誌種類

常見系統級別的日誌文件包括:

/var/log/messages:系統級別的日誌文件,包括內核、系統守護進程等的輸出信息。
/var/log/auth.log:系統認證相關的日誌文件。
/var/log/secure:用來記錄SSH連接的詳細情況。
/var/log/maillog:郵件系統相關的日誌文件,例如Postfix、Sendmail等。
/var/log/cron:維護系統Cron任務的日誌文件。
/var/log/kernel.log:記錄內核信息的日誌文件。
/var/log/syslog:包含進程日誌、內核日誌等所有系統級別的日誌。

3、日誌工具

一般使用以下命令查看和分析日誌文件:

tail -f /var/log/messages:實時查看系統日誌信息。
grep ERROR /var/log/messages:查找關鍵字ERROR所在的日誌信息。
less /var/log/messages:使用less命令分頁查看系統日誌信息。
sed -n /^Jun 29/ p /var/log/secure:查看6月29日SSH連接相關的日誌信息。

二、日誌分析工具

1、Syslog-NG

Syslog-NG是一個功能強大的系統日誌收集、處理和傳輸工具,並支持一些擴展功能,例如TLS加密、多線程處理等。常見的配置文件位於/etc/syslog-ng/目錄下。

安裝:yum install syslog-ng
啟動:systemctl start syslog-ng
配置:/etc/syslog-ng/syslog-ng.conf

2、Logwatch

Logwatch是一個日誌文件分析工具,使用Perl編寫,可以幫助用戶自動匯總系統日誌信息,並生成可讀的日誌報告。常見的配置文件位於/etc/logwatch/目錄下。

安裝:yum install logwatch
配置:/etc/logwatch/conf/logwatch.conf
執行:logwatch --mailto xxx@xxx.com

3、ELK

ELK是一組開源工具的縮寫,包括Elasticsearch、Logstash、Kibana。Elasticsearch是一個開源的全文搜索和分析引擎,Logstash是一個用於日誌數據收集和處理的工具,Kibana是一個Web界面,用於數據查詢、可視化展示等。ELK組合可以處理運行中的日誌數據,搜索、分析、可視化運行中的數據。

三、使用Python分析日誌數據

Python提供了許多處理日誌數據的庫和工具,例如regular expression(正則表達式)、pandas(數據處理)、matplotlib(數據可視化)等,可以方便地分析日誌數據。

下面是一個簡單的使用Python分析日誌的示例:

import re
import pandas as pd
import datetime
import matplotlib.pyplot as plt
 
logfile = open("/var/log/auth.log", "r")
records = []
 
for line in logfile:
    if 'Failed password' in line:
        time = datetime.datetime.strptime(' '.join(line.split()[:3]), '%b %d %H:%M:%S')
        ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', line )[0]
        records.append([time, ip])
 
data = pd.DataFrame.from_records(records, columns=["time", "ip"])
data['time'] = data['time'].dt.tz_localize('UTC').dt.tz_convert('Asia/Shanghai')
 
count = data.groupby([data.time.dt.hour])['ip'].count()
 
plt.plot(count)
plt.xlabel('Hour of Day')
plt.ylabel('# of Failed SSH attempts')
plt.title('Failed SSH Login Attempts by Hour')

以上代碼可以將SSH登錄失敗次數按小時進行分組,並使用matplotlib庫生成一張折線圖,更直觀地展示統計數據。詳細分析可以使用pandas庫對data數據進行統計和篩選操作。

四、結語

以上介紹了Linux日誌的基本知識、日誌分析工具和使用Python分析日誌數據的方法。對於Linux系統管理員,掌握日誌分析技術是必不可少的,可以更好地維護系統。

原創文章,作者:GSODX,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/371339.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GSODX的頭像GSODX
上一篇 2025-04-23 00:48
下一篇 2025-04-23 00:48

相關推薦

  • Cron執行日誌用法介紹

    本文將從多個方面對cron執行日誌進行詳細闡述,包括cron執行日誌的定義、cron執行日誌的產生原因、cron執行日誌的格式以及如何解讀cron執行日誌。 一、定義 Cron是一…

    編程 2025-04-29
  • Hibernate日誌打印sql參數

    本文將從多個方面介紹如何在Hibernate中打印SQL參數。Hibernate作為一種ORM框架,可以通過打印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows服務器上的日誌,並將其發送到遠程服務器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Log4j日誌打印到Systemout.log

    Log4j是Apache的一個強大的日誌組件,可以幫助開發者更好地管理日誌。在Java應用程序中,很多開發者都會選擇使用Log4j來實現日誌輸出。本文將介紹如何使用Log4j將日誌…

    編程 2025-04-28
  • 如何在Linux中添加用戶並修改配置文件

    本文將從多個方面詳細介紹在Linux系統下如何添加新用戶並修改配置文件 一、添加新用戶 在Linux系統下創建新用戶非常簡單,只需使用adduser命令即可。使用以下命令添加新用戶…

    編程 2025-04-27
  • 如何將Linux系統日誌發送到日誌服務器

    本文將介紹如何將Linux系統日誌發送到日誌服務器,以方便管理和監控系統狀態。 一、安裝rsyslog軟件包 rsyslog是Linux系統上默認的系統日誌軟件,用於收集系統事件和…

    編程 2025-04-27
  • 如何解決linux jar包 invalid or corrupt jarfile問題

    對於許多開發人員和系統管理員在Linux環境下使用Java開發過程中遇到的一個常見的問題是 invalid or corrupt jarfile(無效或損壞的jar文件)錯誤。當您…

    編程 2025-04-27
  • SpringBoot如何設置不輸出Info日誌

    本篇文章將帶您了解如何在SpringBoot項目中關閉Info級別日誌輸出。 一、為什麼要關閉Info日誌 在開發中,我們經常會使用Log4j、Logback等框架來輸出日誌信息,…

    編程 2025-04-27
  • 在Linux上安裝JRE並配置環境變量

    本文將從以下幾個方面為您詳細闡述如何在Linux系統上,通過自己賬戶安裝JRE,並且配置環境變量。 一、安裝JRE 在進行安裝前,我們需要下載JRE的安裝包並解壓,可以從官方網站下…

    編程 2025-04-27
  • GTKAM:Linux下的照片管理器

    GTKAM是用於Linux操作系統的一款照片管理器,它支持多種相機及存儲設備,並提供了一系列強大的工具,讓用戶可以方便地瀏覽、管理、編輯和導出照片。本文將從多個方面對GTKAM進行…

    編程 2025-04-27

發表回復

登錄後才能評論