深入理解Linux日志管理(我们从人海相遇,终究又把你归还于人海了)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 深入理解Linux日志管理(我们从人海相遇,终究又把你归还于人海了)

目录



一、 系统日志管理


1.1 系统日志介绍


1.1.1 sysklogd 系统日志服务


1.1.2 rsyslog 系统日志服务


1.2 rsyslog 管理


1.2.1 系统日志术语


1.2.2 rsyslog 相关文件


1.2.3 rsyslog配置文件


1.3 日志文件


二、实验


2.1 实验一:将ssh服务的日志单独设置


2.2 实验二:开启日志的远程传输功能


三、总结


一、 系统日志管理



1.1 系统日志介绍


在现实生活中,记录日志也非常重要,比如银行的转账记录,飞机上的黑盒子,那么将系统和应用发生的事件记录至日志中,以助于排错和分析使用


日志记录的内容包括:


历史事件:时间,地点,人物,事件


日志级别:事件的关键性程度,Loglevel


1.1.1 sysklogd 系统日志服务


CentOS 5 之前版本采用的日志管理系统服务


syslogd: system application 记录应用日志


klogd: linux kernel 记录内核日志


事件记录格式:


日期时间 主机 进程[pid]: 事件内容


C/S架构:通过TCP或UDP协议的服务完成日志记录传送,将分布在不同主机的日志实现集中管理


1.1.2 rsyslog 系统日志服务


Rsyslog的全称是 rocket-fast system for log,它提供了高性能,高安全功能和模块化设计。rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件


rsyslog 特性


多线程


UDP, TCP, SSL, TLS, RELP


MySQL, PGSQL, Oracle实现日志存储


强大的过滤器,可实现过滤记录日志信息中任意部分


自定义输出格式


适用于企业级中继


image.png

image.png


1.2 rsyslog 管理


1.2.1 系统日志术语


#内置分类

auth(验证), authpriv, cron(定时任务), daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, syslog

#自定议的分类

local0-local7

日志等级(优先级)


数字越小紧急程度越高,一般在error就解决掉了,出现比error更严重的问题就是运维的失职


级号 等级名称 说 明
7 debug (LOG_DEBUG) 一般的调试信息说明
6 info (LOG_INFO) 基本的通知信息
5 notice (LOG_NOTICE) 普通信息,但是有一定的重要性
4 warning(LOG_WARNING) 警吿信息,但是还不会影响到服务或系统的运行
3 error(LOG_ERR) 错误信息, 一般达到err等级的信息已经可以影响到服务成系统的运行了
2 crit (LOG_CRIT) 临界状况信思,比err等级还要严®
1 alert (LOG_ALERT) 状态信息,比crit等级还要严重,必须立即采取行动
0 emerg (LOG_EMERG) 疼痛等级信息,系统已经无法使用了
* 代表所有日志等级。比如,“authpriv.*”代表amhpriv认证信息服务产生的日志,所有的日志等级都记录


服务名称

服务名称 说 明
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系统进行数据传递的协议,后来 也常用在新闻组服务中


1.2.2 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


1.2.3 rsyslog配置文件


/etc/rsyslog.conf 配置文件格式:由三部分组成


MODULES:相关模块配置


GLOBAL DIRECTIVES:全局配置


RULES:日志记录相关的规则配置


image.png

image.png

image.png

image.png


1.3 日志文件


目录 含义
/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的日志


示例1


image.png


示例2


image.png


示例3


image.png


二、实验



2.1 实验一:将ssh服务的日志单独设置


1.vim /etc/ssh/sshd_config


shift+冒号 末行模式敲set nu 显示行号,上下键找到第32行,命令模式yy复制,p粘贴到下一行,将32行开头加上#号,按“i”进入编辑模式,将33行后面那个单词改为LOCAL6,保存退出


image.png


2.vim /etc/rsyslog.conf


shift+冒号 末行模式敲set nu 显示行号,上下键找到第73行,命令模式yy复制,p粘贴到下一行,按“i”进入编辑模式,改为如下


image.png


3.重启服务


systemctl restart sshd
systemctl restart rsyslog


4.右击第一个标签复制会话


image.png


cd /var/log/
ls



可以看到创建的sshd.log文件存在了


vim sshd.log


可以看到操作记录


2.2 实验二:开启日志的远程传输功能

image.png


1.两台机子  vim /etc/rsyslog.conf


将19,20行的#注释去掉,开启tcp服务,保存退出


image.png


2.第二台机子  vim /etc/rsyslog.conf  yy复制 p粘贴到下一行,后面加上@@第一台IP地址


查看第一台IP地址,在第一台机子上输入ifconfig,找到en33网卡下的IP地址就是本机的IP地址


image.png


image.png


注意:


使用tcp服务,IP地址前是@@


使用udp服务,IP地址前是@


保存退出然后重启服务,systemctl restart rsyslog


3.两台机子关闭防火墙和selinux


systemctl stop firewalld
vim /etc/selinux/config

image.png


4.第二台机子测试,往日志中写入数据


[root@localhost ~]# logger "1111111111111111111111"
[root@localhost ~]# logger "2222222222222222222222"


第一台机子的/var/log/messages文件可以看到,使用cat /var/log/messages命令


image.png


三、总结



在工作中我们要学会查看日志,及时解决问题,防患于未然


在真实生产环境中,会有几台或是几十台服务器,集中管理数以百万台服务器的日志信息

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
3月前
|
存储 监控 安全
在Linux中,如何进行日志审计?
在Linux中,如何进行日志审计?
|
15天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
25 7
|
1月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
46 3
|
3月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
131 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
58 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
41 0
|
3月前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
3月前
|
应用服务中间件 Linux nginx
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
|
3月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
3月前
|
运维 监控 Ubuntu
在Linux中,如何查看系统日志文件?
在Linux中,如何查看系统日志文件?
下一篇
无影云桌面