写在前面的话:
最近在看一本书,叫效率读书,其中讲述了两种思维,一种是发散性思维,一种是专注性思维,当我们在专注做一件事的时候,其实能持续的时间不是很长,大约在25分钟左右,如果时间过长,那么就会消耗很大,这个时候可以想想其他的事来分散一下注意力,也就是使用发散性思维,一般我是洗个澡,感觉洗了之后,思维比较清晰,各位也可以试试。
1、 前言
在操作系统中,存在着各种各样的事件,那么用什么来记录这些事件发生的时间和相关信息呢?那么就会用日志系统rsyslog(RHEL6.X)。
2 、 日志系统
在RHEL5.X的时候,使用的服务如下所示:
[root@testDB ~]#ps -ef|grep -E "syslogd|klogd"(RHEL5.X记录日志信息服务)
root 2994 1 0 Sep06 ? 00:00:01 syslogd -m 0(记录非内核产生的信息)
root 2997 1 0 Sep06 ? 00:00:00 klogd -x(记录kernel产生的信息)
在RHEL6.X的时候,使用的服务如下所示:
[root@rsyncserverscripts]# ps -ef|grep rsyslogd(RHEL6.X记录日志信息服务)
root 1662 1 0 01:17 ? 00:00:00 /sbin/rsyslogd -i/var/run/syslogd.pid -c 4
在RHEL6.X的时候,使用一个服务来记录相关子系统的信息,并且内核产生的信息也是使用服务rsyslog来进行记录,在查看配置文件的时候,可以看到加载了相关的模块,从而使用模块来进行动态的加载,从而写入相关的日志信息。
2.1 内核信息记录
内核产生的记录,最主要的就是写入到如下文件中:
[root@rsyncserverscripts]# ls -l /var/log/dmesg(内核信息boot.messages启动信息)
-rw-r--r-- 1root root 20395 Nov 1 00:42 /var/log/dmesg
在进行启动系统的时候,每次dmesg文件都会被清空,然后重新写入,会将相关的启动信息写入到此文件中。
在内核产生其他信息的时候,一个是写入到物理终端中,也就是设备/dev/console,另外一个就是写入dmesg文件。
[root@rsyncserver~]# less dmesg(查看开机启动信息)
[root@rsyncserver~]# tail -f /var/log/dmesg(查看内核最近产生的日志信息)
platformmicrocode: firmware: requesting intel-ucode/06-2a-07
microcode: CPU3sig=0x206a7, pf=0x1, revision=0x0
platformmicrocode: firmware: requesting intel-ucode/06-2a-07
Microcode UpdateDriver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
parport_pc00:04: reported by Plug and Play ACPI
2.2 其他日志信息
常见的日志信息记录路径如下所示:
# Log anything(except mail) of level info or higher.
# Don't logprivate authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages(系统标准错误日志信息,不写入邮件,认证和定时任务的信息)
# The authprivfile has restricted access.
authpriv.* /var/log/secure(安全日志信息)
# Log all themail messages in one place.
mail.* -/var/log/maillog(邮件日志信息,采用的是异步写入)
# Log cron stuff
cron.* /var/log/cron(定时任务日志信息)
# Everybody getsemergency messages
*.emerg *(紧急信息会发送给在线的所有人员,也就是直接在屏幕上输出)
# Save newserrors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler(新闻的严重的日志信息)
最需要关注的日志信息路径如下所示:
[root@rsyncserver~]# ls -l /var/log/{messages,secure}
-rw------- 1root root 63652 Nov 1 02:48/var/log/messages(系统日志信息)
-rw------- 1root root 13697 Nov 1 00:47/var/log/secure(认证日志信息)
可以看出来,这些日志信息的权限均为600,主要在启动服务的时候,设定了umask,从而在创建文件的时候,都会使用这个权限,如下所示:
[root@rsyncserver~]# grep umask /etc/init.d/rsyslog (设置文件权限位600,保障安全性)
umask 077
系统日志信息如下:
[root@rsyncserverlog]# tail -f messages-20161016
Oct 14 02:51:59localhost kernel: kjournald starting. Commit interval 5 seconds
Oct 14 02:51:59localhost kernel: EXT3-fs (sdd2): using internal journal
Oct 14 02:51:59localhost kernel: EXT3-fs (sdd2): mounted filesystem with ordered data mode
Oct 14 02:58:21localhost kernel: kjournald starting. Commit interval 5 seconds
Oct 14 02:58:21localhost kernel: EXT3-fs (sdd1): using internal journal
记录的相关信息为:
Ø 时间
Ø 主机名(主要是根据配置文件/etc/hosts文件进行解析)
Ø 相关信息
认证信息如下所示:
[root@rsyncserverlog]# tail -f /var/log/secure(认证信息)
Nov 1 03:20:53 localhost sshd[1778]: Acceptedpassword for root from 192.168.1.11 port 50192 ssh2
Nov 1 03:20:53 localhost sshd[1778]:pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 1 03:22:18 localhost su: pam_unix(su-l:session):session opened for user kel by root(uid=0)
Nov 1 03:22:23 localhost su: pam_unix(su-l:auth): authentication failure;logname=root uid=500 euid=0 tty=pts/1 ruser=kel rhost= user=root
Nov 1 03:22:40 localhost sshd[2248]: Acceptedpassword for root from 192.168.1.11 port 50212 ssh2
Nov 1 03:22:40 localhost sshd[2248]:pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 1 03:22:47 localhost sshd[2248]:channel_by_id: 0: bad id: channel free
Nov 1 03:22:47 localhost sshd[2248]: Disconnecting:Received ieof for nonexistent channel 0.
Nov 1 03:22:47 localhost sshd[2248]:pam_unix(sshd:session): session closed for user root
Nov 1 03:22:54 localhost sshd[2265]: pam_unix(sshd:auth): authentication failure;logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.1.11 user=root
Nov 1 03:22:57 localhost sshd[2265]: Failedpassword for root from 192.168.1.11 port 50216 ssh2
Nov 1 03:23:04 localhost sshd[2265]: Failedpassword for root from 192.168.1.11 port 50216 ssh2
Nov 1 03:23:07 localhost sshd[2266]: Receiveddisconnect from 192.168.1.11: 0:
Nov 1 03:23:07 localhost sshd[2265]: PAM 1 moreauthentication failure; logname= uid=0 euid=0 tty=ssh ruser=rhost=192.168.1.11 user=root
记录的字段如下所示:
Ø 时间
Ø 主机名称
Ø 服务模块
Ø 相关信息
2.3 日志级别
在记录的相关信息的时候,可以看到记录的日志级别:debug,info,notice,warning,error,critic,alert,emergic,panic。
3、 服务及配置
日志系统的配置文件如下:
[root@rsyncserver~]# ls -l /etc/rsyslog.conf (配置文件路径)
-rw-r--r-- 1root root 2813 Nov 1 03:31/etc/rsyslog.conf
第一部分为加载的模块,也就是需要写入哪些信息
第二部分为全局设定,也就是时间的显示设定
第三部分为写入的规则,也就是记录的日志级别
3.1 将日志写入到其他主机
当需要将日志写入到其他主机的日志文件的时候,可以使用如下的方法:
编辑配置文件:/etc/rsyslog.conf
# Provides UDPsyslog reception
$ModLoadimudp.so
$UDPServerRun514
在目标主机上必须加载模块,并开放514端口,重新加载rsyslog服务,如下:
[root@rsyncserver~]# /etc/init.d/rsyslog reload(重新加载配置文件)
Reloading systemlogger... [ OK ]
[root@rsyncserver~]# netstat -tunlp|grep 514(查看监听端口)
udp 0 0 0.0.0.0:514 0.0.0.0:* 2352/rsyslogd
udp 0 0 :::514 :::* 2352/rsyslogd
配置文件中可以加入两条策略,写入本地并同时写入到远程主机上:
# The authprivfile has restricted access.
authpriv.* /var/log/secure(写入本机)
authpriv.* @192.168.1.63:514(写入远程主机)
3.2 服务的启停
服务的启停如下所示:
[root@rsyncserver~]# /etc/init.d/rsyslog reload(重新加载配置文件)
Reloading systemlogger... [ OK ]
[root@rsyncserver~]# /etc/init.d/rsyslog restart(重新启动)
Shutting downsystem logger: [ OK ]
Starting systemlogger: [ OK ]
[root@rsyncserver~]# /etc/init.d/rsyslog start(启动)
Starting systemlogger:
[root@rsyncserver~]# /etc/init.d/rsyslog stop(停止)
Shutting downsystem logger: [ OK ]
也可以使用service的方式:
[root@rsyncserver~]# service rsyslog restart(使用service的方式重启)
Shutting downsystem logger: [ OK ]
Starting systemlogger: [ OK ]
查看其他主机发送的日志信息:
4、 脚本中测试创建文件的权限
在进行使用日志信息的时候,可以发现创建的日志权限位600,查看脚本,使用的方式是umask,从而使用脚本测试下创建文件的权限,如下所示:
[root@rsyncserverscripts]# cat createfile.sh (查看测试脚本内容)
#!/bin/bash
umask 077
touch/var/lock/subsys/kel.log
ls -l/var/lock/subsys/kel.log
[root@rsyncserverscripts]# ./createfile.sh (查看创建文件的权限,从而每次创建文件的时候,可以使用umask来指定文件的权限,只对当前脚本有效)
-rw------- 1root root 0 Nov 1 08:42/var/lock/subsys/kel.log
本文分享自微信公众号 - SRE运维实践(gh_319dd73ec076)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4581338/blog/4580715