文章目录

  • ​​简介​​
  • ​​server 配置​​
  • ​​客户端配置及测试​​

简介

服务器的日志默认是存放在本地的,对于linux而言日志一般存放于/var/log/目录下,比如说某系统管理员管理着几十甚至上百台服务器的时候,默认日志放在每台服务器的本地,当我们每天要去看日志的时候一台一台的看日志很不方便.linux系统上提供了一个syslogd服务为我们提供日志服务器,他可以将多台主机和网络设备等等的日志存到日志服务器上,大大减少了管理员的工作量,这里分别采用两台服务器来模拟 服务器,客户端 ,将客户端日志保存到目标syslog服务器上.

server 配置

一般linux服务器都安装了syslog,只不过没使用
修改配置

[root@iZd4l01sl2kkco2rhiznjjZ log]# cat /etc/rsyslog.conf
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html

#### MODULES ####

# The imjournal module bellow is now used as a message source instead of imuxsoc k.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger c ommand)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark # provides --MARK-- message capability

# Provides UDP syslog reception 这两行打开通过 udp 514 端口 来接收日志服务 udp和tcp 可以同时监听同一个端口
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception 这两行打开通过 tcp 514 端口 来接收日志服务 udp和tcp 可以同时监听同一个端口
$ModLoad imtcp
$InputTCPServerRun 514

......

#### GLOBAL DIRECTIVES #### 定义日志模板
# 该模板名称为 RemoteLogs 存放目录为 /app/log/日志来源主机名/日志来源进程.log"
$template RemoteLogs,"/app/log/%HOSTNAME%/%PROGRAMNAME%.log" *
# 该模板名称为 ipTemp 存放目录为 /app/log/日志来源IP/日志来源进程.log"
$template ipTemp,"/app/log/%FROMHOST-IP%/%PROGRAMNAME%.log" *
# 所有日志都采用ipTemp 模板
*.* ?ipTemp

#"& ~"表示了一个重定向规则,用来告知rsyslog守护进程停止对日志消息的进一步处理,并且不要在本地写入。如果没有使用该重规则,那么所有的远程消息都会在写入上述描述的日志文件之外同时被写入到本地日志文件,这就意味着日志消息实际上被写了两次。使用该规则的另外一个结果就是syslog服务器本身的日志消息只会被以该机器主机名命名的专有文件中。

& ~

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

启动服务

sudo systemctl restart rsyslog 或 sudo service rsyslog restart

[root@iZd4l01sl2kkco2rhiznjjZ log]# sudo service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service

查看服务

$ sudo netstat -tulpn | grep rsyslog

[root@iZd4l01sl2kkco2rhiznjjZ log]# sudo netstat -tulpn | grep rsyslog
tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 897905/rsyslogd
tcp6 0 0 :::514 :::* LISTEN 897905/rsyslogd
udp 0 0 0.0.0.0:514 0.0.0.0:* 897905/rsyslogd
udp6 0 0 :::514 :::* 897905/rsyslogd

客户端配置及测试

修改配置

[scapp@iZd4l01sl2kkco2rhiznjiZ ~]$ cat /etc/rsyslog.conf
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
# 指定所有日志都写入到 10.252.161.185:514
*.* @@10.252.161.185:514

重启服务
systemctl restart rsyslog.service 或者 service rsyslog restart

查看日志
进行一些操作后,到10.252.161.185 服务器上 我们配置的目录查看,可以看到客户机的日志

[root@iZd4l01sl2kkco2rhiznjjZ log]# ll 10.252.161.192
total 4276
-rw------- 1 root root 3684 Dec 23 03:32 anacron.log
-rw------- 1 root root 190 Dec 23 03:35 auditd.log
-rw------- 1 root root 792 Dec 23 18:38 chronyd.log
-rw------- 1 root root 59764 Dec 23 21:10 crond.log
-rw------- 1 root root 2011007 Dec 23 21:10 CROND.log
-rw------- 1 root root 268 Dec 23 12:39 crontab.log
-rw------- 1 root root 738814 Dec 23 20:20 demotag.log
-rw------- 1 root root 226 Dec 23 12:48 httpd.log
-rw------- 1 root root 5517 Dec 23 12:50 polkitd.log
-rw------- 1 root root 63188 Dec 23 21:10 postfix.log
-rw------- 1 root root 1251 Dec 23 21:03 rsyslogd.log
-rw------- 1 root root 16386 Dec 23 21:01 run-parts(.log
-rw------- 1 root root 18993 Dec 23 21:05 sshd.log
-rw------- 1 root root 3807 Dec 23 20:22 sudo.log
-rw------- 1 root root 1383675 Dec 23 21:10 systemd.log
-rw------- 1 root root 7310 Dec 23 21:05 systemd-logind.log