别人的Linux私房菜(19)认识与分析日志文件
日志文件通常只有root可以读取,解决系统和网络方面的问题。
/var/log/boot.log本次开机系统检测和启动硬件,和内核支持的相关功能的信息记录。
/var/log/cron计划任务有没有被执行,是否正确编写等
/var/log/dmesg开机时内核检测过程产生的信息
/var/log/lastlog所有账号最近一次登录系统的相关信息,和lastlog命令有关
/var/log/maillog或/var/log/mail/*记录发送邮件时(SMTP),postfix产生的信息和接收邮件(POP3)时,dovecot产生的信息
/var/log/messages所有发生错误的信息和重要的信息
/var/log/secure涉及到输入账号密码的登录等信息
/var/log/wtmp、/var/log/faillog正确登录者的账户信息、错误登陆时所使用的账户信息。
如/var/log/httpd/*、/var/log/samba/*等的不同的网络服务自己的日志文件信息
日志文件的产生可以为软件开发商自行定义(如www软件的Apache)和Linux发行版提供的文件管理服务统一管理。
CentOS提供rsyslog.service服务统一管理日志文件。通过logrotate(日志文件轮询)工具自动化处理日志文件。
systemd-journald.service为最主要的信息记录者,由systemd提供,信息记录在内存中,然后发送给rsyslog.service作进一步记录。
rsyslog.service主要收集登录信息和网络等服务信息,为rsyslogd这个基本的daemon的启动脚本设置,在syslog日志文件设计指引下的要求完成。
logrotate,主要进行日志文件的轮询功能。
日志记录分时间,主机名,服务,实际内容栏,日志服务器可以收集来自其他服务器的日志文件数据。
rsylogd针对的各种服务记录日志的配置文件位置在:/etc/rsyslog.conf文件中,规定了服务,记录等级,记录的位置。
Linux内核的syslog函数自行制定了如下的服务:软件开发商调用syslog中的函数完成所需的功能。
等级记录的划分如下,除了如下的划分,还有none(不需登录等级)。应该在debug之上。
rsyslog.conf的信息等级还有相应的符号,
.表示相同或更严重的等级进行记录,.表示相同的等级记录下来,.表示不等于该等级的其他等级记录。
信息放置的位置为:文件路径(绝对路径)、打印机、用户、远程主机、目前在线的所有人。
如果内核产生的信息发送到终端:kern.* /dev/console
在该文件中,所有最紧急的信息会广播给所有系统登录的账户。在邮件系统的-表示日志产生在内存中,当数据量足够大以后一次写入到硬盘。
包括用户自定义的日志在内,写入到/etc/rsyslog.conf文件中,完成记录位置设置。
rsyslogd的日志文件只要被编辑过就无法继续记录,需要重启rsyslog.service才能继续提供服务。
让日志通过chattr设置,a属性,保护日志只能增加数据而无法删除数据或者修改文件名:chattr +a /var/log/admin.log
重要数据通过打印机打印出来。
CentOS7默认的rsyslogd本身基友日志文件服务器的功能,使用端口UDP514或TCP514
设置时在服务器端修改/etc/rsyslog.conf文件中,取消ModLoad和InputTCPServerRun之类的注释保存,然后通过systemctl命令,重启rsyslog.service,通过netstat观察状态。
在客户端,修改/etc/rsyslog.conf中,增加*。* @@192.168.xxx.xxx之类,重启服务。
日志文件的轮询logrotate,挂在cron下面进行,在/etc/cron.daily/logrotate中记录了该日志文件的轮询操作。
/etc/logrotate.conf是主要的参数,/etc/logrotate.d则是一个目录,被/etc/logrotate.conf引用,在/etc/logrotate.d中没有规定的详细设置,使用/etc/logrotate.conf中的设置。
日志文件轮询后的文件名可能会加上时间参数或一般会加上.n数字,便于轮询。
硬盘空间小可以选择压缩文件进行的日志存储。
在/etc/logrotate.d/的文件,数据内容分为,文件名,参数{参数内容},参数内容为执行脚本。
执行脚本中,prerotate表示在启动logrotate之前完成的命令,postrotate在做完logrotate之后启动的命令。用sharedscript对应endscript。
修改脚本在执行前去掉隐藏属性a,在结束前恢复隐藏属性a,以保护,并可以修改日志文件。
强制执行logrotate操作:logrotate -vf /etc/logrotate.conf进行轮询,ll /var/log/messages*;查看
创建自定义的日志轮询,通过在/var/log目录下,建立自己的日志文件,增加a隐藏属性,之后
在/etc/logrotate.d/中,建立自定义的配置文件(注意文件的隐藏属性问题),然后保存。通过手动执行logrotate,进行测试。
systemd被内核唤醒后,通过调用systemd-journald来协助记录日志文件,管理查询登录信息。
该日志数据在内存中,以文件的形式记录在/run/log下。
查看systemd-journald数据,通过journalctl命令查看。-p显示后接的重要性排序(信息等级),-n条数,其他部分选项如下折叠:
--since --until:设定开始与结束的时间,让在该期间的数据输出而已
_SYSTEMD_UNIT=unit.service :只输出 unit.service 的信息而已
_COMM=bash :只输出与 bash 有关的信息
_PID=pid :只输出 PID 号码的信息
_UID=uid :只输出 UID 为 uid 的信息
如显示目前系统中所有的journal日志数据:journalctl
列出昨天和今天的数据:journalctl --since yesterday --until today
如找出crond.service数据,并只列出10条:journalctl _SYSTEMD_UNIT=crond.service -n 10
等
将自定义数据存入日志文件中,使用logger命令。-p接信息等级。
如传入用户的信息:logger -p user.info "this message"
查询:journalctl SYSLOG_FACILITY=1 -n 3
systemd-journald.service的配置文件主要参考/etc/systemd/journald.conf的内容。
在/var/log/journal目录,建立该文件夹,设置合适的文件夹权限,重启 systemd-journald.service服务,即可完成备份。
通过CentOS的logwatch安装,可以查看日志分析文件,需要安装。
安装完成以后,会写入到cron的执行列表,直接执行/etc/cron.daily/01logwatch,会发送邮件给root。可以查看!
关于自己写日志分析工具,算了以后吧,也许没有以后但是就这样吧...啊我没安装上。
别人的Linux私房菜(19)认识与分析日志文件的更多相关文章
- 别人的Linux私房菜(12)正则表达式与文件格式化处理
vi gerp awk sed支持正则表达式 cp ls不支持,只能使用bash本身的通配符 正则表达式分为基础正则表达式和拓展正则表达式 使用正则表达式注意语系的影响 http://cn.lin ...
- 别人的Linux私房菜(3)主机规划与磁盘分区
磁盘阵列:RAID.将数个硬盘整合成为在操作系统看来是一个硬盘. Linux对笔记本电脑的支持:https://www.linux-laptop.net/ 几乎所有硬件设备存放于/dev/目录. SC ...
- 别人的Linux私房菜(17)进程管理与SELinux初探
程序在磁盘中,通过用户的执行触发.触发事件时,加载到内存,系统将它定义成进程,给予进程PID,根据触发的用户和属性,给予PID合适的权限. PID和登陆者的UID/GID有关.父进程衍生出来的进程为子 ...
- 别人的Linux私房菜(22)软件安装:源代码与Tarball
执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...
- 别人的Linux私房菜(20)启动流程、模块管理与Loader
系统启动时,首先加载BIOS,通过BOIS读取COMS的硬件信息,进行自我检测,取得第一个可启动的设备(多个根据设置有关). 读取并执行设备内的MBR启动引导程序,引导程序调用boot sector中 ...
- 别人的Linux私房菜(18)认识系统服务(daemon)
完成服务service的程序称为daemon.完成计划性的服务程序如crond是一个daemon. 早期的System V的init管理daemon操作中,系统内核首先调用init,然后init运行系 ...
- 别人的Linux私房菜(15)磁盘配额与高级文件系统管理
磁盘配额在网站.邮件.文件等服务器常见,主要有针对用户.用户组.限制某一目录的的最大磁盘配额. ext文件系统进能针对整个文件系统配额,xfs可以针对目录配额.配额和文件系统有关. 内核必须支持磁盘配 ...
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- 别人的Linux私房菜(13)学习Shell脚本
CentOS6.x以前版本的系统服务启动接口在/etc/init.d/目录下,存放了脚本. Shell脚本因调用外部命令和bash 的一些默认工具,速度较慢,不适合处理大量运算. 执行方式有:直接命令 ...
随机推荐
- 云栖大会day2总结 上午
第二天上午主要是参与了开发者专场 上 09:00-09:40 线上线下融合时代的工程师成长 李佩 饿了么高级算法总监 09:40-10:20 如何统一阿里巴巴代码规范:探寻工程师文化之路 玄坛 阿里巴 ...
- elasticsearch增删查改
创建结构化索引 put http://127.0.0.1:9200/person{ "settings" : { "number_of_shards": 3, ...
- 如何引入.graphql文件并优雅的使用fragment
你还在为代码中放入长长的模版字符串所苦恼吗,如下图代码片段: ps:这个是grqphql client在nodejs后端项目的实践,如果你是在前端使用graphql,并使用了webpack,那么这些问 ...
- Leetcode_两数相加_python
小编从今天起要开始分享一些Leetcode代码,通过好好练习编程能力,争取以后找一份好工作. 题目:两数相加 # Definition for singly-linked list. # class ...
- es 服务器搭建
安装jdk,原系统安装的openjava 参考https://www.cnblogs.com/Dylansuns/p/6974272.html注意配置/etc/profile 时,要注意自己安装的是哪 ...
- linux 服务管理
服务的分类 查看已安装的服务 RPM包安装的服务 chkconfig --list #查看服务自启动状态,可以看到所有rpm包安装的服务 ps aux #查看已启动的服务 源码包安装的服务 查看服务安 ...
- 想拥有自己的Python程序包,你只需15步
来源商业新知网,原标题:15步,你就能拥有自己的Python程序包 全文共 3192 字,预计学习时长 6 分钟 每个软件开发员和数据科学家都难免要做程序包.本文推荐一篇 Python开源程序包的制作 ...
- python 并发编程 锁 / 信号量 / 事件 / 队列(进程间通信(IPC)) /生产者消费者模式
(1)锁:进程之间数据不共享,但是共享同一套文件系统,所以访问同一个文件,或同一个打印终端,是没有问题的,而共享带来的是竞争,竞争带来的结果就是错乱,如何控制,就是加锁处理. 虽然使用加锁的形式实现了 ...
- 【题解二连发】Construct Binary Tree from Inorder and Postorder Traversal & Construct Binary Tree from Preorder and Inorder Traversal
LeetCode 原题链接 Construct Binary Tree from Inorder and Postorder Traversal - LeetCode Construct Binary ...
- 随便说说sequelize的问题
最近在做的项目频繁的修改数据库让人感觉很烦躁,sequelize在执行sync的时候只会重新创建表,如果原先有数据只能直接删除,但是这样显然是不行的,因为数据不能就这么消失了吧. 所以必须要migra ...