废话不多说,直接进入主题。

总体架构是

   客户端统一用rsyslog日志收集,--->fluentd服务器上--->mongondb集群--->Elasticsearch+Kibana服务器上展示。(因为线上的生产环境是用的kvm,如果直接安装fluentd,分配的虚拟机配置很低,会导致虚拟机报警)

rsyslog安装和配置

1、更改history格式

/etc/profile.d目录下创建history.sh脚本,内容如下

HISTTIMEFORMAT='%F %T  '

HISTFILESIZE=10000

HISTSIZE=1000

HISTIGNORE='ls -l:pwd:date'

HISTCONTROL=ignoredups

export HISTTIMEFORMAT HISTFILESIZE HISTSIZE HISTIGNORE HISTCONTROL

2设置rsyslog信息的格式,(更改显示的日期)和一些传送配置

修改/etc/rsyslog.conf的配置

 注销一下两行

# Use default timestamp format

#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

 添加一下六行

$template xsformat,"%$NOW% %TIMESTAMP:8:15% %FROMHOST% %syslogtag% %msg%\n"

$ActionFileDefaultTemplate xsformat

$ModLoad imtcp

$UDPServerRun 514

*.info;mail.none;authpriv.none;cron.none;local4.none                @@192.168.2.2  #修改第一条,加入了local4.none ,这样就取消了local4接收到消息会传送到

local4.*                       @@192.168.2.1

  1. 修改/etc/bashrc 中的环境变量,就当所以用户登录系统时,都会继承这个环境设置

   在最后添加一下如下信息

export PROMPT_COMMAND='{ msg=$(history 1 | { read a b c d; echo $d; }); ip=$(who am i | { read q w e r t;echo $t; });logger -p local7.info  "[euid=$(whoami):$ip]":[`pwd`]# "$msg"; }'

  1. 从新读取上面修改的变量和启动服务

[root@b28-18-203 ~]# source  /etc/profile

[root@b28-18-203 ~]# source  /etc/bashrc

[root@b28-18-203 ~]# /etc/init.d/rsyslog restart

  1. 修改服务器端的rsyslog配置文件

   收集secure日志的服务器

[root@b28-18-203 ~]#  vim /etc/rsyslog.conf   #在配置文件中添加如下信息

$ModLoad imtcp

$InputTCPServerRun 514

 if $fromhost-ip startswith '192.168.2.' then /var/log/allsecure.log

 & ~

收集messages的日志服务器

[root@b28-18-203 ~]#  vim /etc/rsyslog.conf   #在配置文件中添加如下信息

$ModLoad imtcp

$InputTCPServerRun 514

 if $fromhost-ip startswith '192.168.2.'' then /var/log/allmessageslog.log