zoukankan      html  css  js  c++  java
  • 日志配置

    日志配置

    	程序包:rsyslog
    		rpm -ql rsyslog
    			centos6
    				/etc/logrotate.d/syslog
    				/etc/pki/rsyslog
    				/etc/rc.d/init.d/rsyslog
    				/etc/rsyslog.conf
    				/etc/rsyslog.d
    				/etc/sysconfig/rsyslog
    				/lib64/rsyslog
    				/sbin/rsyslogd/
    				/usr/share/doc/rsyslog-5.8.10
    				/usr/share/man/man5/rsyslog.conf.5.gz
    				/usr/share/man/man8/rsyslogd.8.gz
    				/var/lib/rsyslog
    			centos7
    				/etc/logrotate.d/syslog
    				/etc/pki/rsyslog
    				/etc/rsyslog.conf
    				/etc/rsyslog.d
    				/etc/sysconfig/rsyslog
    				/usr/bin/rsyslog-recover-qi.pl
    				/usr/lib/systemd/system/rsyslog.service
    				/usr/lib64/rsyslog/
    				/usr/sbin/rsyslogd
    				/usr/share/doc/rsyslog-7.4.7
    				/usr/share/man/man5/rsyslog.conf.5.gz
    				/usr/share/man/man8/rsyslogd.8.gz
    				/var/lib/rsyslog
    	主程序:
    		rsyslogd
    
    	配置文件:
    		/etc/rsyslog.conf 
    		/etc/rsyslog.d/*.conf
    
    	库文件: 
    		/lib64/rsyslog/*.so
    
    	配置文件的格式:
    		1》由三部分组成
    			MODULES:	相关模块配置
    			GLOBAL DIRECTIVES:	全局配置
    			RULES:	日志记录相关的规则配置
    		2》规则rules的配置格式:
    			facility.priority;facility.priority        target
    			设施 . 级别                                  位置
    		3》facility:
    			*:	所有的facility
    			facility1,facility2,.... :	指定的facility列表
    		4》priority:
    			*:	所有级别的日志信息
    			none:	没有级别,即不记录
    			priority_name:	(8中级别之一)指定级别(含)以上的所有级别的日志信息
    			=priority_name:	(8中级别之一)仅记录指定级别的日志信息
    		5》facility和priority中间可以使用一些符号来表示特殊意义:
    			.	点号表示比后面还要高的等级(含)都要被记录下来
    			.=	表示所有需要的等级就是后面所接的等级,其他的不要
    			.!	代表不等于后面多接的等级,即除了这个等级外的都将记录
    		6》target:
    			日志信息发送的位置。
    			1)文件路径:通常在/var/log/ ,文件路径前的 - 表示异步写入。
    			2)用户:将日志事件通知给指定的用户,* 表示登录的所有用户。
    			3)日志服务器:@server_host ,把日志送往至指定的远程服务器记录。注意,服务器必须要监听tcp或udp的514端口上的服务。其中@host表示使用udp的协议,@@host表示使用tcp的协议。
    			4)管道: | COMMAND,转发给其他命令处理。
    
    	配置日志服务器
    		1》把本地配置为日志服务器,可以打开配置文件/etc/rsyslog.conf中的指定模块,让其监听在514端口上。
    			vim /etc/rsyslog.conf
    					#### MODULES ####
    				 12 # Provides UDP syslog reception
    				 13 $ModLoad imudp
    				 14 $UDPServerRun 514
    				 15 
    				 16 # Provides TCP syslog reception
    				 17 $ModLoad imtcp
    				 18 $InputTCPServerRun 514
    		2》打开后重启rsyslog服务器生效
    			service rsyslog restart
    			ss -ntul|grep 514
    		3》在应用服务器
    			vim /etc/rsyslog.conf
    				local2.*                @@192.168.25.107
    		
    	日志切割存储的功能组件:logrotate
    		1》介绍
    			logrotate  程序是一个日志文件管理工具,用来把旧的日志文件删除,并创建新的日志文件,称为日志转储或滚动。
    			可以根据日志文件的大小,也可以根据其天数来转储。
    			logrotate是结合cron定期的对日志文件进行处理,主要是通过/etc/cron.daily/logrotate程序来处理。
    		2》logrotate的配置文件:
    			/etc/logrotate.conf
    			/etc/logrotate.d/
    		3》/etc/logrotate.conf配置主要参数说明
    			compress  	通过gzip 压缩转储以后的日志
    			nocompress  	不需要压缩时,用这个参数
    			copytruncate  	用于还在打开中的日志文件,把当前日志备份并截断
    			nocopytruncate  	备份日志文件但是不截断
    			create mode owner group  	转储文件,使用指定的文件模式创建新的日志文件
    			nocreate  	不建立新的日志文件
    			delaycompress 和 compress  	一起使用时,转储的日志文件到下一次转储时才压缩
    			nodelaycompress 	覆盖 delaycompress  选项,转储并压缩
    			errors address  	专储时的错误信息发送到指定的Email 地址
    			ifempty  	即使是空文件也转储,是缺省选项。
    			notifempty  	如果是空文件的话,不转储
    			mail address  	把转储的日志文件发送到指定的E-mail  地址
    			nomail  	转储时不发送日志文件
    			olddir directory  	转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    			noolddir  	转储后的日志文件和当前日志文件放在同一个目录下
    			prerotate/endscript  	在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    			postrotate/endscript  	在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
    			daily  	指定转储周期为每天
    			weekly  	指定转储周期为每周
    			monthly  	指定转储周期为每月
    			size 	指定日志超过多大时,就执行日志转储
    			rotate count  	指定日志文件删除之前转储的次数,0  指没有备份,5  指保留5  个备份
    			Missingok  	如果日志不存在,提示错误
    			Nomissingok   	如果日志不存在,继续下一次日志,不提示错误
    			weekly  	默认每周对登录文件进行一次切割
    			rotate 4   	保留多少个登录文件,默认为4个
    			create	由于登录文件被更名,因此创建一个新的来继续记录
    			dateext	
    			#compress	被更动的登录文件是否需要压缩
    			include /etc/logrotate.d	将这个目录的所有文件都读取进来
    			/var/log/wtmp {  仅针对/var/log/wtmp所配置的参数
    				    monthly	每个月移除,取代每周
    				    create 0664 root utmp	指定新建文件的权限与所属账号、群组
    				    minsize 1M	文件容量超过1M后才进行切割
    				    rotate 1	仅保留一个,即仅有wtmp.1保留而已
    			}
    			
    			/var/log/btmp {
    			    missingok
    			    monthly
    			    create 0600 root utmp
    			    rotate 1
    			}
    			
    	rsyslog将日志记录于mysql中
    		1》准备MySQL Server
    		2》在mysql server 上授权rsyslog 能连接至当前服务器
    			mysql> GRANT ALL ON Syslog.* TO 'loguser'@'%' IDENTIFIED BY 'xm1234';
    		3》在rsyslog 服务器和mysql server上安装mysql 模块相关的程序包
    			yum install rsyslog-mysql
    		4》为rsyslog 创建数据库及表;
    			mysql -uroot  -pxm1234 < /usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
    		5》配置rsyslog 将日志保存到mysql中
    			vim /etc/rsyslog.conf 
    				#### MODULES ####
    				$ModLoad ommysql
    				#### RULES ####
    				facility.priority :ommysql:DBHOST,DBNAME,DBUSER, PASSWORD
    				示例
    					local2.*        :ommysql:192.168.213.128,Syslog,loguser,xm1234
    			systemctl status rsyslog.service
    			systemctl restart  rsyslog.service 
    		6》测试
    			在rsyslog服务器上
    				logger -p local2.info "haha"
    			在mysql服务器上
    				mysql -uroot -pxm1234
    					use Syslog ;
    					show tables;
    					select count(*) from SystemEvents;
    					select * from SystemEvents G;
    
    	通过loganalyzer 展示数据库中的日志
    		1》在rsyslog 服务器上准备lamp 或lnmp 组合
    			yum install httpd php php-mysql php-gd
    		2》安装LogAnalyzer
    			tar xf loganalyzer-4.1.5.tar.gz
    			cp -a loganalyzer-4.1.5/src /var/www/html/loganalyzer
    			cd /var/www/html/loganalyzer
    			touch config.php
    			chmod 666 config.php
    		3》配置loganalyzer
    			systemctl start httpd.service
    			http://HOST/loganalyzer
    			
    		4》安全加强
    			cd /var/www/html/loganalyzer
    			chmod 644 config.php
    

  • 相关阅读:
    Linux C 编程内存泄露检測工具(二):memwatch
    远程视频监控之驱动篇(按键)
    MATLAB——scatter的简单应用
    【收藏】十大Webserver漏洞扫描工具
    托付和观察者模式
    wireshark过滤语法总结
    2014年度辛星解读css第四节
    unity3D游戏开发十八之NGUI动画
    谈到本场比赛的项目经理
    jsp的原则执行
  • 原文地址:https://www.cnblogs.com/shenxm/p/8453873.html
Copyright © 2011-2022 走看看