什麼是日誌切割
㈠ logstash切割日誌,分隔符是中文逗號解析不了怎麼辦
通常日誌管理是逐漸崩潰的——當日誌對於人們最重要的時候,也就回是出現問題的時候,答這個漸進的過程就開始了。日誌管理一般會經歷一下3個階段:
初級管理員將通過一些傳統工具(如cat、tail、sed、awk、perl以及grep)對日誌進行檢查,但它的適用范圍僅限於少量的主機和日誌文件類型;
考慮到現實中的可擴展性問題,日誌管理也會逐步進化,使用如rsyslog和syslog-ng這樣的工具進行集中化的管理;
當日誌信息越來越大的時候,從快速增長的日誌數據流中提取出所需的信息,並將其與其他相關聯的事件進行關聯,將變得越加困難,此時LogStash就提供了一個很好的解決方案
㈡ 求日誌切割腳本 linux下的
如果是apache日誌的話,apache配置文件中支持按小時或者是按天分割
如果是單純的分割文件。方法很多 下面這個腳本是我以前寫的一個,可以指定大小對文件進行分割,只要略加修改,估計就能實現你要的功能。
#!/bin/bash
if [ $# -ne 2 ]; then
echo 'Usage: split file size(in MB)'
echo "Uselike: $0 file 1M"
exit
fi
file=$1
size=$2
let size=$2*1024*1024
if [ ! -f $file ]; then
echo "$file doesn't exist"
exit
fi
#TODO: test if $size is a valid integer
filesize=`/bin/ls -l $file | awk '{print $5}'`
echo filesize: $filesize
let pieces=$filesize/$size
let remain=$filesize-$pieces*$size
if [ $remain -gt 0 ]; then
let pieces=$pieces+1
fi
echo pieces: $pieces
i=0
while [ $i -lt $pieces ];
do
echo split: $file.$i:
dd if=$file of=$file.$i bs=$size count=1 skip=$i
let i=$i+1
done
㈢ 如何切割tomcat時間段日誌
(1)首先安裝cronolog
yum install cronolog -y
(2)修改Tomcat配置文件
先停止tomcat服務,然後修改以下文件:
%CATALINA_HOME%/bin/catalina.sh
將
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
替換為:
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
修改完畢後重新啟動tomcat服務。
㈣ linux下weblogic日誌分割怎麼做
問問題的人要會問來,回答問題的自人才會回答的,
weblogic的日誌默認是5M一個自動分割的
如果是啟動時的重定向輸出日誌你要做一個定期任務內容如下
cp nohup.out `date "+$nohup.out.%Y%m%d%H%M%S"`
>nohup.out
㈤ linux伺服器怎麼做日誌分割
這個腳本是在LNMP論壇看到的,你可以試試
腳本如下:
#!/bin/bash#function:cut nginx log files for lnmp v0.5 and v0.6#author: http://lnmp.org #設置你的日誌存放的目錄log_files_path="/home/wwwlogs/"#日誌以年/月的目錄形式存放log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")#設置需要進行日誌分割的日誌文件名稱,多個以空格隔開log_files_name=(access www.abc3210.com)#設置nginx的安裝路徑nginx_sbin="/usr/local/nginx/sbin/nginx"#Set how long you want to savesave_days=30 #############################################Please do not modify the following script #############################################mkdir -p $log_files_dir log_files_num=${#log_files_name[@]} #cut nginx log filesfor((i=0;i<$log_files_num;i++));domv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").logdone #delete 30 days ago nginx log filesfind $log_files_path -mtime +$save_days -exec rm -rf {} \;
$nginx_sbin -s reload
把上面的保存為.sh文件,然後給上可執行許可權,再配合Linux的計劃任務,完美拉~~~
㈥ 怎樣對 apache實現日誌切割
第一好題網 .1haoti.com
一、日誌切割
安裝cronolog
CentOS 5.4中編譯安裝Apache默認日誌是不切割的,需要用用工具Cronnolog進行日誌切割
1.下載及安裝
wget ://cronolog.org/download/cronolog-1.6.2.tar.gz
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
2.用which命令查看路徑驗證安裝
which cronolog
默認路徑為:/usr/local/sbin/cronolog
3.配置
vi /usr/local/apache/conf/d.conf
CustomLog 「|/usr/local/sbin/cronolog /usr/local/apache/logs/access_%Y%m%d.log」 combined 定義訪問日誌
ErrorLog 「|/usr/local/sbin/cronolog /home//ex/log/error_%Y%m%d.log」 定義錯誤日誌
保存配置文件後,重新載入或重啟apache服務即可生效。
service d restart
還有另外一種使用rotatelogs 方法:
Linux系統配置方法:
將其改為
ErrorLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_error_log 86400 480"
CustomLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_access_log 86400 480" common
Windows系統下配置方法:
#ErrorLog "|bin/rotatelogs.exe logs/error-%y%m%d.log 86400 480"
#CustomLog "|bin/rotatelogs.exe logs/access-%y%m%d.log 86400 480" common
二、apache日誌切割
輯Apache的主配置文件,更改內容如下:
注釋掉如下兩行
ErrorLog logs/error_log
CustomLog logs/access_log common
然後添加如下兩行
ErrorLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/errorlog.%Y-%m-%d-%H_%M_%S 2M +480"
CustomLog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/accesslog.%Y-%m-%d-%H_%M_%S 2M +480" common
意義如下:
errorlog.%Y-%m-%d-%H_%M_%S為生成日誌的格式,類似於這樣:errorlog.2010-04-15-11_32_30 ,以年月日時分秒為單位的,
2M 為日誌的大小,即為日誌達到多大後生成新的日誌文件,支持的單位為K,M,G,本處為2M
+480 為時差,文件的時間為美國時間,中國的時差要比美國多8個小時也就是480分鍾,所以要加上480分鍾
還有其他的設置方法如下:
每天生成一個錯誤日誌文件
ErrorLog "|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400"
其中86400為輪轉的時間單位為秒
㈦ tomcat日誌切割會不會影響elk收集日誌
一般習慣用 tail 的方式在伺服器查看。 如果要取下 可以用 tail -2000 xxxx.log > temp.log 的方式獲取最後2000行到temp.log,如回果要修改的話,修答改2000這個數字可以獲取不同行數。
㈧ nginx日誌切割腳本,手動執行沒問題,計劃任務執行得到的日誌文件為空,請問這是什麼問題啊
應該是沒執行完,設置斷點看一下在什麼地方中斷了。建議自動腳本裡面所有命令和參數都寫絕對路徑,有時候相對路徑的問題可能會影響命令的執行。
㈨ nginx日誌切割腳本怎麼運行
第一步就是重命名日誌文件,不用擔心重命名後nginx找不到日誌文件而丟失日誌。在你未重新打開原名字的日誌文件前,nginx還是會向你重命名的文件寫日誌,linux是靠文件描述符而不是文件名定位文件。
第二步向nginx主進程發送USR1信號。
nginx主進程接到信號後會從配置文件中讀取日誌文件名稱,重新打開日誌文件(以配置文件中的日誌名稱命名),並以工作進程的用戶作為日誌文件的所有者。
重新打開日誌文件後,nginx主進程會關閉重名的日誌文件並通知工作進程使用新打開的日誌文件。
工作進程立刻打開新的日誌文件並關閉重名名的日誌文件。
然後你就可以處理舊的日誌文件了。
二、腳本實現
nginx日誌按日期自動切割腳本如下:
復制代碼代碼如下:
#nginx日誌切割腳本
#!/bin/bash
#設置日誌文件存放目錄
logs_path="/usr/local/nginx/logs/"
#設置pid文件
pid_path="/usr/local/nginx/nginx.pid"
#重命名日誌文件
mv ${logs_path}access.log ${logs_path}access_$(date -d "yesterday" +"%Y%m%d").log
#向nginx主進程發信號重新打開日誌
kill -USR1 `cat ${pid_path}`
保存以上腳本nginx_log.sh,並設置定時切割任務
㈩ 怎麼實現forever的日誌分割
linux的話在來/etc/logrotate.d/目錄下新建自一個文件,填入以下內容即可:
/yourlogpath/yourlog.log {
truncate
daily
dateext
rotate 7
nocompress
missingok
}