• 18.5 分析登录文件
    • 18.5.1 CentOS 默认提供的 logwatch
    • 18.5.2 鸟哥自己写的登录文件分析工具:

    18.5 分析登录文件

    登录文件的分析是很重要的!你可以自行以 vim 或者是 journalctl 进入登录文件去查阅相关的信息。而系统也提供一些软件可以让你从登录文件中取得数据, 例如之前谈过的 last, lastlog, dmesg 等等指令。不过,这些数据毕竟都非常的分散,如果你想要一口气读取所有的登录信息, 其实有点困扰的。不过,好在 CentOS 有提供 logwatch 这个登录文件分析程序,你可以借由该程序来了解登录文件信息。 此外,鸟哥也依据 Red Hat 系统的 journalctl 搭配 syslog 函数写了一支小程序给大家使用喔!

    18.5.1 CentOS 默认提供的 logwatch

    虽然有一些有用的系统指令,不过,要了解系统的状态,还是得要分析整个登录文件才行~ 事实上,目前已经有相当多的登录文件分析工具,例如 CentOS 7.x 上面默认的 logwatch 这个套件所提供的分析工具, 他会每天分析一次登录文件,并且将数据以 email 的格式寄送给 root 呢! 你也可以直接到 logwatch 的官方网站上面看看:

    • http://www.logwatch.org/
      不过在我们的安装方式里面,默认并没有安装 logwatch 就是了!所以,我们先来安装一下 logwatch 这套软件再说。假设你已经将 CentOS 7.1 的原版光盘挂载在 /mnt 当中了,那使用下面的方式来处理即可:
    1. [root@study ~]# yum install /mnt/Packages/perl-5.*.rpm
    2. > /mnt/Packages/perl-Date-Manip-*.rpm \
    3. > /mnt/Packages/perl-Sys-CPU-*.rpm \
    4. > /mnt/Packages/perl-Sys-MemInfo-*.rpm \
    5. > /mnt/Packages/logwatch-*.rpm
    6. # 得要安装数个软件才能够顺利的安装好 logwatch 喔!当然,如果你有网络,直接安装就好了!
    7. [root@study ~]# ll /etc/cron.daily/0logwatch
    8. -rwxr-xr-x. 1 root root 434 Jun 10 2014 /etc/cron.daily/0logwatch
    9. [root@study ~]# /etc/cron.daily/0logwatch

    安装完毕以后,logwatch 就已经写入 cron 的运行当中了!详细的执行方式你可以参考上表中 0logwatch 文件内容来处理,未来则每天会送出一封 email 给 root 查阅就是了。因为我们刚刚安装,那可以来分析一下吗?很简单啦!你就直接执行 0logwatch 即可啊!如上表最后一个指令的示意。因为鸟哥的测试机目前的服务很少, 所以产生的信息量也不多,因此执行的速度很快。比较忙的系统信息量比较大,分析过程会花去一小段时间。如果顺利执行完毕,那请用 root 的身份去读一下 email 啰!

    1. [root@study ~]# mail
    2. Heirloom Mail version 12.5 7/5/10\. Type ? for help.
    3. "/var/spool/mail/root": 5 messages 2 new 4 unread
    4. >N 4 root Thu Jul 30 19:35 29/763 "testing at job"
    5. N 5 logwatch@study.cento Thu Aug 20 17:55 97/3045 "Logwatch for study.centos.vbird (Linux)"
    6. & 5
    7. Message 5:
    8. From root@study.centos.vbird Thu Aug 20 17:55:23 2015
    9. Return-Path: <root@study.centos.vbird>
    10. X-Original-To: root
    11. Delivered-To: root@study.centos.vbird
    12. To: root@study.centos.vbird
    13. From: logwatch@study.centos.vbird
    14. Subject: Logwatch for study.centos.vbird Linux
    15. Auto-Submitted: auto-generated
    16. Precedence: bulk
    17. Content-Type: text/plain; charset="iso-8859-1"
    18. Date: Thu, 20 Aug 2015 17:55:23 +0800 CST
    19. Status: R
    20. # logwatch 会先说明分析的时间与 logwatch 版本等等信息
    21. ################### Logwatch 7.4.0 (03/01/11) ####################
    22. Processing Initiated: Thu Aug 20 17:55:23 2015
    23. Date Range Processed: yesterday
    24. 2015-Aug-19
    25. Period is day.
    26. Detail Level of Output: 0
    27. Type of Output/Format: mail / text
    28. Logfiles for Host: study.centos.vbird
    29. ##################################################################
    30. # 开始一项一项的数据进行分析!分析得很有道理啊!
    31. --------------------- pam_unix Begin ------------------------
    32. su-l:
    33. Sessions Opened:
    34. dmtsai -> root: 2 Times
    35. ---------------------- pam_unix End -------------------------
    36. --------------------- Postfix Begin ------------------------
    37. 894 Bytes accepted 894
    38. 894 Bytes delivered 894
    39. ======== ==================================================
    40. 2 Accepted 100.00%
    41. -------- --------------------------------------------------
    42. 2 Total 100.00%
    43. ======== ==================================================
    44. 2 Removed from queue
    45. 2 Delivered
    46. ---------------------- Postfix End -------------------------
    47. --------------------- SSHD Begin ------------------------
    48. Users logging in through sshd:
    49. dmtsai:
    50. 192.168.1.200: 2 times
    51. Received disconnect:
    52. 11: disconnected by user : 1 Times
    53. ---------------------- SSHD End -------------------------
    54. --------------------- Sudo secure-log Begin ------------------------
    55. dmtsai => root
    56. --------------
    57. /bin/su - 2 Times).
    58. ---------------------- Sudo secure-log End -------------------------
    59. # 当然也得说明一下目前系统的磁盘使用状态喔!
    60. --------------------- Disk Space Begin ------------------------
    61. Filesystem Size Used Avail Use% Mounted on
    62. /dev/mapper/centos-root 10G 3.7G 6.3G 37% /
    63. devtmpfs 1.4G 0 1.4G 0% /dev
    64. /dev/vda2 1014M 141M 874M 14% /boot
    65. /dev/vda4 1014M 33M 982M 4% /srv/myproject
    66. /dev/mapper/centos-home 5.0G 642M 4.4G 13% /home
    67. /dev/mapper/raidvg-raidlv 1.5G 33M 1.5G 3% /srv/raidlvm
    68. ---------------------- Disk Space End -------------------------

    由于鸟哥的测试用主机尚未启动许多服务,所以分析的项目很少。若你的系统已经启动许多服务的话, 那么分析的项目理应会多很多才对。

    18.5.2 鸟哥自己写的登录文件分析工具:

    虽然已经有了类似 logwatch 的工具,但是鸟哥自己想要分析的数据毕竟与对方不同~所以啰,鸟哥就自己写了一支小程序 (shell script 的语法) 用来分析自己的登录文件,这支程序分析的登录文件主要由 journalctl 所产生,而且只会抓前一天的登录文件来分析而已~ 若比对 rsyslog.service 所产生的登录文件,则主要用到下面几个对应的文件名 (虽然真的没用到! ^_^):

    • /var/log/secure
    • /var/log/messages
    • /var/log/maillog
      当然啦,还不只这些啦,包括各个主要常见的服务,如 pop3, mail, ftp, su 等会使用到 pam 的服务, 都可以通过鸟哥写的这个小程序来分析与处理呢~整个数据还会输出一些系统信息。如果你想要使用这个程序的话, 欢迎下载:

    • http://linux.vbird.org//linux_basic/0570syslog//logfile_centos7.tar.gz
      安装的方法也很简单,你只要将上述的文件在根目录下面解压缩,自然就会将 cron 调度与相对应的文件放到正确的目录去。 基本上鸟哥会用到的目录有 /etc/cron.d 以及 /root/bin/logfile 而已!鸟哥已经写了一个 crontab 在文件中,设置每日 00:10 去分析一次系统登录文件。 不过请注意,这次鸟哥使用的登录文件真的是来自于 journalctl ,所以 CentOS 6 以前的版本千万不要使用喔!现在假设我将下载的文件放在跟目录,所以:

    1. [root@study ~]# tar -zxvf /logfile_centos7.tar.gz -C /
    2. [root@study ~]# cat /etc/cron.d/vbirdlogfile
    3. 10 0 * * * root /bin/bash /root/bin/logfile/logfile.sh &> /dev/null
    4. [root@study ~]# sh /root/bin/logfile/logfile.sh
    5. # 开始尝试分析系统的登录文件,依据你的登录文件大小,分析的时间不固定!
    6. [root@study ~]# mail
    7. # 自己找到刚刚输出的结果,该结果的输出有点像下面这样:
    8. Heirloom Mail version 12.5 7/5/10\. Type ? for help.
    9. "/var/spool/mail/root": 9 messages 4 new 7 unread
    10. N 8 root Thu Aug 20 19:26 60/2653 "study.centos.vbird logfile analysis results"
    11. >N 9 root Thu Aug 20 19:37 59/2612 "study.centos.vbird logfile analysis results"
    12. & 9
    13. # 先看看你的硬件与操作系统的相关情况,尤其是 partition 的使用量更需要随时注意!
    14. =============== system summary =================================
    15. Linux kernel : Linux version 3.10.0-229.el7.x86_64 builder@kbuilder.dev.centos.org
    16. CPU informatin: 2 IntelR XeonR CPU E5-2650 v3 @ 2.30GHz
    17. CPU speed : 2299.996 MHz
    18. hostname is : study.centos.vbird
    19. Network IP : 192.168.1.100
    20. Check time : 2015/August/20 19:37:25 Thursday
    21. Summary date : Aug 20
    22. Up times : 3 days, 59 min,
    23. Filesystem summary:
    24. Filesystem Type Size Used Avail Use% Mounted on
    25. /dev/mapper/centos-root xfs 10G 3.7G 6.3G 37% /
    26. devtmpfs devtmpfs 1.4G 0 1.4G 0% /dev
    27. tmpfs tmpfs 1.4G 48K 1.4G 1% /dev/shm
    28. tmpfs tmpfs 1.4G 8.7M 1.4G 1% /run
    29. tmpfs tmpfs 1.4G 0 1.4G 0% /sys/fs/cgroup
    30. /dev/vda2 xfs 1014M 141M 874M 14% /boot
    31. /dev/vda4 xfs 1014M 33M 982M 4% /srv/myproject
    32. /dev/mapper/centos-home xfs 5.0G 642M 4.4G 13% /home
    33. /dev/mapper/raidvg-raidlv xfs 1.5G 33M 1.5G 3% /srv/raidlvm
    34. /dev/sr0 iso9660 7.1G 7.1G 0 100% /mnt
    35. # 这个程序会将针对 internet 与内部监听的端口分开来显示!
    36. ================= Ports 的相关分析信息 =======================
    37. 主机启用的 port 与相关的 process owner
    38. 对外部接口开放的 ports PID|owner|command
    39. tcp 21|(root)|/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    40. tcp 22|(root)|/usr/sbin/sshd -D
    41. tcp 25|(root)|/usr/libexec/postfix/master -w
    42. tcp 222|(root)|/usr/sbin/sshd -f /etc/ssh/sshd2_config -D
    43. tcp 514|(root)|/usr/sbin/rsyslogd -n
    44. tcp 555|(root)|/usr/sbin/vsftpd /etc/vsftpd/vsftpd2.conf
    45. # 以下针对有启动的服务个别进行分析!
    46. ================= SSH 的登录文件信息汇整 =======================
    47. 今日没有使用 SSH 的纪录
    48. ================= Postfix 的登录文件信息汇整 ===================
    49. 使用者信箱受信次数:

    目前鸟哥都是通过这支程序去分析自己管理的主机,然后再据以了解系统状况,如果有特殊状况则实时进行系统处理! 而且鸟哥都是将上述的 email 调整成自己可以在 Internet 上面读到的邮件,这样我每天都可以收到正确的登录文件分析信息哩!

    原文: https://wizardforcel.gitbooks.io/vbird-linux-basic-4e/content/161.html