一、
rsyslogd: 系统专职日志程序。将绝大部分日志记录, 系统日志程序
和系统操作有关,安全,认证sshd,su,计划任务at,cron...
mysql 数据库 nginx 大型网站服务器 各大应用服务可以以自己的方式处理日志
用 ps aux |grep rsyslogd 可以查看 这是一个守护进程
二、常见的日志文件(系统、进程、应用程序)
tail /var/log/messages //系统主日志文件
tail -20 /var/log/messages //看后20行
tail -f /var/log/messages //动态查看日志文件的尾部
tailf /var/log/secure //认证、安全
tail /var/log/maillog //跟邮件postfix相关
tail /var/log/cron //crond、at进程产生的日志
tail /var/log/dmesg //和系统启动相关
tail /var/log/audit/audit.log //系统审计日志
tail /var/log/yum.log //yum
tail /var/log/mysqld.log //MySQL
tail /var/log/xferlog //和访问FTP服务器相关
w //当前登录的用户 /var/log/wtmp
last //最近登录的用户 /var/log/btmp
lastlog //所有用户的登录情况 /var/log/lastlog
案例1: SSH登录失败的用户
[root@localhost ~]# grep 'Fail' /var/log/secure
案例2: SSH登录成功的用户
[root@localhost ~]# grep 'Accepted' /var/log/secure
启动 rsyslogd配置 程序 systemctl start rsyslog.service
rpm -qc rsyslog //观察日志程序的配置文件
告诉rsyslogd进程 哪个设备,什么样的信息,以及存到哪里。比如
vim /etc/rsyslog.conf
RULES:即规则,是一套生成日志,以及存储日志的策略。
由设备+级别+存放位置组成。
由FACILITY+LEVEL+FILE组成。
authpriv.* /var/log/secure(SSH信息) ssh信息
mail.* -/var/log/maillog(发邮件) 邮件日志
cron.* /var/log/cron(创建任务) 循环任务日志
authpriv.* * <代表所有终端>
authpriv. @192.168.10.230 <UDP>
authpriv.* @@192.168.10.230 <TCP>
@@表示通过tcp协议发送 @表示通过udp进行转发
目的:通过man手册理解设备和级别
man 3 syslog
facility:是系统对某种类型事件的定义。如AUTHPRIV是安全事件,CRON是计划任务事件。
设备如下:
LOG_AUTH
LOG_AUTHPRIV 安全认证
LOG_CRON clock daemon (cron and at)
LOG_DAEMON 后台进程
LOG_FTP ftp daemon
LOG_KERN kernel messages
LOG_LOCAL0 through LOG_LOCAL7 用户自定义设备
LOG_LPR printer subsystem
LOG_MAIL 邮件系统mail subsystem
LOG_NEWS news subsystem
LOG_SYSLOG syslogd自身产生的日志
LOG_USER (default)
man 3 syslog
level :是指遇到何种情况(正常、错误)才会记录日志。
LOG_EMERG 紧急,致命,服务无法继续运行,如配置文件丢失
LOG_ALERT 报警,需要立即处理,如磁盘空使用95%
LOG_CRIT 致命行为
LOG_ERR 错误行为
LOG_WARNING 警告信息
LOG_NOTICE 普通,重要的标准信息
LOG_INFO 标准信息
LOG_DEBUG 调试信息,排错所需,一般不建议使用
从下到上,级别从低到高,记录的信息越来越少
logger "run......." //messages日志
logger -p emerg "run......." //所有终端
logger -p authpriv.info "run......."
//secure安全日志
日志可以存放在本地
日志可以存放在远程服务器
案例1:将authpriv设备日志记录到/var/log/auth.log
1.修改日志文件位置
vim /etc/rsyslog.conf
authpriv.* /var/log/secure
authpriv.* /var/log/auth.log
2.重启程序,触发日志生成。
systemctl restart rsyslog.service
ll /var/log/auth.log
-rw-------. 1 root root 964 /var/log/auth.log
cat /var/log/auth.log
案例2:改变应用程序sshd的日志设备为local5, 并定义local5设备日志记录到/var/log/local5.local
1.设置ssh程序的日志设备为自定义设备。
vim /etc/ssh/sshd_config
SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
2.设置自定义设备日志文件存放位置。
vim /etc/rsyslog.conf
local5.* /var/log/local5.local
3.重启生效。
systemctl restart sshd 重启sshd程序
systemctl restart rsyslog 重启日志
4.尝试登录,触发日志。
5.观察日志。理解自定义日志设备。
ll /var/log/local5.local
-rw-------. 1 root root 201 /var/log/local5.local
cat /var/log/local5.local
案例3:使用logger程序写日志到指定的设备及级别,并发送到集中日志服务器。
服务器1(10.18.41.144)发送日志
vim /etc/ssh/sshd_config
SyslogFacility AUTHPRIV 这个 复制下来一份 用 yy p 将上方注释掉 下边呢个可以改了
SyslogFacility LOCAL5 这样是为了避免错误后能够修改回来设备local5 用来区分用
vim /etc/rsyslog.conf 此文件来管理日志
local5.* @10.18.41.12 此处填写另一台设备的IP地址。另一台设备是集中日志服务器。
systemctl restart sshd 重启sshd程序
systemctl restart rsyslog 重启日志
systemctl stop firewalld 关闭防火墙
总结: 编辑ssh程序 把
服务器2(10.18.41.12)接受日志
vim /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514 这两个 将注释去掉就行
local5.* /var/log/server152.log
systemctl restart rsyslog
systemctl stop firewalld
尝试ssh登录服务器1.
并观察本地日志
ll /var/log/server152.log