linux下的日志采集---rsyslog

linux下的日志采集---rsyslog

2023年7月26日发(作者:)

linux下的⽇志采集---rsyslog⼀、linux⽇志⽂件及⽇志分析 1、linux⽇志简介 Linux系统拥有⾮常灵活和强⼤的⽇志功能,可以保存⼏乎所有的操作记录,并可以从中检索出我们需要的信息。⼤部分Linux发⾏版默认的⽇志守护进程为 syslog(后续升级rsyslog),位于 /etc/syslog 或 /etc/syslogd,默认配置⽂件为 /etc/,任何希望⽣成⽇志的程序都可以向syslog 发送信息。

Linux系统内核和许多程序会产⽣各种错误信息、警告信息和其他的提⽰信息,这些信息对管理员了解系统的运⾏状态是⾮常有⽤的,所以应该把它们写到⽇志⽂件中去。完成这个过程的程序就是syslog。syslog可以根据⽇志的类别和优先级将⽇志保存到不同的⽂件中。例如,为了⽅便查阅,可以把内核信息与其他信息分开,单独保存到⼀个独⽴的⽇志⽂件中。默认配置下,⽇志⽂件通常都保存在“/var/log”⽬录下。2、⽇志类型下⾯是常见的⽇志类型,但并不是所有的Linux发⾏版都包含这些类型:类型7lprmail说明⽤户认证时产⽣的⽇志,如login命令、su命令。与 auth 类似,但是只能被特定⽤户查看。针对系统控制台的消息。系统定期执⾏计划任务时产⽣的⽇志。某些守护进程产⽣的⽇志。FTP服务。/postedit/72920400系统内核消息。由⾃定义程序使⽤。与打印机活动有关。邮件⽇志。产⽣时间戳。系统每隔⼀段时间向⽇志⽂件中输出当前时间,每⾏的格式类似于 May 26 11:17:09 rs2 -- MARK --,可以由此推断系统发⽣故障的⼤概时间。⽹络新闻传输协议(nntp)产⽣的消息。⽹络时间协议(ntp)产⽣的消息。⽤户进程。UUCP⼦系统marknewsntpuseruucp3、常见⽇志⽂件所有的系统应⽤都会在/var/log ⽬录下创建⽇志⽂件,或创建⼦⽬录再创建⽇志⽂件。如:我们可以粗略的分为两类⽇志:系统⽇志和应⽤⽇志,系统⽇志主要存放系统内置程序或系统内核之类的⽇志信息如 、btmp等,应⽤⽇志主要是安装的第三⽅应⽤产⽣的⽇志如tomcat7 、apache2等。⽂件⽬录/⽇志名称/var/log//var/log//var/log/apt//var/log/apt/记录信息系统的⼀些更新替代信息记录,如系统软件包升级更新,记录了程序作⽤,⽇期,命令,成功与否的返回码应⽤程序崩溃信息记录,暂时这⽅⾯⽇志信息使⽤apt-get安装卸载软件的信息记录,包含时间、安装命令、版本信息、结束时间等使⽤apt-get时的具体操作,如 package 的下载打开等/var/log/apt/⽂件⽬录/⽇志名称/var/log//var/log//var/log/btmp/var/log/Consolekit/history/var/log/dist-upgrade/var/log/dmesg/var/log//var/log/faillog/var/log//var/log//var/log/lastlog/var/log/wtmp/var/log/syslog使⽤apt-get时的具体操作,如 package 的下载打开等记录信息登录认证的信息记录,包含:⽇期与 ip 地址的来源以及登陆的⽤户与⼯具系统启动时的程序服务的⽇志信息错误登陆的信息记录控制台的信息记录dist-upgrade这种更新⽅式的信息记录启动时,显⽰屏幕上内核缓冲信息,与硬件有关的信息dpkg命令管理包的⽇志。⽤户登录失败详细信息记录与字体配置有关的信息记录内核产⽣的信息记录,在⾃⼰修改内核时有很⼤帮助⽤户的最近信息记录登录信息的记录。wtmp可以找出谁正在登陆进⼊系统,谁使⽤命令显⽰这个⽂件或信息等系统信息记录⼆、rsyslog⽇志采集1、rsyslog介绍 linux下的⽇志是如何产⽣的,从上⾯可以看出⼤部分的⽇志信息似乎格式都都很类似,并且为什么都会出现在这个⽂件夹中。这样的实现可以通过两种⽅式,⼀种是由软件开发商⾃⼰来⾃定义⽇志格式然后指定输出⽇志位置,还有⼀种⽅式就是 Linux 提供的⽇志服务程序,⽽我们这⾥系统⽇志是通过 syslog来实现,提供⽇志管理服务。 syslog 是⼀个系统⽇志记录程序,在早期的⼤部分 Linux 发⾏版都是内置 syslog,让其作为系统的默认⽇志收集⼯具,虽然时代的进步与发展,syslog 已经年⽼体衰跟不上时代的需求,所以他被 rsyslog 所代替了,较新的Ubuntu、Fedora 等等都是默认使⽤ rsyslog 作为系统的⽇志收集⼯具 rsyslog的全称是 rocket-fast system for log,它提供了⾼性能,⾼安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输⼊,输出的结果到不同的⽬的地。rsyslog可以提供超过每秒⼀百万条消息给⽬标⽂件,这样能实时收集⽇志信息的程序都会有其守护进程如 rsyslog 的守护进程便是 rsyslogdrsyslog的特性:1.多线程    2.⽀持加密协议:ssl,tls,relp    、oracle、postgreSQL     4.过滤⽇志内容的部分信息 5.配置⽇志输出格式 6.等等..2、rsyslog配置1)⾸先查看⼀下当前linux系统中rsyslog是哪个版本,rsyslogd -version如果rsyslog不存在,安装rsyslog centos:yum -y rsyslogdebian:apt-get install rsyslog2)rsyslog配置⽂件配置⽂件/etc/⼤概分为三个部分:MODULES、GLOBAL DIRECTIVES、RULES  #MODULES  这个部分是针对接收配置的,主要是指定接收⽇志的协议和端⼝。若要配置⽇志服务器,则需要将相应的配置项去掉注释。  #GLOBAL DIRECTIVES  这个部分主要⽤来配置模板,模板的作⽤是指定你希望在⽇志⽂件中保存的⽇志格式。  默认配置为: # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormatdebian7默认的配置⽂件##################### MODULES #####################$ModLoad imuxsock #装载imuxsock模块$ModLoad imklog #装载imklog模块*.* @192.168.2.72:514############################### GLOBAL DIRECTIVES ###############################$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$FileOwner root$FileGroup adm$FileCreateMode 0640$DirCreateMode 0755$Umask 0022$WorkDirectory /var/spool/rsyslog$IncludeConfig /etc/rsyslog.d/*.conf################### RULES ###################auth,authpriv.* /var/log/*.*;auth, -/var/log/syslogdaemon.* -/var/log/n.* -/var/log/.* -/var/log/l.* -/var/log/r.* -/var/log/ -/var/log/ -/var/log/ /var/log/ /var/log/news/ /var/log/news/ -/var/log/news/*.=debug; auth,; ; -/var/log/debug*.=info;*.=notice;*.=warn; auth,; cron,; mail, -/var/log/messages*.emerg :omusrmsg:*daemon.*;mail.*; ; *.=debug;*.=info; *.=notice;*.=warn |/dev/xconsole3、rsyslog⼯作流程简单的来说:⾸先数据通过进⼊主队列,然后经由分解到各个⼦队列,最后交给。4、⽇志采集案例1)Apache⽇志配置远程Syslog采集第⼀步:初始化⽇志采集环境先确保系统中的/var/spool/rsyslog ⽬录已存在:mkdir -v /var/spool/rsyslogif [ "$(grep Ubuntu /etc/issue)" != "" ]; then chown -R syslog:adm /var/spool/rsyslogfi第⼆步:创建Apahce⽇志⽂件采集配置新建Rsyslog的⼦配置⽂件,他通常在/etc/rsyslog.d下,需要/etc/去包含这个⽬录下的⼦配置⽂件:vim /etc/rsyslog.d/复制以下内容到,注意注释部分的修改:$ModLoad imfile$InputFilePollInterval 10$WorkDirectory /var/spool/rsyslog$PrivDropToGroup adm## Apache访问⽇志⽂件路径,根据实际情况修改:$InputFileName /var/log/apache2/$InputFileTag apache-access:$InputFileStateFile stat-apache-access$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Apache错误⽇志⽂件路径,根据实际情况修改:$InputFileName /var/log/apache2/$InputFileTag apache-error:$InputFileStateFile stat-apache-error$InputFileSeverity error$InputFilePersistStateInterval 25000$InputRunFileMonitor## 指定⽇志格式模板:$template BiglogFormatApache,"%msg%n"## 注意syslog⽇志服务器接收地址,根据实际情况修改:if $programname == 'apache-access' then @:514;BiglogFormatApacheif $programname == 'apache-access' then ~if $programname == 'apache-error' then @:514;BiglogFormatApacheif $programname == 'apache-error' then ~注:通过Rsyslog配置⽇志接收端的时候,如上⽰例@:514,⽤于指定接收⽇志的服务器的协议、IP地址和端⼝号。使⽤@代表⾛UDP协议,使⽤@@代表⾛TCP协议,冒号后⾯的514代表接收端⼝。第三步:重启Rsyslog服务,⽇志采集开始⼯作service rsyslog restart此时可以通过观察系统中的Rsyslog⽇志,确定是否正常⼯作。cat /var/log/messages |grep rsyslog2)Linux系统⽇志配置远程Syslog采集第⼀步:创建Liunx系统⽇志采集配置新建Rsyslog的⼦配置⽂件,他通常在/etc/rsyslog.d下,需要/etc/去包含这个⽬录下的⼦配置⽂件:vim /etc/rsyslog.d/复制以下内容到,注意注释部分的修改:## 定义⽇志格式模板:$template BiglogFormatLinux,"%msg%n"## 注意syslog⽇志服务器接收地址,根据实际情况修改:*.* @:514;BiglogFormatLinux注:通过Rsyslog配置⽇志接收端的时候,如上⽰例@:514,⽤于指定接收⽇志的服务器的协议、IP地址和端⼝号。使⽤@代表⾛UDP协议,使⽤@@代表⾛TCP协议,冒号后⾯的514代表接收端⼝。第⼆步:重启Rsyslog服务,⽇志采集开始⼯作service rsyslog restart此时可以通过观察系统中的Rsyslog⽇志,确定是否正常⼯作。cat /var/log/messages |grep rsyslog3)Tomcat⽇志配置远程Syslog采集第⼀步:初始化⽇志采集环境先确保系统中的/var/spool/rsyslog ⽬录已存在:mkdir -v /var/spool/rsyslogif [ "$(grep Ubuntu /etc/issue)" != "" ]; then chown -R syslog:adm /var/spool/rsyslogfi第⼆步:创建Tomcat⽇志⽂件采集配置新建Rsyslog的⼦配置⽂件,他通常在/etc/rsyslog.d下,需要/etc/去包含这个⽬录下的⼦配置⽂件:vim /etc/rsyslog.d/复制以下内容到,注意注释部分的修改:$ModLoad imfile$InputFilePollInterval 10$WorkDirectory /var/spool/rsyslog$PrivDropToGroup adm## 指定⽇志格式模板:$template BiglogFormatTomcat,"%msg%n"## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag catalina-log$InputFileStateFile stat-catalina-log$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag catalina-out$InputFileStateFile stat-catalina-out$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag host-manager$InputFileStateFile stat-host-manager$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag initd$InputFileStateFile stat-initd$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag localhost-log$InputFileStateFile stat-localhost-log$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## Tomcat的路径,根据实际情况修改:$InputFileName /var/log/tomcat6/$InputFileTag manager$InputFileStateFile stat-manager$InputFileSeverity info$InputFilePersistStateInterval 25000$InputRunFileMonitor## 注意syslog⽇志服务器接收地址,根据实际情况修改:if $programname == 'catalina-log' then @:514;BiglogFormatTomcatif $programname == 'catalina-log' then ~if $programname == 'catalina-out' then @:514;BiglogFormatTomcatif $programname == 'catalina-out' then ~if $programname == 'host-manager' then @:514;BiglogFormatTomcatif $programname == 'host-manager' then ~if $programname == 'initd' then @:514;BiglogFormatTomcatif $programname == 'initd' then ~if $programname == 'localhost-log' then @:514;BiglogFormatTomcatif $programname == 'localhost-log' then ~if $programname == 'manager' then @:514;BiglogFormatTomcatif $programname == 'manager' then ~注:通过Rsyslog配置⽇志接收端的时候,如上⽰例@:514,⽤于指定接收⽇志的服务器的协议、IP地址和端⼝号。使⽤@代表⾛UDP协议,使⽤@@代表⾛TCP协议,冒号后⾯的514代表接收端⼝。第三步:重启Rsyslog服务,⽇志采集开始⼯作service rsyslog restart此时可以通过观察系统中的Rsyslog⽇志,确定是否正常⼯作。cat /var/log/messages |grep rsyslog

发布者:admin,转转请注明出处:http://www.yc00.com/news/1690377710a340437.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信