日志存放的方式

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

b. 在客户端测试,下载软件。看服务端的数据库是否有东西产生;

posted @ 2024-04-11 22:43  Honey-pot  阅读(46)  评论(0)    收藏  举报