背景说明:
因应管理和日志集中查询需要,利用新版的ELK组件进行了日志系统的搭建。针对特定的两个场景,Linux系统和华为交换机(5700和S7700系列)。
linux系统,针对用户操作命令,利用history作记录,也通过rsyslog传给logstash,存在ES中。
软件版本:
ELK: 版本 7.4 (elasticsearch/logstash/kibana)
rsyslog: Centos 7.4 自带的Rsyslog 8.24.0
logstash接收数据的端口:1514
linux系统部分
配置
vi /etc/profile
添加以下内容(两行,为了书写格式方便,才有如下展示)
remoteip=$(who am i |grep -oE "([0-9]{1,3}[\.]){3}[0-9]{1,3}|:[S]\.[0-9]" | tr -d '\n')
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.* "$(whoami) [$remoteip] {$PWD} $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
注: history用于记录用户操作命令,需注意,当敲击“enter”按键时“command.log”中也会有一条记录,因上面的脚本会将“history”记录的最后一条作为记录写在command.log文件中,并不是真正的操作命令,这不是问题,注意少敲击“enter”。
生成存储命令的日志文件:
touch /var/log/command.log
添加配置,在rsyslog.conf文件中,利用rsyslog的模块“imfile” 收集 audit的日志,同时以下配置中的“local5”请注意与其它的配置项冲突与否,存在冲突请做调整。
local6.* /var/log/command.log #记录用户操作命令的文件
$ModLoad imfile
$InputFileName /var/log/audit/audit.log
$InputFileTag tag_audit_log:
$InputFileStateFile audit_log
$InputFileSeverity info
$InputFileFacility local5
$InputRunFileMonitor
*.* @10.12.6.174:1514
配置生效
为了让配置生效,执行两步
source /etc/profile
systemctl restart rsyslog
如有警告信息,请再重启一次rsyslog服务,可能会有一些关于udp的警告信息,并不是错误。
华为交换机
华为交换机配置较为简单,如果没有特殊的要求,按照以下过程即可配置成功。省略了登入登出。。。直接重点的部分
info-center enable
info-center loghost 10.12.6.174 local-time port 1514
配置完成后记得保存,同时交换机的日志即时传到ES中了,可以在kibana中查询到。 效果请参考图片。
logstash配置展示
input {
syslog {
port => 1514
}
}
output {
elasticsearch {
hosts => ["logserver:9200"]
index => "suzhoulog-%{+YYY.MM.dd}"
}
}
在同事的建议下,更改了索引的创建方式,以年月日为名称,创建索引。
网友评论