12.日志管理
12.1.日志管理简介
1、日志服务
在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致。
2、rsyslogd的新特点
基于TCP网络协议传输日志信息
更安全的网络传输方式
有日志消息的及时分析框架
后台数据库
配置文件中可以写简单的逻辑判断
与syslog配置文件相兼容
3、确定服务启动
查看服务是否启动
ps aux|grep rsyslogd
查看服务是否自动
chkconfig –list|grep rsyslog
貌似这个命令不行了,在centos7上,系统服务提示用这个命令:systemctl list-unit-files
4、常用日志的作用
日志文件 |
说明 |
/var/log/cron |
记录了定时任务相关的日志。 |
/var/log/cups |
记录打印信息的日志 |
/var/log/dmesg |
记录了系统在开机时内核自检的信息。也可以使用dmesg命令直接查看内核自检信息 |
/var/log/btmp |
记录错误登录的日志。这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看,命令如下: [root@localhost log]# lastb rot ssh:notty 192.168.1.101 Thu May 10 19:21 - 19:21 (00:00) Administ ssh:notty 192.168.1.101 Sun May 6 16:13 - 16:13 (00:00) Administ ssh:notty 192.168.1.101 Sat May 5 21:38 - 21:38 (00:00)
btmp begins Sat May 5 21:38:05 2018 [root@localhost log]# |
/var/log/lastlog |
记录系统中所有用户最后一次的登录时间的日志。这个文件是二进制文件,不能直接vi查看,而要使用lastlog命令查看。 |
/var/log/maillog |
记录了邮件信息 |
/var/log/message |
记录系统重要信息的日志,这个日志文件 中会记录Linux系统的绝大鑫数重要信息,如果系统出现问题,首先要检查的就应该是这个日志文件。 |
/var/log/secure |
记录验证和授权方面的信息,只有涉及帐户和密码的程序都会记录。例如系统的登录,ssh的登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中。 |
/var/log/wtmp |
永久记录所有用户的登录、注销信息、同时记录系统的启动,重启,关机事件。同样这个文件也是一个二进制文件,不能直接vi命令查看,而需要使用last命令查看。 |
/var/run/utmp |
记录当前已经登录的用户信息。这个会随着用户的登录和注销而不断变化,只记录前登录用户的信息。这个文件也不能直接用vi命令查看,而要使用w,who,users等命令来查询 |
除了系统的默认日志之外,采用RPM方式安装的系统服务也会默认把日志记录在/var/log目录中,源码包安装的服务日志是在源码包指定目录中。不过这些日志不是由rsyslogd服务来记录和管理的,而是各个服务使用自己的日志管理文档来记录自身的日志。
常见的RPM包日志:
/var/log/httpd/` apache服务
/var/log/mail/ 邮件服务
/var/log/samba/ samba服务
/var/log/sssd/ 守护进程安全服务目录
12.2.rsyslogd服务
1、日志文件格式
基本日志格式包含以下四列:
事件产生的时间
发生事件的服务器的主机名
产生事件的服务名或程序名
事件的具体信息
如下所示为secure日志格式:
[root@localhost log]# head secure
May 6 22:25:43 localhost sshd[1556]: Accepted password for root from 192.168.1.101 port 60068 ssh2
May 6 22:25:43 localhost sshd[1556]: pam_unix(sshd:session): session opened for user root by (uid=0)
May 6 23:07:52 localhost groupadd[1714]: group added to /etc/group: name=apache, GID=48
May 6 23:07:52 localhost groupadd[1714]: group added to /etc/gshadow: name=apache
May 6 23:07:52 localhost groupadd[1714]: new group: name=apache, GID=48
May 6 23:07:52 localhost useradd[1718]: new user: name=apache, UID=48, GID=48, home=/usr/share/httpd, shell=/sbin/nologin
May 6 23:08:50 localhost polkitd[643]: Registered Authentication Agent for unix-process:1753:2313559 (system bus name :1.38 [/usr/bin/pktty
2、/etc/rsyslog.conf配置文件
配置格式:
服务名称[链接符号]日志等级 日志记录位置
如下所示:
authpriv.* /var/log/secure
认证相关服务.所有日志等级 记录在/var/log/secure日志文件中
这些名称只在rsyslogd日志中有效
支持的服务名称:
服务名称 |
说明 |
auth |
安全和认证相关消息, 不推荐使用authpriv替代 |
authpriv |
安全和认证相关消息,私有的 |
cron |
系统定时任务crontab和at产生的日志 |
deamon |
和各个守护进程相关的日志 |
ftp |
ftp守护进程产生的日志 |
kern |
内核产生的日志,不是用户进程产生的 |
local0-local7 |
为本地使用预留的服务 |
lpr |
打印产生的日志 |
|
邮件收日志 |
news |
与新闻服务器相关的日志 |
syslog |
有syslogd服务产生的日志信息,虽然服务名称已经改为rsyslogd,但是很多配置都还是沿用了syslogd的,这里并没有修改服务名 |
user |
用户等级类别的日志信息 |
uucp |
uucp子系统的日志信息,uucp是早期linux系统进行数据传递的协议,后来也常用在新闻组服务中。 |
rsyslogd支持的连接符号:
连接符号 |
说明 |
* |
代表所有日志等级,例如:authpriv.*,代表authpriv认证信息服务产生的日志,所有日志等级都记录 |
. |
代表只要比后面的等级高的,包含该等级的日志都记录下来。例如:cron.info代表cron服务产生的日志,只有日志级别大于等于info级别,就会记录下来。 |
.= |
代表只记录所需等的日志,其他等级的都不记录。例如:*.=emerg,代表任何日志服务产生的日志,只有等级是emerg等级就记录。这种用法及少见,了解就好 |
.! |
代表不等于,也就是除了该等级的日志外,其他等级日志都记录。 |
syslogd支持日志等级:
日志等级 |
说明 |
debug |
一般的调试信息 |
info |
基本的通知信息 |
notice |
普通信息,但是有一定的重要性 |
warning |
警告信息,但是还不会影响到服务或系统运行 |
err |
错误信息,一般达到err等级的信息,已经影响到服务或系统的运行了 |
crit |
临界状况信息,比err等级还要严重 |
alert |
警告状态信息,比crit还要严重,必须立即采取行动 |
emerg |
疼痛待级信息,系统已经无法使用了 |
syslogd支持的日志记录位置:
类别 |
举例 |
日志文件的绝对路径 |
/var/log/secure |
系统设备文件 |
/dev/lp0 |
转发给远程主机 |
@192.168.0.210:514 |
用户名 |
root |
忽略或丢弃日志 |
~ |
12.3.日志轮替
1、日志文件的命名规则
如果配置文件中拥有dateext参数,那么日志会用日期来作为日志文件的后缀,例如secure-20180510,这样的话日志文件名不会重叠,所以也就不需要日志文件的改名,只需要保存指定的日志个数,删除多余的日志文件即可。
如果配置文件中没有dateext参数,那么日志文件就需要进行改名了。当第1次进行日志轮替时,当前的secure日志会自动改名为secure.1,然后新建secure日志,用来保存新的日志,当第2次进行日志轮替时,secure.1会自动更新为secure.2,当前的secure日志会自动改为为secure.1,然后新建secure日志,用来保存新的日志,以此类推。
2、logrotate配置文件
参数 |
参数说明 |
daily |
日志的轮替周期是每天 |
weekly |
日志的轮替周期是每周 |
monthly |
日志的轮替周期是每月 |
rotate 数字 |
保留的日志文件的个数,0指没有备份 |
compress |
日志轮替时,旧的日志进行压缩 |
create mode owner group |
建立新的日志,同时指定新日志的权限与所有者和所属组。 如:create 0600 route utmp |
mail address |
当日志轮替时,输出内容通过邮件发送到指定的邮件地址 如:mail logrotate@xxxx.com |
missingok |
如果日志文件不存在,则忽略该日志的警告信息 |
notifyempty |
如果日志为空文件,则不进行日志轮替 |
minsize 大小 |
日志轮替的最小值,也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替 |
size 大小 |
日志只有大于指定大小才进行日志轮替,而不是按照时间轮替,如:size 100K |
dateext |
使用日期作为日志轮替文件的后缀。如:secure-20180510 |
上面半部分为全局配置,下面一部分是/var/log/wtmp和/var/log/btmp特有的配置:
[root@localhost etc]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
[root@localhost etc]#
3、把apache日志加入轮替
RPM包安装会自动配置。
源码包安装的服务,需要手动加入配置:
vi /etc/logrotate.conf
/var/usr/local/apache/logs/access_log{
daily
create
rotate 30
}
4、logrotate命令
语法:
logrotate [选项] 配置文件名
如果此命令没有选项,则会按照配置文件中的条件进行日志轮替。
-v:显示日志轮替过程。加了-v选项,会显示日志的轮替的过程。
-f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮替
12.4.启动引导程序-Grub加密与字符界面分辨率调整
在启动的时候,按下任意键盘,就可以进行Grub的选择界面
然后按下e键,就可以编辑Grub配置文件了,但是每个人都可以编辑不安全。所要设置grub密码。
1、grub加密
命令:
grub-md5-crypt
生成加密密码串
貌似centos7中没有这个命令了
设置了grub加密后,以后要编辑grub配置文件,需要使用grub密码才能编辑了。
centos7的方法已经不是上面的方式了,而且密码的加密更安全了:
设置grub密码保护:
查看grub登录用户名cat /etc/grub.d/01_users,可以看到用户名为root。通过grub2-setpasswords设置grub密码,确认密码 cat /boot/grub2/user.cfg。重启后进入grub需要用户名和密码
[root@localhost ~]# cat /etc/grub.d/01_users
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
source \${prefix}/user.cfg
if [ -n "\${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root \${GRUB2_PASSWORD}
fi
fi
EOF
[root@localhost ~]# grub2-setpasswords
-bash: grub2-setpasswords: command not found
[root@localhost ~]# grub2-setpassword
Enter password:
Confirm password:
[root@localhost ~]# cat /boot/grub2/user.cfg
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.44A14BB0A2FBA9511FE80754FB317AF04518F0FCB6C3D25454EB186AC7D84175C94595F5E8CC1AE127A5328CDCC5553DBB5C5C70928C0EAFDE675DC5B444D926.D45D10DF6E988AD8839EE2BAA746F5A962CFFC65C47FBF418F1A8211D890081E6619A9853586645A2E8CC69B50F7EF577308F28882574C31CA425849E78D2144
[root@localhost ~]#
重启后,在引导界面,输入e进行grub配置编辑界面前,需要输入用户名和密码,root/xx密码
2、字符界面分辨率调整
查询内核是否支持分辩率修改
[root@localhost boot]# cat config-3.10.0-693.el7.x86_64 |grep CONFIG_FRAMEBUFFER_CONSOLE
CONFIG_FRAMEBUFFER_CONSOLE=y
调整的时候,填写如下表格中的值即可,例如32位的1024x768,是792
填写哪里呢?有些版本不支持这个参数,有的支持是16进制的值,需要换算。
貌似centos7已经不是这样配置的了,网上找的参考:
正确解决方法
刚装的CentOS7.2 1511系统,正常启动,一般都是这样的,分辨率640x480
进入系统后,更改分辨率,设置如下
[root@min-base ~]# vim /etc/default/grub
将GRUB_TERMINAL_OUTPUT值由默认的"console"改为"gfxterm",并添加GRUB_GFXMODE
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="gfxterm"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_GFXMODE=1440x900,1024x768,640x480
这里官方手册写得很清楚,ubuntu自带grub2默认是gfxterm, 而centos默认是console,所以只设置GRUB_GFXMODE不生效!
更新grub.cfg
[root@min-base ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-474822243f59425e80af30ff5e2b8cd4
Found initrd image: /boot/initramfs-0-rescue-474822243f59425e80af30ff5e2b8cd4.img
done
[root@min-base ~]#
新版grub2已经不再使用update-grub这个命令了,改用grub2-mkconfig
确定后重启就可以看到效果了,窗口大小是有变化的。在centos7.4上验证此方法有效。貌似只是引导界面变了一下,和Windows的修改分辨率咋感觉不是一个概念。。。
相关推荐
【linux学习笔记-12】守护进程的日志实现.doc 【linux学习笔记-13】基本进程通信--文件锁.doc 【linux学习笔记-14】基本进程通信--信号.doc 【linux学习笔记-15】基本进程通信--管道.doc 【linux学习笔记-16】shell...
【linux学习笔记-12】守护进程的日志实现 【linux学习笔记-13】基本进程通信--文件锁 【linux学习笔记-14】基本进程通信--信号 【linux学习笔记-15】基本进程通信--管道 【linux学习笔记-16】shell管道重定向程序的...
2. **日志管理**:日志文件位于`logs`目录下,了解如何配置和分析这些日志对于问题排查至关重要。 3. **部署应用**:将WAR文件放入`webapps`目录,Tomcat会自动部署并运行该应用。 4. **安全性**:确保配置`conf/...
Linux内核是操作系统的核心部分,负责管理系统的硬件资源、提供基础服务给各种应用程序,并且是开源的,允许全世界的开发者参与其开发与改进。"linux-2.6.12.tar.gz"是一个针对Linux内核的源代码压缩包,特别的是,...
这份"嵌入式Linux应用程序开发笔记-代码.zip"资源显然是为那些希望深入理解该领域的学生或工程师准备的,特别适用于毕业设计和课程设计任务。 在嵌入式Linux应用开发中,开发者需要掌握以下关键知识点: 1. **...
Linux学习笔记PDF文档.pdf是一个详尽的资源,旨在帮助初学者和有经验的用户深入理解Linux操作系统。Linux作为开源的类Unix系统,以其稳定、安全和可定制性在全球范围内广泛应用于服务器、桌面环境以及嵌入式设备。这...
本教程将通过韩顺平老师的PPT和课堂笔记,为初学者提供一个全面且深入的Oracle 10g学习路径。 一、Oracle 10g基础 Oracle 10g的基础部分涵盖了数据库安装、配置和管理。首先,你需要了解如何在不同的操作系统上...
本篇“Linux学习笔记”详细介绍了Linux的基本目录结构及其各自的功能,这对于初学者理解Linux系统的核心概念非常重要。 #### 二、Linux目录结构解析 1. **/(根目录)** - 根目录是Linux文件系统的起点,所有的...
"armlinux学习笔记--触摸屏驱动程序分析"这本书深入探讨了这个主题,旨在帮助读者理解和开发针对Linux系统的触摸屏驱动。以下是关于这一主题的详细知识解析: 1. **嵌入式Linux**:嵌入式Linux是指将Linux操作系统...
Linux作为一款广泛使用的开源操作系统,其目录结构设计严谨,层次分明,对系统的稳定运行和资源管理起着至关重要的作用。本文旨在深入解析Linux的目录架构,帮助读者更好地理解每个目录的功能与用途。 #### 根目录...
`Rhel6 dns配置-mosquito.docx`文档可能包含了作者在学习DNS配置过程中的笔记和经验,对于深入理解和实践RHEL6 DNS配置非常有帮助。建议仔细阅读和参考这份文档,结合实际操作,以掌握这一关键的系统管理技能。
`ipython_genutils-0.2.0.tar.gz` 是一个专门为Linux系统设计的压缩包,主要用于支持IPython的运行和扩展。IPython是一个强大的交互式计算环境,它被广泛用于数据科学、机器学习和教学等领域。这个压缩包包含了一...
8. **日志记录**:MQTTBox提供日志记录功能,帮助开发者调试和分析客户端与服务器的交互情况。 9. **多种语言支持**:MQTTBox界面多语言化,方便不同国家和地区的用户使用。 10. **跨平台**:除了Windows版本,...
在Linux学习过程中,了解操作系统的核心结构以及主要目录的用途至关重要。Linux系统采用的是层次化的目录结构,这使得系统管理更为有序。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **根目录** `/`...
Linux学习笔记涵盖了许多核心主题,帮助初学者逐步掌握这一开源操作系统。笔记的详细内容如下: ### 第一章:Linux简介及安装 1. **Linux介绍**:Linux是一种自由和开放源代码的操作系统,基于Unix,由全球各地的...
### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...
日志管理工具如Elasticsearch、Logstash和Kibana(ELK栈)则帮助收集和分析应用日志。 8. **应用部署和扩展**:通过YAML文件定义应用的部署策略,可以使用kubectl命令行工具或者Dashboard进行部署、更新和扩缩容。 ...
这份笔记以其实践性强、实用价值高的特点,深受广大Linux运维人员的喜爱,是日常学习和工作中不可或缺的参考资料。 在Linux运维的世界里,掌握基础与进阶知识至关重要。首先,你需要了解Linux操作系统的基本结构和...
关于《最牛逼的Python爬虫学习笔记.pdf》,虽然与Nginx的安装无关,但它是Python爬虫学习的重要资源。Python爬虫是数据抓取和分析的有效工具,可以配合Nginx进行日志分析或其他自动化任务。 总结来说,Nginx的安装...
这份“Linux内核笔记-很强大很详细的”压缩包包含了两个PDF文档,分别是“joyfire的linux内核笔记.pdf”和“joyfire的linux系统管理笔记.pdf”,它们深入浅出地探讨了Linux内核的各个方面,对于想要深入理解Linux...