syslog-ng配置日志服务器学习总结.docx
11页背景:因为项目需要,现使用syslog-ng搭建一台日志服务器,简单来说就是利 用我们现有的虚拟机中的syslog-ng服务,搭建一台用于专名存放其他虚拟机(也 包括自己)所产生的日志由于一些用户以后将没有权限直接访问我们的 ebackup 服务器,但又需要查看日志便可以用过这台日志服务器来查看 日志服务器中的日志目录按照一定的规则设定,如“日期 +主机名”等自行设定Syslog-ng 介绍:syslog-ng作为syslog的替代工具,可以完全替代syslog的服务,并且通过定义 规则,实现更好的过滤功能本次日志服务器的搭建是用的 syslog-ng ,关于syslog的具体描述可以参考下面的链接 的主配置文件存放在:/etc/syslog-ng/syslog-ng.conf 中首先需要 简单介绍一下 syslog-ng 的架构yslog-ng.conf 中所有配置都是基于 syslog-ng 的这样一种架构:LOGSTATEMENTSOURCES- FILTERS — DESTINATIONS 即: 消息路径『消息源一过滤器一目的站』也就是说,通过定义多个消息源,把匹配上若干个过滤器的消息导向到指定的目 的地,从而组成一个消息路径。
1)、消息源 source格式为: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(););};参数需要使用括号括住。
2)、过滤器 FILTERS定义格式为:filter { expression; };表示一个过滤器标识,逻辑 操作符:and(和)、or (或)、not (非);可使用 正规表达式描述内容过滤函数有:facility根据facility (设备)选择日志消息,使用逗号分割多个 facilitylevel(,):根据level (优先级)选择日志消息,使用逗号分割多个level,或 使用”.表示一个范围program( regexp):日志消息的程序名是否匹配一个 正则表达式host(regexp):日志消息的主机名是否和一个正则表达式匹配match(regexp):对日志消息的内容进行正则匹配filter调用另一条过滤规则并判断它的值例如:filter f_filter2 { level(info..emerg) and not facility(mail,authpriv, cron); };(3)、目的地 DESTINATIONS定义格式为: destination { destdriver params; destdriver params; ... ;}; 表示 一个目的地的标识目的地驱动器有: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)); };(4、)消息路径 LOG STATEMENTS定义格式为:log { source S1; source S2; ... filter F1; filter F2; ... destination D1; destination D2; ... };把消息源、过滤器、消息目的组合起来就形成一条完整的指令。
日志路径中的成员是顺序执行的凡是来源于指定的消息源,匹配所有指定的过滤器,并送 到指定的地址Syslog-ng 的搭建:根据上面的介绍和查阅相关资料之后, 就可以着手搭建一台日志服务器了 条件是至少准备两台虚拟机,其中一台作为日志服务器,另一台作为客户端由于 FC上的虚拟机操作系统中自带了 syslog-ng,版本为2.0.所以我们不用自己安装 syslog-ng可以通过命令查看syslog-ng的版本:命令:rpm -qa | grep syslog-ngsyslog-ng-2.0.9-27.32.1首先是服务器端的配置:1、建立一个日志文件夹,用于保存接收到的日志mkdir /var/log/syslog-ng2、编辑配置文件,syslog-ng的相关配置都是在/etc/syslog-ng/syslog-ng.conf 文件中保存的我们根据上面的架构来配置vi /etc/syslog-ng/syslog-ng.conf设置全局变量,打开syslog-ng.conf之后,注释掉原来的options{ ,, };也可以不注释,具体根据自己规则来选择参数,所有参数如下:chain_hostnames(yes|no) :是否打开主机名链功能,打开后可在多网络段转发日志时有效long_hostnames(yes|no) :是 chain_hostnames 的另U名,已不建议使用keep_hostname(yes|no) :是否保留日志消息中保存的主机名称,否时,总是使用房源主机来作重写日志的主机名use_dns(yes|no):是否打开DNS查询功能,应使用防火墙保护使用 syslog-ng的节点安全,并确认所有主机都是可以通过 dns解释的,否则请关闭 该选项。
use_fqdn(yes|no):是否使用完整的域名check_hostname(yes|no) :是否检查主机名有没有包含不合法的字符bad_hostname( regexp ):可通过正规表达式指定某主机的信息不被接受dns_cache(yes|no) :是否打开DNS缓存功能dns_cache_expire(n) : DNS缓存功能打开时,一个成功缓存的过期时间dns_cache_expire_failed( n) : DNS缓存功能打开时,一个失败缓存的过 期时间一 一 一dns_cache_size(n) : DNS缓存保留的主机名数量create_dirs(yes|no):当指定的目标目录不存在时,是否创建该目录dir owner(uid) :目录的 UIDdir_group(gid) :目录的 GIDdir_perm(perm):目录的权限,使用 八进制方式标注,例如0644owner(uid):文件的 UIDgroup(gid):文件的 GIDperm(perm):文件的权限,同样,使用八进制方式标注gc_busy_threshold(n) :当syslog-ng忙时,其进入垃圾信息收集状态的 时间。
一旦分混的对象达到这个数字,syslog-ng就启动垃圾信息收集状态默 认值是:3000gc_idle_threshold(n) :当syslog-ng空闲时,其进入垃圾信息收集状态 的时间一旦被分派的对象到达这个数字,syslog-ng就会启动垃圾信息收集状 态,默认值是:100log_fifo_size(n):输出队列的行数log_msg_size(n) :消息日志的最大值(bytes)mark(n):多少时间(秒)写入两行 MARK信息供参考,目前没有实现stats(n ):多少时间(秒)写入两行 STATUS信息供,默认值是:600sync(n):缓存多少行的信息再写入文件中,0为不缓存,局部参数可以覆 盖该值time_reap(n):在没有消息前,到达多少秒,即关闭该文件的连接time_reopen(n):对于死连接,到达多少秒,会重新连接use_time_recvd(yes|no) :宏产生的时间是使用接受到的时间, 还是日志中记录的时间;建议使用 R_的宏代替接收时间,S_的宏代替日志记录的时间,而不要依靠该值定义例如:options { sync (0); time_reopen (10); log_fifo_size (1000);long_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (no); keep_hostname (yes);};配置如下:4 j -Jr 1. JI . . J I i y i- 4 二 ■ . 4.41 I. , ■ .37r 珅 I IM* I/即E犯]:d-L fkgh_Lin“使卜*; tii»r_nKipHfn i| IdJ j4 issJf s imoh 小 UM二 kdflWu; , chis-n* t [□ Ff J;/。
■斑Ldw4 ■ nwF»r(ran t ];L qriXpd巾Ml;S 1盟h弓 MiriXL 口匕口M4 CLUQ) port [里30 ] pqrt [酎却】k-叩丁 LhIrnir口Im* _L tvipliLoicapfr(no]। )i,ob_Ioq ( filar /『「一 一『 i i > : ■ .. : , ■ 飞 L >;14 .冲 i' f j i" t ug- /1। pt ilttaip Vat 11}j destirati=>n =hackLp_L[>q { - - - -U -D T ":- -I - r ■. ' pen (0777) f t snp I at s (t_ 111st avplata Sfit log < utretn^are); 陶r卬叫削】:卜64 t。





