`

Linux学习笔记-12. 日志管理

 
阅读更多

 

 

12.日志管理

 

 

12.1.日志管理简介

 

 

1、日志服务

 

CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务。rsyslogd日志服务更加先进,功能更多。但是不论该服务的使用,还是日志文件的格式其实都是和syslogd服务相兼容的,所以学习起来基本和syslogd服务一致。

 

 

2rsyslogd的新特点

基于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

系统定时任务crontabat产生的日志

deamon

和各个守护进程相关的日志

ftp

ftp守护进程产生的日志

kern

内核产生的日志,不是用户进程产生的

local0-local7

为本地使用预留的服务

lpr

打印产生的日志

mail

邮件收日志

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日志,用来保存新的日志,以此类推。

 

 

2logrotate配置文件

 

参数

参数说明

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

}

 

 

 

4logrotate命令

 

语法:

logrotate [选项] 配置文件名

 

如果此命令没有选项,则会按照配置文件中的条件进行日志轮替。

-v:显示日志轮替过程。加了-v选项,会显示日志的轮替的过程。

-f:强制进行日志轮替。不管日志轮替的条件是否已经符合,强制配置文件中所有的日志进行轮替

 

 

 

12.4.启动引导程序-Grub加密与字符界面分辨率调整

 

 

 

 

在启动的时候,按下任意键盘,就可以进行Grub的选择界面

 

然后按下e键,就可以编辑Grub配置文件了,但是每个人都可以编辑不安全。所要设置grub密码。

 

 

1grub加密

 

命令:

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学习笔记Linux学习资料Linux教程

    【linux学习笔记-12】守护进程的日志实现.doc 【linux学习笔记-13】基本进程通信--文件锁.doc 【linux学习笔记-14】基本进程通信--信号.doc 【linux学习笔记-15】基本进程通信--管道.doc 【linux学习笔记-16】shell...

    非常宝贵的LINUX学习笔记

    【linux学习笔记-12】守护进程的日志实现 【linux学习笔记-13】基本进程通信--文件锁 【linux学习笔记-14】基本进程通信--信号 【linux学习笔记-15】基本进程通信--管道 【linux学习笔记-16】shell管道重定向程序的...

    apache-tomcat-7.0.47.rar

    2. **日志管理**:日志文件位于`logs`目录下,了解如何配置和分析这些日志对于问题排查至关重要。 3. **部署应用**:将WAR文件放入`webapps`目录,Tomcat会自动部署并运行该应用。 4. **安全性**:确保配置`conf/...

    linux-2.6.12.tar.gz

    Linux内核是操作系统的核心部分,负责管理系统的硬件资源、提供基础服务给各种应用程序,并且是开源的,允许全世界的开发者参与其开发与改进。"linux-2.6.12.tar.gz"是一个针对Linux内核的源代码压缩包,特别的是,...

    嵌入式Liunx应用程序开发笔记-代码.zip

    这份"嵌入式Linux应用程序开发笔记-代码.zip"资源显然是为那些希望深入理解该领域的学生或工程师准备的,特别适用于毕业设计和课程设计任务。 在嵌入式Linux应用开发中,开发者需要掌握以下关键知识点: 1. **...

    Linux学习笔记PDF文档.pdf

    Linux学习笔记PDF文档.pdf是一个详尽的资源,旨在帮助初学者和有经验的用户深入理解Linux操作系统。Linux作为开源的类Unix系统,以其稳定、安全和可定制性在全球范围内广泛应用于服务器、桌面环境以及嵌入式设备。这...

    oracle10g实战教程ppt+课堂笔记 - 香饽饽.rar

    本教程将通过韩顺平老师的PPT和课堂笔记,为初学者提供一个全面且深入的Oracle 10g学习路径。 一、Oracle 10g基础 Oracle 10g的基础部分涵盖了数据库安装、配置和管理。首先,你需要了解如何在不同的操作系统上...

    linux学习笔记--很经典

    本篇“Linux学习笔记”详细介绍了Linux的基本目录结构及其各自的功能,这对于初学者理解Linux系统的核心概念非常重要。 #### 二、Linux目录结构解析 1. **/(根目录)** - 根目录是Linux文件系统的起点,所有的...

    armlinux学习笔记--触摸屏驱动程序分析

    "armlinux学习笔记--触摸屏驱动程序分析"这本书深入探讨了这个主题,旨在帮助读者理解和开发针对Linux系统的触摸屏驱动。以下是关于这一主题的详细知识解析: 1. **嵌入式Linux**:嵌入式Linux是指将Linux操作系统...

    写得蛮好的linux学习笔记--linux目录架构

    Linux作为一款广泛使用的开源操作系统,其目录结构设计严谨,层次分明,对系统的稳定运行和资源管理起着至关重要的作用。本文旨在深入解析Linux的目录架构,帮助读者更好地理解每个目录的功能与用途。 #### 根目录...

    rhel6.0-dns-configuration.rar_rhel6

    `Rhel6 dns配置-mosquito.docx`文档可能包含了作者在学习DNS配置过程中的笔记和经验,对于深入理解和实践RHEL6 DNS配置非常有帮助。建议仔细阅读和参考这份文档,结合实际操作,以掌握这一关键的系统管理技能。

    ipython_genutils-0.2.0.tar.gz

    `ipython_genutils-0.2.0.tar.gz` 是一个专门为Linux系统设计的压缩包,主要用于支持IPython的运行和扩展。IPython是一个强大的交互式计算环境,它被广泛用于数据科学、机器学习和教学等领域。这个压缩包包含了一...

    MQTTBox-windows.rar

    8. **日志记录**:MQTTBox提供日志记录功能,帮助开发者调试和分析客户端与服务器的交互情况。 9. **多种语言支持**:MQTTBox界面多语言化,方便不同国家和地区的用户使用。 10. **跨平台**:除了Windows版本,...

    Linux学习笔记--RuanJava

    在Linux学习过程中,了解操作系统的核心结构以及主要目录的用途至关重要。Linux系统采用的是层次化的目录结构,这使得系统管理更为有序。以下是对标题和描述中涉及的一些关键知识点的详细解释: 1. **根目录** `/`...

    一本Linux学习笔记33页.pdf

    Linux学习笔记涵盖了许多核心主题,帮助初学者逐步掌握这一开源操作系统。笔记的详细内容如下: ### 第一章:Linux简介及安装 1. **Linux介绍**:Linux是一种自由和开放源代码的操作系统,基于Unix,由全球各地的...

    linux学习笔记-01linux操作基础

    ### Linux学习笔记—01 Linux操作基础 #### 1. Linux 基础命令与用法 在Linux操作系统中,掌握一系列的基础命令是非常重要的。这些命令可以帮助用户进行各种日常操作,比如文件管理、目录切换、文件查看等。下面将...

    k8s-v.1.14.2搭建和操作(安装-web-监控-完成)-kubernetes的kubeadmin高可用包和详细文档笔记

    日志管理工具如Elasticsearch、Logstash和Kibana(ELK栈)则帮助收集和分析应用日志。 8. **应用部署和扩展**:通过YAML文件定义应用的部署策略,可以使用kubectl命令行工具或者Dashboard进行部署、更新和扩缩容。 ...

    老男孩Linux运维笔记--文字版

    这份笔记以其实践性强、实用价值高的特点,深受广大Linux运维人员的喜爱,是日常学习和工作中不可或缺的参考资料。 在Linux运维的世界里,掌握基础与进阶知识至关重要。首先,你需要了解Linux操作系统的基本结构和...

    nginx安装所需依赖和安装包

    关于《最牛逼的Python爬虫学习笔记.pdf》,虽然与Nginx的安装无关,但它是Python爬虫学习的重要资源。Python爬虫是数据抓取和分析的有效工具,可以配合Nginx进行日志分析或其他自动化任务。 总结来说,Nginx的安装...

    Linux内核笔记-很强大很详细的

    这份“Linux内核笔记-很强大很详细的”压缩包包含了两个PDF文档,分别是“joyfire的linux内核笔记.pdf”和“joyfire的linux系统管理笔记.pdf”,它们深入浅出地探讨了Linux内核的各个方面,对于想要深入理解Linux...

Global site tag (gtag.js) - Google Analytics