日志记录与分析系统

系统日志服务:

	1、日志:日志内容、日志格式、日志级别
	2、日志服务:
		centos5:syslog,syslog日志服务包括以下两个主要进程
			syslogd:负责用户空间进程的日志记录
			klogd:负责内核相关的日志记录
		centos6/7:rsyslog,主进程合而为一:rsyslogd,是
				syslog的升级版,包括以下特性:
			@支持多线程
			@支持TCP、UDP、SSL、TLS、RELP;支持为其他主机提供
				日志记录服务
			@支持MySQL、PGSQL、Oracle等关系型数据库的日志存储,
				要安装相关类型的数据库驱动;
			@强大的过滤器功能,能过滤日志中的任何部分;
			@自定义输出格式
	3、程序配置:
		包:rsyslog
			服务进程名:rsyslog
			模块:主要包括im输入模块和om输出模块
			配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
		配置文件格式
			配置文件分为三段:MODULES,GLOBEL DIRECTIVES,RULES
			MODULES:装载要使用的模块
				$ModLoad imuxsock;装载本地日志记录模块
				$ModLoad imjournal;systemd日志读取模块;
				$ModLoad imklog;内核日志读取模块
			GLOBEL DIDRECTIVES:全局配置指令
				$IncludeConfig /etc/rsyslog.d/*.conf;包含配置文件目录
			RULES:定义日志记录规则,facility.priority	filepath
				facility:为rsyslog内置的日志记录装置,装置对各类日志进行
					分类记录,其他调用rsyslog日志记录服务的程序通过选择
					对应的装置类型来进行恰当的日志记录;
				priority:日志记录级别,一般由:debug、info、notice、warn
					(warning)、err(error)、crit(critical)、alert、emergency
					(panic)
					*:表示记录所有级别的日志;
					priority:记录此级别及以上级别的日志;
					=priority:记录此级别的日志
					none:禁止记录
				target:日志发送对象
					file:存储到文件中
					user:发送给用户,*表示所有用户
					@host:发送给日志接收服务器
					|command:通过管道发送给命令处理;
				例:
				*.info;mail.none;authpriv.none;cron.none    /var/log/messages
				#记录所有装置除开mail、authpriv、cron的info及以上级别的日志
					到messages文件
				*.emerg   :omusrmsg:*
				#所有装置紧急级别日志发送到当前所有登录的用户
				mail.*         -/var/log/maillog
				#mail装置的所有级别日志发送到maillog文件,‘-’表示异步写入
				Tip:由于日志的功用是记录错误发生时产生的事件以帮助维护
					人员分析问题所在,所以日志一般默认同步写入,以免错误
					发生时,日志记录不及时;
		日志记录格式:
			日期-时间-主机-进程-事件
			日期:日志产生的日期
			时间:日志产生的时间
			主机:产生日志的主机(本地或者远程主机)
			进程:产生日志的进程
			事件:日志记录事件的详细内容
	4、使用示例:
		为sshd服务使用自定义日志装置
			@编辑/etc/ssh/sshd_config文件修改‘SyslogFacility AUTHPRIV’为
				SyslogFacility local1
			@编辑/etc/rsyslog.conf文件添加:
				local1.info	/var/log/sshd.log
			@重启rsyslog和sshd服务:
				#systemctl restart rsyslog
				#systemctl restart sshd
			@尝试ssh登录到本机,并查看/var/log/sshd.log文件
		为其他主机提供日志记录服务
			@编辑/etc/rsyslog.conf开启以下选项:
				$ModLoad imudp	;加载udp日志接收模块
				$UDPServerRun 514;监听端口UDP/514
				$ModLoad imtcp	;加载tcp日志接收模块
				$InputTCPServerRun 514;监听端口TCP/514
			@重启rsyslog服务
				#systemctl restart rsyslog
			@配置客户端A的rsyslog配置文件/etc/rsyslog.conf,修改
			*.info;mail.none;authpriv.none;cron.none  /var/log/messages
			为*.info;mail.none;authpriv.none;cron.none  @192.168.181.10
			192.168.181.10为服务器端IP
			@重启客户端Arsyslog服务
				#systemctl restart rsyslog
			@测试日志记录结果,在客户端A上yum安装cobbler
				#yum install -y cobbler
			@查看服务器端/var/log/messages文件,已经记录客户端yum
				安装操作	
	5、使用mysql存放日志及使用loganalyzer日志分析:
		@安装软件:
			#yum install httpd php mariadb mariadb-server php-mysql
				rsyslog-mysql ;其他依赖包依据提示安装
			# wget http://download.adiscon.com/loganalyzer/loganalyzer
				-4.1.10.tar.gz ;下载loganalyzer软件包
		@启动服务:
			启动httpd服务,及确保php模块已经加载:
			#systemctl start httpd
			#httpd -M|grep php
			启动mariadb服务,并做相关初始化操作
			#systemctl start maraidb
		@配置数据库服务:
			连接maraidb数据库,授权rsyslog服务使用的数据库账号
				‘rsyslog’@‘192.168.181.10’,设置密码‘rsyslogpass’
			#mysql -uroot -p -e “grant all on Syslog.* to 'rsyslog'@'192.168.181.10'
				identified by 'rsyslogpass'”
			Tip:数据库名称是在rsyslog-mysql包中的脚本文件/usr/share/doc
				/rsyslog-8.24.0/mysql-createDB.sql中定义的,该脚本会在后面
				执行;
			执行上面的脚本,进行rsyslog服务要使用的格式的表的创建
			#mysql -ursyslog -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
		@配置rsyslog服务:
			在/etc/rsyslog.conf文件中添加或修改:
			$ModLoad ommysql	;装载mysql日志输出模块
			*.info;mail.none;authpriv.none;cron.none  :ommysql:192.168.181.10,Sy
			log,rsyslog,rsyslogpass	;定义使用ommysql模块,主机,数据库名称
				用户名,密码
			重启rsyslog服务
			#systemctl restart rsyslog
		@配置loganalyzer
			解压压缩包,并安装INSTALL文件说明复制src目录中文件到httpd站点
			目录下,复制contrib目录下configure.sh到相同目录下并执行
			#tar xf loganalyzer-4.1.9.tar.gz
			#cd  loganalyzer-4.1.9.tar.gz
			# mkdir /var/www/html/loganalyzer
			# cp -a src/* /var/www/html/loganalyzer
			# cp contrib/configure.sh /var/www/html/loganalyzer
			# cd /var/www/html/loganalyzer
			# chmod u+x configure.sh
			# configure.sh
			浏览器登录192.168.181.10:/loganalyzer/install.php进行网页界面配置
			配置完成进入日志统计分析界面
		@客户端A上配置使用服务器端的rsyslog服务并测试
			修改/etc/rsyslog.conf:
			*.info;mail.none;authpriv.none;cron.none @192.168.181.10
			重启rsyslog服务
			#systemctl restart rsyslog
			使用yum安装软件
			# yum install vsftpd -y
			服务器端使用yum安装软件
			# yum install samba -y
		@刷新浏览器192.168.181.10/loganalyzer界面,显示来自服务器端
			和客户端的yum安装日志记录
	6、centos 7上各日志文件说明
		/var/log/messages:所有装置(除开mail,cron,authpriv)info级别
			以上信息,一般由rsyslog记录的日志都可以在此处找到
		/var/log/secure::与安全相关的日志,如用户登录、认证、创建等
		/var/log/boot::系统启动的相关日志
		/var/log/cron:周期任务的相关日志
		/var/log/mailog:邮件的相关日志
		/var/log/wtmp:成功登录的用户日志,使用last命令查看
		/var/log/btmp:未成功登录的用户日志,使用lastb命令查看
		lastlog:所有用户最近的登录情况
		/var/log/dmesg:设备信息,可直接查看,也可以用dmesg命令
		/var/log/audit/audit.log:审计日志,和用户账号相关
		journalct:显示systemd所启动的所有unit的日志,配置文件为
			/etc/systemd/journald.conf
			-k:显示本次启动的内核日志
			-b:显示本次启动的系统日志
			-u unit:显示某unit相关的日志,如sshd,httpd
			-S time:从某个时间点开始的日志
			-u time:到某个时间点结束的日志
				例:
				journalctl -S ‘20 min ago’:20分钟前的日志
				journalctl -U ‘2020-05-21’:到这个时间点的日志
				journalctl -S ‘10 hour ago’ -U ‘20 min ago’
	7、日志滚动
		rsyslog借助logrotate工具来进行日志滚动切割,其日志滚动配置文件
		是/etc/logrotate.d/syslog
		logrotato的配置文件是/etc/logrotate.conf
		日志滚动配置文件格式:
			/var/log/cobbler/cobbler.log {
			   missingok	;忽略丢失错误
			   notifempty	;文件为空不滚动
			   rotate 4	;保留4个备份
			   weekly	;每周进行一次滚动
			   postrotate	;滚动后执行动作
			      /sbin/service cobblerd condrestart > /dev/null 2>&1
			   endscript
			}

elk日志收集分析平台:

完整的集中式日志系统包括以下几个要点:
	收集——采集多种来源的日志数据;
	传输——稳定的把日志数据传输到中央系统;
	存储——日志的存储方式;
	分析——支持便捷的UI分析;
	警告——提供错误报告、监控机制;
elk:elasticsearch+logstash+kibana
	elasticsearch:一个分布式日志搜索和分析引擎,可用于全文搜索、
		结构化搜索以及分析;
	logstash:具有实时渠道能力的数据收集引擎,主要由三部分构成:
		shipper:发送日志数据;
		broker:收集数据,默认内置redis
		indexer:数据写入
	kibana:为elasticsearch提供分析和可视化的web平台 

命令:
journal:(https://www.cnblogs.com/sparkdev/p/8795141.html)

	journalctl 用来查询 systemd-journald 服务收集到的日志。systemd-journald 服务是 systemd init 
	系统提供的收集系统日志的服务

systemctl:(https://linux.cn/article-5926-1.html)

优质文章:

1、IBM社区集中式日志系统详解ELK
https://www.ibm.com/developerworks/cn/opensource/os-cn-elk/index.html
2、rsyslog服务的详细说明
https://blog.csdn.net/qq_34889607/article/details/78649115
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值