Linux日志管理

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计划任务介绍
大家平常都会有一些比如说:你每天固定几点起床?每天按时上班打卡、每月15号准时开工资、每年2月14你俩口子某某纪念日等这些诸如此类,这些都是定时发生的。或者说是通俗点说:例行公事;还比如说我们还会遇到一些突发事件,临时几点过来加个班?刚好晚上几点聚个餐?
像上面这些情况,如果事少的话你大脑可以记住,如果事很多,像老板经理董事长每天的工作安排,通常都是记在一些本上,或者闹铃提醒等。
那么,咱们的LINUX系统和上面的情况也很类似,我们也可以通过一些设置。来让电脑定时提醒我们该做什么事了。或者我们提前设置好,告诉电脑你几点做什么几点做什么,这种我们就叫它定时任务。而遇到一些需要执行的事情或任务。我们也可以通过命令来告诉电脑一会临时把这个工作给做一下
总结:在我们LINUX中,我们可以通过crontab和at这两个东西来实现这些功能的
计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据

计划任务的安排方式分两种:
一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务

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> #结束:ctrl+d
[root@localhost ~]# at -l #查看计划任务
[root@localhost ~]# atq #查看计划任务
检查at计划任务运行结果:
[root@localhost ~]# ls /tmp/yun/
在这里插入图片描述
查看和删除at将要执行的计划任务
这个查看,只能看到还没有执行的。如果这个任务已经开始执行或者执行完成了,是看不到的
[root@localhost ~]# at -l
在这里插入图片描述
任务编号 执行的时间 队列 执行者
1 Fri Oct 28 20:55:00 2016 a root
[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

在这里插入图片描述
执行的效果:
在这里插入图片描述

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

五、系统日志管理

在centos7中,系统日志消息由rsyslog 服务负责处理
常见日志文件的作用
系统日志文件概述:/var/log目录保管由rsyslog维护的,里面存放的一些特定于系统和服务的日志文件
日志文件 用途
/var/log/messages 大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure 安全和身份验证相关的消息和登录失败的日志文件。 ssh远程连接产生的日志
/var/log/maillog 与邮件服务器相关的消息日志文件
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot.log 与系统启动相关的消息记录
/var/log/dmesg 与系统启动相关的消息记录

例1:查看哪个IP地址经常暴力破解系统用户密码
[root@localhost ~]# ssh root@192.168.1.63 #故意输错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
注释:
#KaTeX parse error: Expected 'EOF', got '#' at position 19: …ServerRun 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 相关的信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值