目录
系统日志管理
系统日志介绍
将系统及应用发生的事件记录记录成日志,用于排错与分析
日志的的内容:
历史事件:时间、地点、人物、事件
日志级别:事件的关键性程度,Loglevel:error、notice、info、debug等
分类:
-
内核及系统日志
-
由系统服务rsyslog统一进行管理,日志格式基本相似
-
-
用户日志
-
记录系统用户登录及退出系统的相关信息
-
-
程序日志
-
由各种应用程序独立管理的日志文件,记录格式不统一
-
日志文件保存位置:
默认位于/var/log目录下
日志类型 | 文件位置 |
---|---|
内核及公共消息日志 | /var/log/message |
计划任务日志 | /var/log/cron |
系统引导日志 | /var/log/dmesg |
邮件系统日志 | /var/log/maillog |
用户登录日志 | /var/log/lastlog;/var/log/secure;/var/log/wtmp;/var/run/btmp |
-
/var/log/secure:系统安全日志(用户登录),文本格式,应周期性分析
-
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行查看
-
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
-
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
-
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化将不再记录专用命令dmesg查看,可持续记录硬件变化的情况
-
/var/log/boot.log:系统服务启动的相关信息,查看启动是否正常,文本格式
-
/var/log/messages :系统中大部分的信息
-
/var/log/anaconda : anaconda的日志操作系统安装时安装的软件信息
rsyslog 系统日志服务
rsyslog是CentOS 6以后版本的系统管理服务:它提供了高性能,出色的安全性和模块化设计
rsyslog 特性:
-
多线程
-
UDP, TCP, SSL, TLS, RELP(支持多种协议的存储)
-
MySQL, PGSQL, Oracle实现日志存储(支持多数据库)
-
强大的过滤器,可实现过滤记录日志信息中任意部分
-
自定义输出格式,可以修改日志格式(按一定格式记录)
-
适用于企业级(小型企业)
ELK日志收集(适用于大型企业)
由Elasticsearch, Logstash, Kibana三个软件组成
-
非关系型分布式数据库,基于apache软件基金会jakarta项目组的项目lucene
-
Elasticsearch:是个开源分布式搜索引擎,可以处理大规模日志数据,比如:Nginx、Tomcat、系统日志等功能
-
Logstash:对日志进行收集、分析,过滤,并将其存储供以后使用
-
Kibana:可以提供的日志分析友好的 Web 界面
rsyslog相关文件
查看rsyslog文件模块:
rpm -ql rsyslog [ | 模块名]
-
程序包:rsyslog
-
主程序:/usr/sbin/rsyslogd
-
CentOS 6:/etc/rc.d/init.d/rsyslog {start|stop|restart|status}
-
CentOS 7,8:/usr/lib/systemd/system/rsyslog.service
-
配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf
-
库文件: /lib64/rsyslog/*.so
rsyslog配置文件(使用vim编辑器查改)
/etc/rsyslog.conf 配置文件格式:由三部分组成
-
MODULES:相关模块配置
-
GLOBAL DIRECTIVES:全局配置
-
RULES:日志记录相关的规则配置
配置格式:
facility.priority:分类.优先级
日志的级别
级别名称 | 说明 |
---|---|
debug(LOG_DEBUG) | 一般调试信息说明 |
info(LOG_INFO) | 基本的信息通知 |
notice(LOG_NOTICE) | 普通信息,但有一定重要性 |
warning(LOG_WARNING) | 警告信息,重要但不影响运行 |
error(LOG_ERROR) | 错误信息,已经能够影响运行了 |
crit(LOG_CIRT) | 临界状态,比较严重,影响较大 |
alert(LOG_ALERT) | 严重影响运行,必须立即采取行动 |
emerg(LOG_EMERG) | 疼痛等级,系统已无法使用 |
* | 表示所有日志等级,例:authpriv.*,表示authpriv服务产生的所有日志文件 |
服务日志
服务名称 | 说 明 |
---|---|
auth(LOG AUTH) | 安全和认证相关消息 (不推荐使用authpriv替代) |
authpriv(LOG_AUTHPRIV) | 安全和认证相关消息(私有的) |
cron (LOG_CRON) | 系统定时任务cront和at产生的日志 |
daemon (LOG_DAEMON) | 与各个守护进程相关的曰志 |
ftp (LOG_FTP) | ftp守护进程产生的曰志 |
kern(LOG_KERN) | 内核产生的曰志(不是用户进程产生的) |
Iocal0-local7 (LOG_LOCAL0-7) | 为本地使用预留的服务 |
lpr (LOG_LPR) | 打印产生的日志 |
mail (LOG_MAIL) | 邮件收发信息 |
news (LOG_NEWS) | 与新闻服务器相关的日志 |
syslog (LOG_SYSLOG) | 存syslogd服务产生的曰志信息(虽然服务名称己经改为reyslogd,但是很多配罝依然沿用了 syslogd服务的,所以这里并没有修改服务名称) |
user (LOG_USER) | 用户等级类别的日志信息 |
uucp (LOG_UUCP> | uucp子系统的日志信息,uucp是早期Linux系统进行数据传递的协议,后来 也常用在新闻组服务中 |
-
vim /etc/rsyslog.conf(查看日志的配置文件)
将ssh远程连接服务日志做独立文件:
-
客户端:连接服务端
-
服务端:查询用户授权日志信息
-
服务端: 查看并编辑远程连接的配置文件
实现日志独立管理:
-
需要服务支持rsyslog
-
必须修改配置文件
-
独立日志的服务和日志服务都必须重启
网络日志(远程日志功能)
将多台服务器日志远程传输到一台服务器上
只能支持10-20台左右的服务器
-
将两端的远程服务端口打开
-
vim /etc/rsyslog.conf
-
-
客户端:修改配置文件
-
vim /etc/rsyslog.conf
-
将54行内容复制到55行,并将后面的路径改为IP地址
-
-
将日志写入服务端
-
客户端
-
-
服务端
注意:客户端需要先远程连接上服务端,命令:ssh 服务端IP地址