美文网首页
日志管理

日志管理

作者: 予爷 | 来源:发表于2018-11-28 19:46 被阅读0次

       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 ~]# sshroot@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

    注释:

     #$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 相关的信息

    作者:白色衬衫_f48d

    链接:https://www.jianshu.com/p/dd8402315a7d

    來源:简书

    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    相关文章

      网友评论

          本文标题:日志管理

          本文链接:https://www.haomeiwen.com/subject/ccnzqqtx.html