日志管理

一、
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
authpriv.* @@192.168.10.230
@@表示通过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

你可能感兴趣的:(日志管理)