① syslogng部署,linux下的syslog日誌如何去看可以用幾個
Syslog日誌的作用: syslog 日誌可以幫我們主動的收集到設備的各種信息,並保存在syslog伺服器上,當某些設備出現故障的時候,我們可以省去手動收集信息的麻煩,方便快捷的從syslog伺服器中讀取設備的各種信息來進行分析排錯。 linux中日誌的類型: ...
② 如何將syslogng的日誌寫入MySQL資料庫
1、修改/etc/syslog-ng/syslog-ng.conf,添加
CODE:
source s_remote {
udp(ip(0.0.0.0) port(514));
};
destination r_mysql {
program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog < /var/log/mysql.pipe");
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log { source(s_remote); destination(r_mysql); };
2、建立mysql.pipe文件按
#mkfifo /var/log/mysql.pipe
3、重新啟動syslog-ng
#/etc/init.d/syslog-ng restart
這種方法如果結合phpsyslogng一起使用,就可以在瀏覽器中對日誌進行進一步的過濾和查看,非常方便。
③ 如何將syslogng的日誌寫入MySQL資料庫
轉載我在使用syslog-ng搭建日誌伺服器中已經講了如何將syslog-ng配置為中心日誌伺服器,下面介紹如何將syslogng的日誌寫入mysql資料庫
系統:Gentoo-2007
1、修改/etc/syslog-ng/syslog-ng.conf,添加
CODE:
source s_remote {
udp(ip(0.0.0.0) port(514));
};
destination r_mysql {
program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog < /var/log/mysql.pipe");
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log { source(s_remote); destination(r_mysql); };
2、建立mysql.pipe文件按
#mkfifo /var/log/mysql.pipe
3、重新啟動syslog-ng
#/etc/init.d/syslog-ng restart
這種方法如果結合phpsyslogng一起使用,就可以在瀏覽器中對日誌進行進一步的過濾和查看,非常方便。
④ syslog-ng的二、配置說明
syslog-ng的主配置文件存放在:/etc/syslog-ng/syslog-ng.conf syslog-ng的配置基於下面的架構:
引用
LOG STATEMENTS『SOURCES - FILTERS -DESTINATIONS』
消息路徑 『消息源 - 過濾器 - 目的站』
也就是說,通過定義多個消息源,把匹配上若干個過濾器的消息導向到指定的目的地,從而組成一個消息路徑。 定義格式為:
引用
source { sourcedriver params; sourcedriver params; ... };
含義:
引用
:一個消息源的標識
sourcedriver:消息源驅動器,可以支持若干參數,並使用分號「;」隔離多個消息源驅動器
消息源驅動器有:
引用
file (filename) : 從指定的文件讀取日誌信息
unix-dgram (filename) : 打開指定的SOCK_DGRAM模式的unix套接字,接收日誌消息
unix-stream (filename) : 打開指定的SOCK_STREAM模式的unix套接字,接收日誌消息
udp ( (ip),(port) ) : 在指定的UDP埠接收日誌消息
tcp ( (ip),(port) ) : 在指定的TCP埠接收日誌消息
sun-streams (filename) : 在solaris系統中,打開一個(多個)指定的STREAM設備,從其中讀取日誌消息
internal() : syslog-ng內部產生的消息
pipe(filename),fifo(filename) : 從指定的管道或者FIFO設備,讀取日誌信息
例如:
引用
source s_sys {
file (/proc/kmsg log_prefix(kernel: ));
unix-stream (/dev/log);
internal();
# udp(ip(0.0.0.0) port(514)); #如果取消注釋,則可以從udp的514埠獲取消息
};
※linux使用/dev/log作為SOCK_STREAMunix的套接字,BSD使用/var/run/log;
參數需要使用括弧括住。 定義格式為:
引用
filter { expression; };
含義:
引用
:一個過濾器標識
expression:表達式
表達式支持:
引用
邏輯操作符:and(和)、or(或)、not(非);
函數:可使用正規表達式描述內容
過濾函數有:
引用
facility(,): 根據facility(設備)選擇日誌消息,使用逗號分割多個facility
level(,): 根據level(優先順序)選擇日誌消息,使用逗號分割多個level,或使用「..」表示一個范圍
program(regexp): 日誌消息的程序名是否匹配一個正則表達式
host(regexp): 日誌消息的主機名是否和一個正則表達式匹配
match(regexp): 對日誌消息的內容進行正則匹配
filter(): 調用另一條過濾規則並判斷它的值
例如:
引用
filter f_filter2 { level(info..emerg) and
not facility(mail,authpriv,cron); };
※這里的level定義info,相當於syslog的.=info,並不包括更低的等級;
若需要包括更低的等級,請使用「..」表示一個等級范圍;
另外,filter(DEFAULT),用於捕獲所有沒有匹配上的日誌消息。filter(*)是無效的。 定義格式為:
引用
destination { destdriver params; destdriver params; ... ;};
含義:
引用
:一個目的地的標識
destdriver :目的地驅動器
目的地驅動器有:
引用
file (filename) :把日誌消息寫入指定的文件
unix-dgram (filename) :把日誌消息寫入指定的SOCK_DGRAM模式的unix套接字
unix-stream (filename) :把日誌消息寫入指定的SOCK_STREAM模式的unix套接字
udp (ip),(port) :把日誌消息發送到指定的UDP埠
tcp (ip),(port) :把日誌消息發送到指定的TCP埠
usertty(username) :把日誌消息發送到已經登陸的指定用戶終端窗口
pipe(filename),fifo(filename) :把日誌消息發送到指定的管道或者FIFO設備
program(parm) :啟動指定的程序,並把日誌消息發送到該進程的標准輸入
舉例:
引用
destination d_mesg { file(/var/log/messages); };
destination d_syslog { udp (192.168.228.225 port(514)); };
※配合使用udp或tcp即可實現集中的日誌伺服器。注意,udp函數的寫法上和消息源驅動器中的定義不同。 定義格式為:
引用
log { source S1; source S2; ... filter F1; filter F2; ... destination
D1; destination D2; ... };
把消息源、過濾器、消息目的組合起來就形成一條完整的指令。日誌路徑中的成員是順序執行的。凡是來源於指定的消息源,匹配所有指定的過濾器,並送到指定的地址。
※同樣的,每條日誌消息都會經過所有的消息路徑,並不是匹配後就不再往下執行的,請留意。
⑤ syslog-ng如何收集windows日誌嗎
我在使用syslog-ng搭建日誌伺服器中已經講了如何將syslog-ng配置為中心日誌伺服器,下面介紹如何將syslogng的日誌寫入mysql資料庫
系統:Gentoo-2007
1、修改/etc/syslog-ng/syslog-ng.conf,添加
CODE:
source s_remote {
udp(ip(0.0.0.0) port(514));
};
destination r_mysql {
program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog < /var/log/mysql.pipe");
pipe("/var/log/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC',
'$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log { source(s_remote); destination(r_mysql); };
2、建立mysql.pipe文件按
#mkfifo /var/log/mysql.pipe
3、重新啟動syslog-ng
#/etc/init.d/syslog-ng restart
這種方法如果結合phpsyslogng一起使用,就可以在瀏覽器中對日誌進行進一步的過濾和查看,非常方便。
⑥ syslog-ng 是否可以記錄網路設備(交換機、防火牆)的日誌信息
看不同的產商了
⑦ syslog-ng如何配置ipv6
前面詳細介紹了sysklog套件的配置和使用。但畢竟該套件已經比較老了,很多功能都不夠完善,而系統日誌又是系統維護中至關重要的參考信息。我們可以使用syslog-ng(下一代系統日誌工具)來替代原來的sysklog服務。syslog-ng可以通過對日誌信息執行正規表達式過濾,並且支持主機鏈方式等工作,都能更好的協助我們管理主機。紅旗DC Server 5.0上默認就安裝有該套件,可以直接使用。
⑧ syslog-ng的一、基礎
系統自帶版本:
引用
# rpm -qa|grep syslog-ng
syslog-ng-1.6.7-1
syslog官方網站:
點擊
最新版本是2.0.5。
為方便使用,暫以系統自帶的版本1.6.7說明,以後再提供更新的rpm包。 使用syslog-ng前,建議先詳細了解syslog的概念。
例如,什麼是facility(設備),level(等級)。可以參考這里:
點擊
否則,後面的說明可能會有點不知所雲的。 若不增加其他設定,可通過下面的簡單命令即可替換原syslog服務:
# service syslog stop
# service syslog-ng start syslog-ng替代syslog是基於以下的設計原則的:
引用
a、通過正規表達式協助,除支持原facility/level方式,還支持內容過濾等以建立更好的消息過濾機制;
b、支持主機鏈,即使日誌消息經過多重網路轉發,仍可找到原發出主機的信息和整個消息鏈;
c、支持強大的自定義配置,並且清晰、明了。