編寫日誌採集系統
邏輯分析
1.找到伺服器上日誌存在的目錄,因為日誌可能正在編寫,防止讀取檔案的時候,日誌檔名的改變,所以將編寫完成的日誌移動到某乙個臨時的資料夾下
2.在臨時資料夾下將檔案上傳至hdfs系統中
3.將讀取的檔案移動到某種備份檔案中,設定為24小時後自動刪除
採集日誌**
public
class
collecttask
//獲取檔案下的所有資料夾的資訊
//獲取到目標檔案下的所有檔案呢資訊 將其移動到暫時資料夾下
file[
] files = weblogfile.
listfiles
(new
filenamefilter()
});//移動 過濾後的檔案到 臨時檔案中
for(file file : files)
//往hdf中上傳
//建立訪問 資訊名稱
configuration entries =
newconfiguration()
; entries.
set(
"fs.defaultfs"
,"hdfs://cp04:9000");
//設定 root身份
system.
setproperty
("hadoop_user_name"
,"root");
// 設定 不可覆蓋在 linux中可執行存在
// 設定hdfs 中的目標路徑
filesystem filesystem = filesystem.
get(entries)
; path drictorfile =
newpath
(destproperties)
;//判斷檔案是否存在if(
!filesystem.
exists
(drictorfile)
)//獲取乙個時間 格式來放到檔案的名稱中
date date =
newdate()
; ******dateformat ******dateformat =
new******dateformat
("yyyy-mm-dd-hh");
string nowtime = ******dateformat.
format
(date)
;//將檔案 放在hdfs檔案中
file[
] tempfiles = tempfile.
listfiles()
;//電腦的名字
inetaddress localhost = inetaddress.
getlocalhost()
;//備份檔案
file backupsfile =
newfile
(backupfileproperties+
"/"+nowtime);if
(!backupsfile.
exists()
)for
(file file : tempfiles)
}}
定時清理過期檔案
public
class
cleartask
extends
timertask
}catch
(parseexception e)
catch
(ioexception e)}}
}
利用懶漢模式模擬多執行緒情況
public
class
loadproperties
public string getlogtempfile()
public string getuploadtmpdir()
public string getlogbackupdir()
public string gethdfsdestfile()
private loadproperties (
)/**
* 建立單列模式 加2層判斷是為了 防止防止執行緒等待 和執行緒new 2 個 物件出來
*/public
static loadproperties getloadproperties()
}}return loadproperties;
}}
配置檔案載入
log.web.file=h:
/idea/hadoop/src/hp/log
log.temp.file=h:
/idea/hadoop/src/hp/temp
upload.tmp.dir=debug.log
log.backup.dir=h:
/idea/hadoop/src/hp/backups
hdfs.dest.file=
/webserve/day02/logmessage
syslog日誌系統 日誌採集
日誌採集介面把接收過來的日誌資料寫入到日誌檔案,日誌檔案以天為單位進行儲存。介面採用 ignoretoken標記不需要進行令牌校驗。採用 crossorigin標記,讓介面能夠跨域訪問,支援ajax跨域請求。apioperation value 提交日誌 apiimplicitparams path...
syslog日誌系統 日誌採集
摘自 日誌採集介面把接收過來的日誌資料寫入到日誌檔案,日誌檔案以天為單位進行儲存。介面採用 ignoretoken標記不需要進行令牌校驗。採用 crossorigin標記,讓介面能夠跨域訪問,支援ajax跨域請求。apioperation value 提交日誌 apiimplicitparams l...
安裝elk,日誌採集系統
elasticsearch安裝 wget 注意es不能在root下執行 vim etc security limits.conf soft nofile 65536 hard nofile 131072 soft nproc 2048 hard nproc 4096 開啟 etc security ...