企业日志分析之linux系统history收集展示推荐

最近一方面给自己开发的平台套模板,一方面研究一些新的技术,比如今天介绍的elk,下面是介绍一下我是如何使用elk收集linux系统history与展示的。

一、效果图

下面是效果图,感觉满足你需求在继续看

下面是具体介绍

1、Linux系统历史命令数据总量

主要是展示所选时间段接收history数据总量,比如昨天我总共收集了1002条数据

2、Linux系统历史命令监控主机数量

主要是监控总共有多少台主机开始收集history日志数据

3、LInux系统历史命令运行最多Top5

主要是介绍运行最多的命令,比如第一个ll命令运行最多

4、Linux系统历史命令登陆主机Top5

主要是介绍登陆主机ip最多的前5个

5、Linux系统历史命令时间数据总量

主要介绍各时间段收集的数据总量

6、Linux系统历史命令数据

主要是展示每条收集数据内容,包括收集时间、收集的主机名、当前登陆ip、登陆用户、当前用户、运行命令。

二、logstash安装

我使用的elk架构如下

ps:这个图是网上找的

我的elk版本分别为

logstash 1.5.4-1

redis 3.0.4

elasticsearch 1.7.1

kibana 4.1.1

下面介绍如何安装elk

其实shipper与indexer的logstash安装一样,只不过是配置文件不一样

先介绍如何安装logstash

我使用yum安装,下面是安装yum源

cat /etc/yum.repos.d/logstash.repo EOF[logstash-1.5]name=Logstashrepositoryfor1.5.xpackagesbaseurl=http://packages.elasticsearch.org/logstash/1.5/centosgpgcheck=1gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearchenabled=1EOF

然后安装

yum install logstash -y

下面是shipper的配置

[root@puppet~]#cat/etc/logstash/conf.d/logstash_agent.confinput{file{path= ["/var/log/command.log"]type= "command"codec= "json"}output{redis{host= ["10.10.125.8:6379"]data_type= "list"key= "logstash:redis"}

这个配置就是收集/var/log/command.log的日志,这个日志是记录history命令的,output输出到redis服务。

下面是如何记录history历史命令

在/etc/bashrc里添加

HISTDIR='/var/log/command.log'if[!-f$HISTDIR];thentouch$HISTDIRchmod666$HISTDIRexportHISTTIMEFORMAT="{\"TIME\":\"%F%T\",\"HOSTNAME\":\"$HOSTNAME\",\"LI\":\"$(who-uami2 /dev/null|awk'{print$NF}'|sed-e's/[()]//g')\",\"LU\":\"$(whoami|awk'{print$1}')\",\"NU\":\"${USER}\",\"CMD\":\""exportPROMPT_COMMAND='history1|tail-1|sed"s/^[]\+[0-9]\+//"|sed"s/$/\"}/" /var/log/command.log'

然后source /etc/bashrc

查看一下/var/log/command.log

是一个json格式的,包括时间、主机名、登陆ip、登陆用户、当前用户、命令

下面是indexer的配置

09:25:19#cat/etc/logstash/conf.d/logstash_indexer.confinput{redis{host= "10.10.125.8"port= "6379"data_type= "list"key= "logstash:redis"type= "redis-input"}output{elasticsearch{host= "172.16.3.72"codec= "json"protocol= "http"}stdout{}}

其中10.10.125.8是redis服务器,172.16.3.72是elasticsearch的ip

启动的话就使用/etc/init.d/logstash start

三、redis安装

1、下载

wgethttp://download.redis.io/releases/redis-3.0.4.tar.gz

2、解压

tarzxvfredis-3.0.4.tar.gz-C/usr/local/

3、安装

cd/usr/local/redis-3.0.4make

4、复制程序变量

cpsrc/redis-cli/usr/bincpsrc/redis-server/usr/bin

5、创建目录

mkdirconflogdbdata

6、配置文件

[root@ip-10-10-125-8redis-3.0.4]#catconf/redis-6379.conf|grep-v"^#"|sed'/^$/d'daemonizeyespidfile/var/run/redis_6379.pidport6379bind10.10.125.8timeout0tcp-keepalive0loglevelnoticelogfile/var/log/redis/redis_6379.logdatabases16save9001save30010save6010000stop-writes-on-bgsave-erroryesrdbcompressionyesrdbchecksumyesdbfilenameredis_6379.rdbdir/usr/local/redis-3.0.4/db/slave-serve-stale-datayesslave-read-onlyyesrepl-disable-tcp-nodelaynoslave-priority100appendonlynoappendfsynceverysecno-appendfsync-on-rewritenoauto-aof-rewrite-percentage100auto-aof-rewrite-min-size64mblua-time-limit5000slowlog-log-slower-than10000slowlog-max-len128hash-max-ziplist-entries512hash-max-ziplist-value64list-max-ziplist-entries512list-max-ziplist-value64set-max-intset-entries512zset-max-ziplist-entries128zset-max-ziplist-value64activerehashingyesclient-output-buffer-limitnormal000client-output-buffer-limitslave256mb64mb60client-output-buffer-limitpubsub32mb8mb60hz10aof-rewrite-incremental-fsyncyes

7、启动redis

redis-server/usr/local/redis-3.0.4/conf/redis-6379.conf

四、安装elasticsearch

1、安装

curl-L-Ohttps://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.zipunzipelasticsearch-1.7.1.zipcdelasticsearch-17.1

2、配置

09:52:38#grep-v"^#"config/elasticsearch.yml|sed'/^$/d'cluster.name:dl-elknode.name:"elk-bj-1-server"node.master:true

就配置了集群命令与节点名字

3、启动

bin/elasticsearch-d

这样elk就都安装完成了,我也没写的太详细,大家有需求可以自己查看官方介绍安装。

附件里我把我的Dashboard与相应视图都export了,大家需要可以自行import,但一定注意版本。

导入的顺序是:

1、Linux系统历史命令图形.json;

2、Linux系统历史命令搜索.json;

3、Linux系统历史命令数据视图.json.

附件:http://down.51cto.com/data/2366208

肯承认错误则错已改了一半

企业日志分析之linux系统history收集展示推荐

相关文章:

你感兴趣的文章:

标签云: