① 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、支持强大的自定义配置,并且清晰、明了。