ELK-Logstash Linux 历史记录日志分析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK-Logstash Linux 历史记录日志分析相关的知识,希望对你有一定的参考价值。

修改环境配置文件

#/etc/bashrc

添加以下内容:


HISTFILE=‘/var/log/history_command.log‘
if [ ! -f $HISTFILE ];then
touch $HISTFILE
chmod 666 $HISTFILE
fi

export HISTTIMEFORMAT="%F %T,$HOSTNAME,$(who -u am i 2>/dev/null| \

awk ‘{print $NF}‘| sed -e ‘s/[()]//g‘),$(who am i|awk ‘{print $1}‘),${USER},"

export PROMPT_COMMAND=‘history 1|tail -1|sed "s/^[ ]\+[0-9]\+ //"|sed "s/$//">> $HISTFILE‘

PS:将历史命令格式化,并写入/var/log/history_command.log文件

 

logstash配置文件

#hiscmd_log.conf


input {
    file {
        type => "history_cmd"
        path => "/var/log/history_command.log"
    }
}
filter {
    if [type] == "history_cmd" {
        grok {
        match => { "message" => "%{HISTORY_CMD}" }
        }
    }
    geoip {
        source => "ip"
        fields => ["city_name"]
        database => "/opt/logstash-2.0.0/conf/GeoLiteCity.dat"
    }
}
output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => "www.elk.com:9200"
        index => "history_cmd-%{+YYYY.MM}"
    }
}

 

匹配规则可写在patterns/linux-syslog 文件里

HISTORY_CMD (?<time>\d+.*),%{HOSTNAME:hostname},%{IPV4:ip},root,%{WORD:user},(?<cmd>[\S+]\s*.*)


Kibana 图形展示


技术分享

以上是关于ELK-Logstash Linux 历史记录日志分析的主要内容,如果未能解决你的问题,请参考以下文章

71-日志分析系统ELK-Logstash过滤Filesbeat数据及ELK日志采集生产案例

ELK-logstash

初探ELK-logstash使用小结

ELK-logstash grok自定义正则

Linux日志管理系统rsyslog

linuxhistory命令,终端显示和日志文件显示不一致