当当当当裤裆坦 发表于 2024-9-11 18:27:57

Linux日志服务器设置过程

 我们知道,使用“@IP:端口”或“@@IP:端口”的格式可以把日志发送到远程主机上,那么这么做有什么意义吗?
  假设我需要管理几十台服务器,那么我每天的重要工作就是查看这些服务器的日志,可是每台服务器单独登录,并且查看日志非常烦琐,我可以把几十台服务器的日志集中到一台日志服务器上吗?这样我每天只要登录这台日志服务器,就可以查看所有服务器的日志,要方便得多。
  如何实现日志服务器的功能呢?其实并不难,不过我们首先需要分清服务器端和客户端。假设服务器端的服务器 IP 地址是 192.168.0.210.主机名是 localhost.localdomain;客户端的服务器 IP 地址是 192.168.0.211.主机名是 www1.我们现在要做的是把 192.168.0.211 的日志保存在 192.168.0.210 这台服务器上。实验过程如下:
  #服务器端设定(192.168.0.210):
  # vi /etc/rsyslog.conf
  …省略部分输出…
  # Provides TCP syslog reception
  $ModLoad imtcp
  $InputTCPServerRun 514
  #取消这两句话的注释,允许服务器使用TCP 514端口接收日志
  …省略部分输出…
  # service rsyslog restart
  #重启rsyslog日志服务
  # netstat -tlun | grep 514
  tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
  #查看514端口已经打开
  #客户端设置(192.168.0.211):
  # vi /etc/rsyslog.conf
  #修改日志服务配置文件
  *.* @@192.168.0.210:514
  #把所有日志采用TCP协议发送到192.168.0.210的514端口上
  # service rsyslog restart
  #重启日志服务
  这样日志服务器和客户端就搭建完成了,以后 192.168.0.211 这台客户机上所产生的所有日志都会记录到 192.168.0.210 上。比如:
  #在客户机上(192.168.0.211)
  # useradd zhangsan
  #添加zhansan用户提示符的主机名是www1)
  #在限务器(192.168.0.210)上
  # vi /var/log/secure
  #査看服务器的secure日志(注意:主机名是localhost)
  Aug 8 23:00:57 wwwl sshd【1408]: Server listening on 0.0.0.0 port 22.
  Aug 8 23:00:57 wwwl sshd: Server listening on :: port 22.
  Aug 8 23:01:58 wwwl sshd: Accepted password for root from 192.168.0.101 port 7036 ssh2
  Aug 8 23:01:58 wwwl sshd: pam_unix(sshd:session): session opened for user root by (uid=0)
  Aug 8 23:03:03 wwwl useradd: new group: name=zhangsan, GID-505
  Aug 8 23:03:03 wwwl useradd: new user: name=zhangsan, UXD=505. GID=505.
  home=/home/zhangsan, shell=/bin/bash
  Aug 8 23:03:09 wwwl passwd: pam_unix(passwd:chauthtok): password changed for zhangsan
  #注意:查看到的日志内容的主机名是www1.说明我们虽然查看的是服务器的日志文件,但是在其中可以看到客户机的日志内容
  需要注意的是,日志服务是通过主机名来区别不同的服务器的。所以,如果我们配置了日志服务,则需要给所有的服务器分配不同的主机名。
页: [1]
查看完整版本: Linux日志服务器设置过程