當前位置:首頁 » 編程軟體 » 日誌分析腳本

日誌分析腳本

發布時間: 2023-01-10 03:40:22

linux 下學習哪種腳本語言好

Linux系統下學習shell腳本語言比較好,對於一些常見的系統腳本使用Shell開發會更簡單、更快速,例如:讓軟體一鍵自動化安裝、優化,監控報警腳本,軟體啟動腳本,日誌分析腳本等,雖然php/python語言也能夠做到這些,但是,考慮到掌握難度、開發效率、開發習慣等因素,它們可能就不如Shell腳本語言流行及有優勢了。對於一些常規的業務應用,使用Shell更符合Linux運維簡單、易用、高效的三大基本原則。

㈡ python腳本分析/var/log/secure登錄日誌並處理

因為自己有伺服器,發現/var/log/secure 日誌中最近出現大量驗證失敗的日誌,故找了個腳本跑了下,具體如下

創建成功後給腳本加執行許可權後即可運行,默認將失敗IP錯誤次數達到50次以上的就會加入到/etc/hosts.deny中進行拒絕連接處理。

建議將腳本增加crontab 定時任務自動處理,間隔10分鍾處理一次

㈢ 如何編寫自己的Web日誌分析腳本

具體地說,腳本通過利用應用程序或工具的規則和語法來表達指令,以控制應用程序(包括注冊表程序)中各種元素的反應,也可以由簡單的控制結構(例如循環語句和If/Then語句)組成,這些應用程序或工具包括網頁瀏覽器(支持VBScript,Jscript),多媒體製作工具,應用程序的宏(比如Office的宏)以及我們熟悉的注冊表工具(regedit.exe)等.操作系統中的批處理也可以歸入腳本之列,批處理程序也經常由Windows環境中的"腳本"替換,所以又稱腳本是"Windows時代的批處理".

腳本的作用在每一種應用程序中起的作用都是不一樣的,比如在網頁中可以實現各種動態效果,各種特效處理,實現各種HTML不能實現的功能.而在Office組件中,我們會經常看到"宏"這個工具,它其實就是一系列命令和指令可以實現任務執行的自動化.

腳本多以「vbs」、「bat」結尾。可以用「記事本」或「按鍵精靈」編輯。

㈣ 如何編寫自己的Web日誌分析腳本

不要使用版本檢測,而要使用能力檢測 由於瀏覽器的類型和版本太多,

㈤ 如何shell命令編寫自己的Web日誌分析腳本

一、讀取文件
按照上面的思路,先解決讀取問題。這里我用了判斷語句,起初我是想寫出類似於 access=more
/usr/access*.*,將這個路徑全部加到變數里,方便判斷,因為在shell里,只能將固定文件、文件夾作為變數,變數中不能加*號(我是沒找到別的方法,有知道大牛請提點下小弟),所以就想了個笨辦法,用匹配關鍵詞的方式來判斷特定目錄下,是apache日誌,還是weblogic日誌,還是IIS日誌,具體判斷方法如下:
if ls -l /usr/ | egrep "access";then
more /usr/access*.* | egrep "多個關鍵詞"
else
more /usr/ex*.log | egrep 「多個關鍵詞」
fi
這樣的方式來進行判斷,但是這樣判斷有個缺點,就是中間件日誌在/usr/目錄下,只能存在一種,比如同時存在apache和IIS的日誌,就會優先判斷apache的,進而不會執行IIS日誌分析的語句。而且,為了不跟之前的歷史數據混亂,在腳本執行開始,清空了下數據。
file=/usr/nmgxy/
if [ -e "$file" ];then
echo "日誌目錄存在,跳過創建過程,該操作會清空/usr/nmgxy/目錄下所有數據"
echo "按回車鍵開始清空數據,結束請點擊Ctrl+c"
read key
rm -r /usr/nmgxy/*
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
else
mkdir -p /usr/nmgxy/ /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/
/usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
fi
echo "分析結果日誌保存在/usr/nmgxy/目錄下"
echo ---------------------日誌目標文件---------------------------
if ls -l /usr/ | egrep "access";then
echo --------------------統計出現次數最多的前20個IP地址-----------------
cat /usr/access*.* |awk '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/top20.log
echo "統計完成"
二、定義攻擊特徵
日誌讀取的問題解決了,接下來就是定義攻擊特徵的事兒了,攻擊特徵比較好定義。例如,SQL注入攻擊的判斷:
echo ------------------------SQL注入攻擊sql.log----------------
echo "開始分析存在SQL注入的攻擊行為,並將結果保存在/usr/nmgxy/sql/目錄下"
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
echo "分析結束"
awk '{print "共檢測到SQL注入攻擊" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
echo "開始統計SQL注入攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "統計結束"
我把一些常見的SQL注入攻擊的特徵寫到了裡面,去掉了MSSQL資料庫存儲過程以及MSSQL資料庫才會出現的一些注入語句。
三、輸出匹配到的含有攻擊特徵的記錄
將匹配到的攻擊特徵內容,重新輸出到了另外一個log裡面,相當於做了一次篩選/usr/nmgxy/sql/sql.log
more /usr/access*.* |egrep
"%20select%20|%20and%201=1|%20and%201=2|%20exec|%27exec|
information_schema.tables|%20information_schema.tables|%20where%20|%20union%20|%20SELECT%20|%2ctable_name%20|cmdshell|%20table_schema"
>/usr/nmgxy/sql/sql.log
然後二次分析這個篩選過的文件,統計SQL注入攻擊出現的次數
awk '{print "共檢測到SQL注入攻擊" NR"次"}' /usr/nmgxy/sql/sql.log|tail -n1
輸出完畢後,將攻擊出現最多的前20個IP地址進行統計並顯示到屏幕上
echo "開始統計SQL注入攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/sql/sql.log |awk -F "[" '{print $1}' |sort |uniq -c |sort -rn |head -20 >/usr/nmgxy/sql/top20.log
echo ----------------------------------------------------------
more /usr/nmgxy/sql/top20.log
echo "統計結束"
四、輸出結果
這個在代碼開頭,創建了一些文件夾,用來存放篩選過的記錄
mkdir -p /usr/nmgxy/LFI/ /usr/nmgxy/exp/ /usr/nmgxy/sql/ /usr/nmgxy/scan/ /usr/nmgxy/xss/ /usr/nmgxy/getshell/ /usr/nmgxy/dir/
中間刪刪改改折騰了好幾次。後來針對特定的攻擊,我們比較關注(重點是比較好寫的= =)的內容做了HTTP響應請求200/500的判斷,並輸出結果。
echo -------------------------getshell-getshell.log----------------
echo "開始分析存在getshell的攻擊行為,並將結果保存在/usr/nmgxy/getshell/目錄下"
more /usr/access*.* |egrep "
eval|%eval|%execute|%3binsert|%20makewebtaski%20|/div.asp|/1.asp|/1.jsp|/1.php|/1.aspx|xiaoma.jsp|tom.jsp|py.jsp|k8cmd.jsp|/k8cmd|ver007.jsp|ver008.jsp|ver007|ver008|%if|\.aar"
>>/usr/nmgxy/getshell/getshell.log
echo "分析結束"
echo "二次分析結果中HTTP響應碼為200和500,結果另存為/usr/nmgxy/getshell/ok.log"
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=200) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >/usr/nmgxy/getshell/ok.log
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2"
"$3" "$4" "$6" "$7" "$8" "$9}}' >>/usr/nmgxy/getshell/ok.log
echo "二次分析結束"
awk '{print "共檢測到getshell行為" NR "次"}' /usr/nmgxy/getshell/getshell.log|tail -n1
echo "開始統計漏洞利用攻擊事件中,出現頻率最多的前20個IP地址"
cat /usr/nmgxy/getshell/getshell.log |awk -F "[" '{print $1}' |sort
|uniq -c |sort -rn |head -20 >/usr/nmgxy/getshell/top20.log
echo ---------------------------------------------------------------
more /usr/nmgxy/getshell/top20.log
echo "統計結束"
統計HTTP響應狀態,IIS和apache有點區別。apache我以默認空格為分隔符,判斷第9個分隔符是否為200或500,如果等於,則輸出全部內容
more /usr/nmgxy/getshell/getshell.log | awk '{if($9=500) {print $1" "$2" "$3" "$4" "$6" "$7" "$8" "$9}}'
而IIS的,我則是用獲取關鍵詞的方式,來進行判斷。
more /usr/nmgxy/getshell/getshell.log | egrep " 200" >/usr/nmgxy/getshell/ok.log
用egrep的方式,關鍵詞為" 200",200前面有個空格,如果不加空格的話,很容易跟其他的參數混起來,那個時候誤報就不是一點點了。例如asp?id=200,所以加入了空格做區分。
IIS和nginx的思路類似,唯一的區別就是特徵碼,稍微有點改動而已,這個就不一一例舉了。思路就是這個思路,其實後期想把報告整體輸出成HTML的方式,估計工作量挺大,這個還是得閑下來的時候,慢慢修改吧。
PS:這個腳本雖然寫的比較粗糙,但是精確度還是有的,測試了幾十次,精確度能達到至少80%以上。
分析1個多G的日誌文件,需要大致約30多秒左右,我是在虛擬機里做的測試。虛擬機ubuntu系統,1G的內存。
不見得能幫上大忙,至少可以給大家在分析日誌時節省點時間。。。。
先貼出apache、weblogic、IIS的腳本代碼,weblogic的從網盤直接下載就好。apache、weblogic、IIS的腳本代碼:

㈥ 求一mysql日誌分析批處理腳本

用於解決什麼問題?

㈦ 巧用批處理工具分析monkey日誌

我們用monkey做壓力測試後,會保存一個monkey日誌,那如果想快速的分析日誌中有哪些異常,我們可以用批處理工具進行快速的篩查,我們一起來看看吧。

先編寫個小腳本,然後修改為bat後綴即可;然後把monkey日誌拖動到bat工具中即可快速篩查。

小腳本如下:

@ECHO OFF

ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::

ECHO.:: 分析Monkey日誌 ::

ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::

REM 方法一:手動設置Monkey日誌路徑

SET monkeyLogFile=D:*info.log

REM 方法二:直接將Monkey日誌拖到此bat文件上

IF NOT "%1"=="" SET monkeyLogFile=%1

ECHO.[ INFO ] Monkey日誌: %monkeyLogFile%

ECHO.[ INFO ] 開始分析

SET blnException=0

ECHO.

ECHO.

REM 如果覺得分析太快,沒有感覺,把下面注釋去掉假裝分析中,有停頓感

REM ping -n 2 127.0.0.1>nul

::ANR日誌

FOR /F "delims=" %%a IN ('FINDSTR /C:"ANR" %monkeyLogFile%') DO (

SET strANR=%%a

)

::崩潰日誌

FOR /F "delims=" %%a IN ('FINDSTR /C:"CRASH" %monkeyLogFile%') DO (

SET strCRASH=%%a

)

::異常日誌

FOR /F "delims=" %%a IN ('FINDSTR /C:"Exception" %monkeyLogFile%') DO (

SET strException=%%a

)

::正常

FOR /F "delims=" %%a IN ('FINDSTR /C:"Monkey finished" %monkeyLogFile%') DO (

SET strFinished=%%a

)

IF NOT "%strANR%" == "" (

ECHO.[ INFO ] 分析Monkey日誌存在: ANR

ECHO.[ INFO ] ------------------------------------

ECHO. "%strANR%"

SET /a blnException+=1

ECHO.

)

IF NOT "%strCRASH%" == "" (

ECHO.[ INFO ] 分析Monkey日誌存在: CRASH

ECHO.[ INFO ] ------------------------------------

ECHO. "%strCRASH%"

SET /a blnException+=1

ECHO.

)

IF NOT "%strException%" == "" (

ECHO.[ INFO ] 分析Monkey日誌存在: 異常

ECHO.[ INFO ] ------------------------------------

ECHO. "%strException%"

SET /a blnException+=1

)

IF NOT "%strFinished%" == "" (

ECHO.[ INFO ] 分析Monkey日誌存在: 執行成功標記

ECHO.[ INFO ] ------------------------------------

ECHO. "%strFinished%"

ECHO.

) ELSE (

IF %blnException% EQU 0 ECHO.[ INFO ] 分析Monkey日誌結果: Monkey執行異常中斷,請重新執行Monkey腳本!

ECHO.

)

REM 如果blnException不為0,說明存在異常,改變字體為淡紫色

IF %blnException% NEQ 0 (

Color 0D

ECHO.[ INFO ] 分析Monkey日誌結果:存在異常日誌,請手工再仔細檢查!

ECHO.

) ELSE (

ECHO.[ INFO ] 分析Monkey日誌結果:正常

ECHO.

)

ECHO.

ECHO.[ EXIT ] 按任意鍵關閉窗口...

PAUSE>nul

㈧ 如何用shell腳本分析網站日誌統計PV,404,500等數據

通過nginx的訪問日誌來分析
推薦使用awk命令完成

㈨ linux下對於日誌分析統計哪種腳本語言比較好

python或者awk吧, python能做成網站, awk可以直觀的做成報表的, 這個都能做到的哦
能否看看wo的網名呢?這個問題可以幫助搞定一下的哦

㈩ 如何shell命令編寫自己的Web日誌分析腳本

根據你的需要,把日誌文件定時放到某個目錄保存
然後對文件進行分析,grep出你需要的信息
然後可以重定向文件到別的新目錄
最後把你需要的文件打包歸檔處理

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:593
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:888
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:582
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:765
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:684
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1013
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:255
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:114
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:806
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:713