日志管理

                                       Linux日志管理

自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)。

一、设置主机名

#hostname                      查看完整的主机名

#hostname -f                   查看主机名、域名

①临时设置主机名(立竿见影),需要切换用户使之生效

#hostname  设置的主机名

例如:需要将当前的主机的主机名设置成yunwei.itcast.cn

②永久设置主机名(需要重启生效)先找到文件/etc/sysconfig/network【主机名的配置文件】

修改其中的HOSTNAME为自己需要设置的永久主机名

二、centos7系统启动过程及相关配置文件

 centos7系统启动过程CentOS7引导顺序

1.UEFi或BIOS初始化,运行POST开机自检

2.选择启动设备             # 光盘

3.引导装载程序,            centos7是grub2

4.加载装载程序的配置文件:/etc/grub.d/          /etc/default/grub         /boot/grub2/grub.cfg

5.加载内核选项

6.加载initramfs初始化伪文件系统

7.内核初始化,centos7使用systemd代替init

8.执行initrd.target所有单元,包括挂载/etc/fstab                     #target是目标的意思

9.从initramfs根文件系统切换到磁盘根目录

10.systemd执行默认target配置,配置文件/etc/systemd/system/default.target

11.systemd执行sysinit.target初始化系统及basic.target准备操作系统

12.systemd启动multi-user.target下的本机与服务器服务

13.systemd执行multi-user.target下的/etc/rc.d/rc.local

14.Systemd执行multi-user.target下的getty.target及登录服务

15.systemd执行graphical需要的服务                   #图形界面

三、crontab计划任务介绍

计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

计划任务的安排方式分两种:

一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情

一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务

at和crontab这两个命令:

at:它是一个可以处理仅执行一次就结束的指令

crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去

突发性的命令:

语法格式: at     时间 ;              服务:       atd

 [root@localhost ~]# systemctl start atd               #开启atd服务

[root@localhost ~]# systemctl status atd             #查看atd服务状态

[root@localhost ~]# systemctl is-enabled atd     #查看是否开始开机启动服务,如果弹出enabled,说明开机启动此服务

实战-使用at创建计划任务

[root@localhost ~]# date                    #查看系统时间

2018年 05月 21日 星期一 20:43:29 CST

 [root@localhost ~]# at 20:46     #注意:如果是上午时间,后面加上am,比如9:20am

at> mkdir /tmp/yun                         #输入你要执行的命令

at> touch /tmp/yun/a.txt                

at< EOT>                                         结束:ctrl+d

 [root@localhost ~]# at -l                           #查看计划任务

 [root@localhost ~]# atq                            #查看计划任务

 检查at计划任务运行结果:

[root@localhost ~]# ls /tmp/yun/                

查看和删除at将要执行的计划任务

这个查看,只能看到还没有执行的。如果这个任务已经开始执行或者执行完成了,是看不到的 [root@localhost ~]# at -l              

 [root@localhost ~]# at -c 1              #-c 打印任务的内容到标准输出, 查看1号计划任务具体内容 查看定时任务内容

[root@localhost ~]# ls /var/spool/at/

a00003018452cb a0000501845084 spool

[root@localhost ~]# tail -5 /var/spool/at

a0000501845084                  

at计划任务的特殊写法

 [root@localhost ~]# at 20:00 2018-10-1                  在某天

 [root@localhost ~]#at now +10min                         在 10分钟后执行 

[root@localhost ~]# at 17:00 tomorrow                   明天下午5点执行

 [root@localhost ~]#at 6:00 pm +3 days                  在3天以后的下午6点执行

 [root@localhost ~]# at 23:00 < a.txt                        # 把a.txt的内容给 23:00这个时间

删除at计划任务

 语法: atrm   任务编号

 [root@localhost ~]# at -l 

3  Tue May 22 08:43:00 2018 a root

5  Mon May 21 23:00:00 2018 a root

[root@localhost ~]# atrm 5

 [root@localhost ~]# at -l

 四、crontab定时任务的使用

语法:#crontab  选项 

常用选项:

 -l:list,列出指定用户的计划任务列表

 -e:edit,编辑指定用户的计划任务列表

 -u:user,指定的用户名,如果不指定,则表示当前用户

 -r:remove,删除指定用户的计划任务列表

①列出 看到上述的提示表示root用户没有计划任务需要去做。

②编辑计划任务(重点)

 计划任务的规则语法格式,以行为单位,一行则为一个计划:

分  时  日  月  周   需要执行的命令

 例如:如果想要每天的0点0分执行reboot指令,则可以写成 0 0 * * * reboot

取值范围(常识):

分:0~59               时:0~23           日:1~31             月:1~12       周:0~7,0和7表示星期天 四个符号:

 *:表示取值范围中的每一个数字

-:做连续区间表达式的,要想表示1~7,则可以写成:1-7

 /:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10

,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6

问题1:

每月1、10、22日的4:45重启network服务

45 4 1,10,22 * * service network restart

问题2:每周六、周日的1:10重启network服务

10 1 * * 6,7 service network restart

问题3:每天18:00至23:00之间每隔30分钟重启network服务

 */30 18-23 * * * service network restart

问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启

3,15 8-11 */2 * * reboot

 案例:真实测试案例,每1分钟往root家目录中的RT.txt中输一个1,为了看到效果使用追加输出 */1 * * * * echo 1 >> /root/RT.txt

执行的效果: 注意:在计划任务中,默认的最小单位就是分,不能再小了。

五、系统日志管理

系统日志文件概述:/var/log目录保管由rsyslog维护的,里面存放的一些特定于系统和服务的日志文件

/var/log/messages              大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等

/var/log/secure                   安全和身份验证相关的消息和登录失败的日志文件。 ssh远程连接产生的日志

/var/log/maillog 与邮件服务器相关的消息日志文件

在centos7中,系统日志消息由rsyslog 服务负责处理

常见日志文件的作用

/var/log/cron                            与定期执行任务相关的日志文件

/var/log/boot.log                      与系统启动相关的消息记录

/var/log/dmesg                        与系统启动相关的消息记录

例1:查看哪个IP地址经常暴力破解系统用户密码

[root@localhost ~]# ssh [email protected]    #故意输错3次密码

 查看安全和身份验证日志:

[root@localhost ~]# grep Failed /var/log/secure

案例:使用 /var/log/btmp文件查看系统的用户

/var/log/btmp文件是记录错误登录系统的日志。如果发现/var/log/btmp日志文件比较大,大于1M,就算大了,就说明很多人在暴力破解ssh服务,此日志需要使用lastb程序查看 [root@localhost log]# ll -h /var/log/btmp

                                               日志的记录方式

 分类 →级别

日志的分类:

daemon:后台进程相关               kern :内核产生的信息          lpr :打印系统产生的

authpriv :安全认证                     cron: 定时相关                    mail: 邮件相关

syslog :日志服务本身的             news :新闻系统

 local0~7            自定义的日志设备

local0-local7          日志的级别: 轻→重

 7             debug              信息对开发人员调试应用程序有用,在操作过程中无用

6              info                  正常的操作信息,可以收集报告,测量吞吐量等

5             notice                注意,正常但重要的事件,

4             warning             警告,提示如果不采取行动。将会发生错误。比如文件系统使用90%

3             err                     错误,阻止某个模块或程序的功能不能正常使用

2             crit                    关键的错误,已经影响了整个系统或软件不能正常工作的信息

1             alert                 警报,需要立刻修改的信息

0             emerg              紧急,内核崩溃等严重信息

rsyslog日志服务

       ->服务名称rsyslog                             ->配置文件 /etc/rsyslog.conf

我们来查看一下日志的配置文件信息:

编辑配置文件                      vim /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none                           /var/log/messages authpriv.*                                                                            /var/log/secure

mail.*                                                                                  -/var/log/maillog

cron.*                                                                                  /var/log/cron

*.emerg                                                                              :omusrmsg:* uucp,news.crit                                                                    /var/log/spooler local7.*                                                                                  /var/log/boot.log

注释:

 #$UDPServerRun 514 #允许514端口接收使用UDP协议转发过来的日志 #$InputTCPServerRun 514 ##允许514端口接收使用TCP协议转发过来的日志

 #kern.*        内核类型的所有级别日志→存放到→                  /dev/console *.info;mail.none;authpriv.none;cron.none                               /var/log/messages

所有的类别级别是info以上 除了mail,authpriv,cron (产生的日志太多,不易于查看) 

类别.    级别

authpriv.*                 认证的信息→存放→                                   /var/log/secure

 mail.*                      邮件相关的信息→存放→                          -/var/log/maillog

cron.*                      计划任务相关的信息→存放→                    /var/log/cron

local7.*                   开机时显示的信息→存放-->                       /var/log/boot.log

注: “- ”号: 邮件的信息比较多,现将数据存储到内存,达到一定大小,全部写到硬盘.有利于减少I/O进程的开销 数据存储在内存,如果关机不当数据消失

日志输入的规则

 . info                              大于等于info级别的信息全部记录到某个文件

 .=级别                           仅记录等于某个级别的日志

例: .=info 只记录info级别的日志

.! 级别                            除了某个级别意外,记录所有的级别信息

例: .!err 除了err外记录所有

.none                            指的是排除某个类别

例: mail.none 所有mail类别的日志都不记录

实战-自定义ssh服务的日志类型和存储位置

[root@xuegod63 ~]# vim /etc/rsyslog.conf                    #以73行下,插入以下红色标记内容

73                                    local7.*                                          /var/log/boot.log

74                                    local0.*                                          /var/log/sshd.log

注:把local0类别的日志,保存到 /var/log/sshd.log路径

定义ssh服务的日志类别为local0,编辑sshd服务的主配置文件

[root@xuegod63 log]# vim /etc/ssh/sshd_config                     #插入 SyslogFacility local0

改:32 SyslogFacility AUTHPRIV

为:32 SyslogFacility local0

先重启rsyslog服务(生效配置)

[root@localhost ~]# vim /etc/ssh/sshd_config

再重启sshd服务.生成日志

[root@localhost ~]# systemctl restart sshd

验证是否生成日志并查看其中的内容,

[root@localhost ~]# cat -n /var/log/sshd.log                       #说明修改成功

上面对就的信息:时间 主机 服务 进程ID 相关的信息

你可能感兴趣的:(日志管理)