标签:cron 设备 iss syslogd sshd bin 程序 默认 pass
rsyslog系统管理日志常见的日志文件:
日志文件:二进制日志,文本日志,数据库日志
/var/log/下的文件:
boot.log 系统引导日志,记录开机启动信息 开机的时候,可以按F2
dmesg 核心的启动日志
messages 系统的日志文件
maillog 邮件服务日志
secure 网络连接及系统登录的安全信息
cron 定时任务日志
btmp 记录失败的登入尝试
wtmp 记录所有的登录和登出 last -f /var/log/wtmp 查看二进制
日志管理程序rsyslog 将日志写入数据库,并可以利用模块和插件控制输出
rsyslog 管理本地和远程管理:
man syslog
日志级别:
"<0>" / system is unusable / ----emerg 系统不可用
"<1>" / action must be taken immediately / ----alert 特别留意的警告
"<2>" / critical conditions / -----crit 非常严重的状况
"<3>" / error conditions / ----err 错误信息
"<4>" / warning conditions / ----warning 警告信息
"<5>" / normal but significant condition / ----notice 稍微注意信息
"<6>" / informational / ----info 正常信息
"<7>" / debug-level messages / ----debug 调试信息。开发人员
----none 不记录日志
我们一般关注 4级别以上的
日志配置
日志定义相关符号:
配置文件中的: . 分隔服务和级别
指定目标文件,代表异步写入
注意:mail.info
mail.=info
cron.info;cron.!=err
0123456 0124567 = 012456
同步
异步
.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv. /var/log/secure
mail. -/var/log/maillog
cron. /var/log/cron
.emerg
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
上面的严格意义上都是载体,一些相关的服务配置会配置载体是谁
载体服务的日志
可以man rsyslog.conf 查看载体名称
本地日志管理
需求1:将本地邮件服务日志记录到/var/log/test_mail.log 里
思路: 1软件安装
2查看配置文件,启动脚本
3修改文件
4启动服务
5测试验证
环境:[root加CentOS6油 ~]$ ------192.168.31.62
修改配置文件
[root加CentOS6油 ~]$cp /etc/rsyslog.conf /etc/rsyslog.conf.bak
[root加CentOS6油 ~]$vim /etc/rsyslog.conf
mail.info /var/log/test_mail.log
启动服务
service rsyslog restart
注意:重启后默认添加/var/log/test_mail.log
测试验证
方法1: 发送邮件
[root加CentOS6油 log]$echo "hhahaecho "hhaha" |mail -s "test_mail_log" root
[root加CentOS6油 log]$cat /var/spool/mail/root
方法2: 发一个log测试
logger 用于系统中写入日志,提供了一个shell命令接口syslog系统模块
logger -t "loggertest" -p mail.info "test_mail_log"
-t 指定标记记录
-p 指定输入消息的优先级,优先级可以是数字或者 服务.级别 格式
[root加CentOS6油 log]$logger -t "quanzhiqiang" -p mail.info "test_mail_log"
[root加CentOS6油 log]$tail -1 test_mail.log
Apr 13 08:26:36 CentOS6 quanzhiqiang: test_mail_log
需求2 把ssh服务日志记录到/var/log/ssh下
思路: 本来的ssh记录到系统安全里面,ssh的默认记录载体为authpriv
1修改ssh配置文件的默认记录载体 /etc/ssh/sshd_config
2修改日志配置文件,指定设备载体的日志到指定的文件(/etc/rsyslog.conf)
3测试验证
1[root加CentOS6油 log]$cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
[root加CentOS6油 log]$vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL6 用local6 载体来记录sshd的服务日志
[root加CentOS6油 log]$service sshd restart
2[root加CentOS6油 log]$vim /etc/rsyslog.conf
# Save sshd
local6.* /var/log/ssh
root加CentOS6油 log]$service rsyslog restart
3 ssh IP
注意: 如果不想记录到原来的/var/log/messages
*.info;mail.none;authpriv.none;cron.none;local6.none /var/log/messages
远程管理日志;
目的:把多台服务器端的日志远程记录到其中一台日志服务器集中化管理,方便对其统一管理
环境;
log_server: [root加CentOS6油 ] 192.168.31.62
应用服务器:root@CentOS6-1 ~] 192.168.31.140
ssh服务——其他人远程访问该服务器——产生的日志——远程记录到log_server上
client :[root加CentOS7油~] 192.168.31.41
需求:把应用服务器:[root加CentOS7油~]的ssh日志 ,远程记录到log_server上
思路:
应用服务器上的操作
1.应用服务器的ssh服务的日志单独记录
1.1指定载体
1.2重启服务
2.指定载体上的日志远程发送到log_server
操作
[root@CentOS6-1 ~]# vim /etc/ssh/sshd_config
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL0 修改载体为local0
[root@CentOS6-1 ~]# service sshd restart
[root@CentOS6-1 ~]# vim /etc/rsyslog.conf
#*.* @@remote-host:514
# ### end of the forwarding rule ###
local0.* @192.168.31.62:514 转发到
注意: 一个@代表udp协议传输
两个@代表tcp协议传输
log_server上的操作
1.修改配置文件,打开日志传输的端口
1.1加载模块tcp(重要信息) udp()
1.2打开接受端口。默认为514端口
2.重启服务 日志默认保存到/var/log/messages
[root加CentOS6油 log]$vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp 把井号去掉
$UDPServerRun 514 把井号去掉
# Provides TCP syslog reception
$ModLoad imtcp 把井号去掉
$InputTCPServerRun 514 把井号去掉
[root加CentOS6油 log]$service rsyslog restart
[root加CentOS6油 log]$netstat -tunlp | grep 514 查看端口有无开通
tcp 0 0 0.0.0.0:514 0.0.0.0: LISTEN 25656/rsyslogd
tcp 0 0 :::514 ::: LISTEN 25656/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0: 25656/rsyslogd
udp 0 0 :::514 ::: 25656/rsyslogd
注意: ssh服务端的传输类型,和log——server端 的开启传输类型应该一致
若上述都完成。验证无法管理。查看selunx是否关闭和,防火墙是否514端口打开。或全部关闭
日志轮转:
:切割,备份,归档
作用:避免日志过大沾满/var/log的文件系统
方便日志查看
将丢弃的系统中最旧的日志,节省空间
日志轮转的程序是logrotate
logrotate本身不是系统守护进程,通过计划任务crond每天执行
配置文件格式
weekly 全局轮转周期为每一周
rotate 4 轮转保留多少个单位周期的问价,轮转到四次之后的文件删除
create 创建新的文件用于记录,其权限和旧的文件一样
dateext 用日期来做轮转之后的文件后缀名
include /etc/logrotate.d 加入自配置文件
/var/log/wtmp { 轮转日志文件
monthly 没月
create 0664 root utmp 创建新问价,权限为0664 所属root用户和utmp组
minsize 1M 文件大于1M 且周期到了才轮转,size 1M 只要文件大于1m就会轮转
rotate 1
}
/var/log/btmp {
missingok 如果日志不存在,不会报错
monthly
create 0600 root utmp
rotate 1
}
[root加CentOS6油 etc]$cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts 不管有多少个文件轮转,只执行一次prerotate和postrotate代码
postrotate 轮转后执行postrotate和endscript之间的代码
和prerotae 轮转前执行
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true
#注释:kill -HUP钟的HUP是一个信号来的,默认操作是终止进程
endscript
}
需求:ssh服务日志单独保存/var/log/ssh 轮转
要求:每天轮转,保留5天的日志文件
文件大小大于5M进行轮转
思路:
1.修改logrotate的主配置文件,增加ssh日志文件的轮转
2.在logrotate.d目录下创建一个配文件ssh
1.[root加CentOS6油 log]$vim /etc/logrotate.conf
/var/log/ssh {
daily
rotate 5
size 5M
create
missingok
}
2.[root加CentOS6油 log]$cat /etc/logrotate.d/ssh.conf
/var/log/ssh {
daily
nodateext 不用日志做后缀,默认是1 2 3 四做后缀
rotate 5
size 5M
create
missingok
}
fing ./ -type f |xargs rm -f
强制轮转:logrotate -f /etc/logrotate.conf
linux系统寻找文件是按节点号进行寻找的,所以要刷新PID号
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
sharedscripts
postrotate
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true
endscript
}
/bin/kill -HUP cat /var/run/syslogd.pid 2> /dev/null
2> /dev/null || true
用于刷新PID 所以。不刷新的时候,日志还是会找到以前的老文件进行写入
刷新之后,才会找新的文件写入
man 1
1 用户命令, 可由任何人启动的。
2 系统调用, 即由内核提供的函数。
3 例程, 即库函数。
4 设备, 即/dev目录下的特殊文件。
5 文件格式描述, 例如/etc/passwd。
6 游戏, 不用解释啦!
7 杂项, 例如宏命令包、惯例等。
8 系统管理员工具, 只能由root启动。
9 其他(Linux特定的), 用来存放内核例行程序的文档。
n 新文档, 可能要移到更适合的领域。
o 老文档, 可能会在一段期限内保留。
l 本地文档, 与本特定系统有关的。
标签:cron 设备 iss syslogd sshd bin 程序 默认 pass
原文地址:https://blog.51cto.com/14240011/2378390