日志存放的方式
1、自定义本地存放位置
打开sshd服务的配置文件: vim /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
修改:
#SyslogFacility AUTH
SyslogFacility local0 ##定义日志级别
#SyslogFacility AUTHPRIV
#LogLevel INFO
修改rsyslog服务的配置文件: vim /etc/rsyslog.conf
vim /etc/rsyslog.conf
在最后一行添加:
local0.* /var/log/sshd.log
重启sshd和rsyslog两个服务
systemctl restart sshd
systemctl restart rsyslog.service
2、将日志异地存放到其他服务器
- 需要两台服务器才能实现,异地存储;
- 大型的集群环境下,我们有更加专业的日志收集系统来帮助我们完成这个功能,这个工具叫做ELK(elasticsearch + logstash+kibana)
vim打开rsyslog的配置文件,将ModLoad imudp和ModLoad imtcp两个模块打开(就是把前面的#删除就好了),表示使用UDP和TCP协议,打开日志接收的功能,端口是514;

使用netstat命令查看,端口是否启动;
[root@localhost src]# netstat -antup | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 10981/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 10981/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0:* 10981/rsyslogd
udp6 0 0 :::514 :::* 10981/rsyslogd
客户端:
a. vim打开rsyslog的配置文件,将ModLoad imudp和ModLoad imtcp两个模块打开(就是把前面的#删除就好了),指定日志存放服务器的IP地址;@表示使用UDP发送,@@表示TCP发送

b. 重启服务
systemctl restart rsyslog
3、将日志保存到其他服务器的数据库
在服务端安装rsyslog-mysql插件
yum -y install rsyslog-mysql
查看安装后产生的数据库文件:
[root@logstash ~]# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
在服务端安装数据库
[root@logstash yum.repos.d]# yum -y install mariadb-server
[root@logstash yum.repos.d]# systemctl enable --now mariadb.service # 启动服务
修改MySQL的配置文件,打开/etc/my.cnf文件;
vim /etc/my.cnf
添加到最后:
skip_name_resolve=ON
innodb_file_per_table=ON
重启服务:
systemctl restart mariadb
将插件的sql文件导入到数据库中
mysql </usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql
给数据库进行授权;
MariaDB [Syslog]> GRANT ALL ON Syslog.* TO 'rsyslog'@'192.168.249.100' IDENTIFIED BY '123456';
#这里的IP地址就是服务端的本机IP
刷新权限表;
MariaDB [(none)]> flush privileges ;
配置rsyslog文件;
[root@Logserver ~]# egrep -v "^#|^$" /etc/rsyslog.conf
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$ModLoad ommysql ##添加配置输出模块
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none :ommysql:192.168.1.101,Syslog,syslog,123456 #添加配置接收日志,这里的IP地址就是服务端本地的IPz
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
重启rsyslog服务;
systemctl restart rsyslog
a. 在客户端打开修改配置文件,/etc/rsyslog.conf
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none @192.168.1.101 #输出,这里的IP地址就是服务端的ip

浙公网安备 33010602011771号