16-23 local0~local17 保留本机用户使用的登陆信息 与终端机互动
以上为linux系统核心的syslog函数定制的服务
第三方软件通过调用上述的服务名来记录他们的软件 例如sendmail是邮件收发的软件 会调用syslog内的mail服务名称

信息的等级
由syslog.h定义
等级数值 等级名称 说明
7 debug 用来排错产生的信息
6 info 一般的基本信息说明
5 notice 正常的信息 比info需要被注意到的
4 warning (warn) 警告的信息 可能会有问题 但是不至于影响daemon的运行
3 err(error) 重大的错误信息 例如配置文件的某些设置值会造成服务无法启动
2 crit 临界点 critical 很严重的错误信息
1 alert 警告警告
0 emerg(panic) 严重的错误 硬件有问题 核心无法顺利运行
debug还要低的等级为none 不需要登录等级 也就是不需要记录
其中需要注意的是信息等级之前 .=! 的连接符号 代表的意思
. 代表比后面还要严重的等级都要被记录 info代表等级严重于info的包含info本身的 都会被记录下来
.= 代表所需要的等级就是后面接的等级而已
.! 表示不等于 就是除了该等级外的其他等级都记录
记录信息的文件或设备或主机
日志文件可以记录到文件或者装置上 也可以存放到其他的网络主机上
日志文件的绝对路径:/var/log/下面的文件
打印机或者其他 /dev/lp0
用户的名称
网络主机 例如@study.tsai 需要对方主机的设置
* 代表目前线上的所有人
服务、daemon于函数名称
syslog 设计指引 所有的要求都写进一个名为syslog.h的头文件中
rsyslogd 实际的信息分类 daemon程序
rsyslog.service 服务启动脚本
rsyslog.conf 语法练习
1.将mail的信息写入/var/log/maillog
mail.info /var/log/maillog
2. 将news及例行性工作安排cron写入/var/log/cronnews 但是警告信息则记录在/var/log/cronnews.warn中
news.*;cron.* /var/log/cronnews
news.=warn;cron.=warn /var/log/cronnews.warn
3.messages 记录所有的信息 但是不要记录cron mail及news的信息
*.*;news,cron,mail.none /var/log/messages
*.*;news.none,cron.none;mail.none /var/log/messages
centos 7.x 默认的配置文件内容 rsyslog.conf

自定义增加日志文件的功能
将所有额外的信息写入到/var/log/admin.log中
vim /etc/rsyslog.conf
*.info /var/log/admin.log
日志文件的安全性设置
防黑
将日志文件的权限设置为a 只能增加信息 不能删除
chattr +a /var/log/admin.log
lsattr /var/log/admin.log
注意如果日志文件被vi 或者vim等编辑器 并wq退出 则rsyslogd服务会认为此文件被更动过,则会再写入新的内容
需要重新启动rsyslogd.service即可。
另一个问题是+a的属性被设置后 导致该文件无法被删除和修改 则当logratate轮替程序无法删除替换词文件,也就无法实现轮替的功能,所以还需要先将+a的标志去掉
日志文件服务器的设置
当局域网内有多个linux主机的时候 此功能比较有用 单个主机再传送一份出去给日志文件服务器
rsyslogd具有日志文件服务器的功能,默认没有启动。
默认端口为UPD和TCP的514

服务器端的设置如下
在/etc/rsyslog.conf内的设定
vim /etc/rsyslog.conf
#provides UDP syslog recepiton
#$ModLoad imudp
#$UDPServerRun 514
#provides tcp syslog reception
#$ModLoad imtcp
#$inputTCPServerRun 514
systemctl restart rsyslog.service
netstat -ltnp | grep syslog
客户端的设置如下
vim /etc/rsyslog.conf
*.* @@192.168.1.100 此为TCP传输
*.* @192.168.1.100 此为UDP传输
日志文件的轮替 logrotate
1.logrotate的设置
需要注意的是chattr 设置了文件的+a属性 rsyslogd利用的是daemon的方式来启动,有需求的时候立即执行 所以logrotate是在规定的时间到了之后才来进行日志文件的轮替,所以这个logrotate程序是挂载在cron底下进行的。
在/etc/cron.daily/logrotate 进行记录
设置文件:
/etc/logrotate.conf
/etc/logrotate.d
logrotate.d中的所有文件都会被主动的读入logrotate.conf中进行
vim /etc/logrotate.conf
weekly 默认一个礼拜进行一次rotate的工作
rotate 4 保留的文件数目 也是最大数
dateext
include /etc/logrotate.d 将此目录内的文件读进.conf里来执行
/var/log/wtmp{ 针对wtmp这类的日志文件进行的参数设置

其中包括文件名部分
参数部分 { }
执行的脚本部分
sharedscripts ... endscript设定配合使用
可用的环境
prerotate 启动轮替之前的指令 例如修改文件的属性
postrotate 轮替执行完之后的指令 例如重启某个服务
他们两个之间的指令相当重要
本例中只针对/var/log中的那些个文件名有效
轮替完毕后取得syslog的PID后 以kill -HUP重新启动syslogd
假如 /var/log/messages 这个文件增加了chattr +a的属性时日志系统管理分类,根据logrotate的工作原理 messages会更名为messages.1
但是由于有a属性 限制不能改名 所以利用prerotate于postrotate来进行轮替前的属性修改 和之后的动作
sharedscripts
/usr/bin/chattr -a /var/log/messages
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
/usr/bin/chattr +a /var/log/messages
.htaccess文件(或者'分布式配置文件')提供了针对目录改变配置的方法,即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,当.htaccess中的指令生效时,它将重写原来apache中默认的指令,但只作用于.htaccess文件所在的目录及其所有子目录。即新建crontab配置文件目录,然后将配置文件按拷贝至新建目录下,一定要执行chmod命令,以后只需要修改root中的内容就可以改变crontab配置,不过临时修改配置还是需要去/var/spool/cron/crontabs内的root文件,永久修改是改/etc/crontabs/root,重启生效。/bin/kill-hup `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true。
2.实际测试logrotate的动作
语法:logrotate [-vf] logfile -v 显示详细过程 f为force 强制 不论是否符合配置文件
example1:
logrotate -v /etc/logrotate.conf
example2:
logrotate -vf /etc/logrotate.conf
3.自定义日志文件的轮替功能
example3:
假设已经建立/var/log/admin.log 这个文件 想要加上a这个隐藏的属性
轮替配置
每月一次
大于100m时 主动轮替 不需要考虑一个月的期限;
保存5个备份
备份需要压缩
命令 :1.先添加a的属性
chattr +a /var/log/admin.log 设置
lsattr /var/log/admin.log 查看
mv /var/log/admin.log /var/log/admin.log.1 根据结果查看 a是否成功
2.建立Logroate的设定文件 增加一个文件在/etc/logrotate.d内就可以了
vim /etc/logrotate.d/admin
/var/log/admin.log{
monthly
size=100m
rotate 5
compress
sharedscripts
prerotate
/usr/bin/chattr -a /var/log/admin.log
endscript
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true 重新载入配置文件
/usr/bin/chattr +a /var/log/admin.log 增加a属性
endscript
3.测试
logrotate -v /etc/logrotate.conf 查看过程
systemd-journald.service介绍
减少开机磁盘扫描等待时间,当windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。减少开机磁盘扫描等待时间,当windows日志中记录有非正常关机、死机引起的重新启动,系统就会自动在启动的时候运行磁盘扫描程序。在“开始”菜单的运行”中输入“eventvwr.msc”,或者是按下"开始菜单"-"程序"-"管理工具"-"事件查看器",打开事件查看器,在左侧窗口分别有“应用程序”、“安全性”、“系统”、“internetexplorer”和“microsoft office alert”五个大类,右侧记录了计算机发生的事件,id号为6005的事件表示事件日志服务已启动,即开机,事件id号为6006表示关机,它们对应的时间就分别是开机时间和关机时间日志系统管理分类,如下图所示,该机2012年7月3日开机时间是13:45:08,关机时间是17:37:52。
现在有了systemd的这个核心调用的服务 又是第一个执行的软件 可以主动调用systemd-journald来协助记录日志 所以在开机过程中的所有信息 包括启动服务于服务启动失败等的信息都可以记录到systemd-journald中,但是缺陷是此文件记录的信息是内存中的 也就是代表仅仅记录此次开机运行的日志 以前的日志需要rsyslogd 来协助
1.使用journalctl来观察日志信息
语法: journalctl [-nrpf] [--since TIME] [--until TIME] _optional
n 最近几行
r 反向输出 新的在前 旧的在后
p 按照重要性排序
f 类似于 tail -f 持续显示journal日志的内容
实例:
journalctl -b -2 显示上上次启动的信息 journalctl -b -2。支持金土地v8.50更新内容:解决不扫描的问题增加自动更新作物功能优化日志显示v8.47更新内容:解决重复扫描一个人的问题v8.46更新内容:支持黑土地8.44 1.更新作物信息8.43 1.更新作物信息2.更新协议8.42 1.更新作物信息2.修复密码过长无法登陆bug8.41 1.更新作物信息8.40 11.更新作物信息2.更新协议8.38 1.修复显示小bug2.修复大号好友程序崩溃bug3.更新作物信息8.37 1.更新作物信息2.增加打怪功能3.增加捡起掉落物8.36 1.更新作物信息8.34 1.更新作物2.修复bug8.33 1.更新作物2.修复bug8.32 1.更新作物2.更新key8.31 1.更新作物2.修复小小bug8.30 1.更新key2.更新作物信息8.29 1.更新作物信息2.优化程序8.28 1.更新协议8.27 1.更新协议2.更新作物信息3.优化背包8.26 1.更新协议2.更新作物信息8.25 1.更新协议2.更新作物信息8.231.更新协议2.修复验证码问题3.更新作物信息8.22 1.更新协议8.21 1.更新协议8.20 1.更新协议2修复bug3.更新作物信息8.19 1.更新协议2.登陆免验证码3.更新作物信息8.18 1.更新协议8.17 1.更新作物信息2.修复老板键bug8.16 1.更新协议2.增加老板键1.更新协议2.更新作物信息8.13 1.更新协议2.更新作物信息8.12 1.修复刷草bug2.更新作物信息3.更新协议4.刷草增加花儿朵朵8.11 1.更新协议2.更新作物信息8.10 1.更新协议2.更新作物信息8.09 1.增加赶牛功能2.更新作物信息8.08 1.更新作物信息8.07 1.更新协议2.更新作物信息8.06 1.更新作物信息2.改进刷草功能8.05 1.增加刷草功能2.修复小bug。$ sudo journalctl _uid=33 --since today。
journalctl -p err 显示信息等级为错误的信息
journalctl --SYSTEMD_UNIT=crond.service -n 10 显示最新的10行记录
2.logger指令的使用 自行添加信息到登陆文件中 主要用来注释等 提示信息
将信息存储的日志文件当中
语法:logger [-p 服务名称.等级] “信息”
logger -p user.info "i will check logger command"
journalctl SYSLOG_FACILITY=1 -n 3
接下来会显示出 "i will check logger command" 的记录
3.保存journal的方式
如果需要保存journal的日志文件 需要先建立目录
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal 更改属主和组
chmod 2775 /var/log/journal 主 组的权限设置
systemctl restart .....
会发现在journal/的目录下回出现日志文件
当然 rsyslogd和lograotate 回记录日志信息 所以上面所说的并非必要 依据个人习惯
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-110195-1.html
他的卫心Y㎝6ОЗ一开始我也不信
平常人怎么破
千玺是最棒的