当前位置 : 主页 > 操作系统 > centos >

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

来源:互联网 收集:自由互联 发布时间:2022-06-20
最近一方面给自己开发的平台套模板,一方面研究一些新的技术,比如今天介绍的elk,下面是介绍一下我是如何使用elk收集linux系统history与展示的。 一、效果图 下面是效果图,感觉满

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

一、效果图

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

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

下面是具体介绍

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

企业日志分析之linux系统history收集展示_elk收集历史命令_02

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

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

企业日志分析之linux系统history收集展示_elk history_03

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

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

企业日志分析之linux系统history收集展示_elk 日志_04

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

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

企业日志分析之linux系统history收集展示_elk收集历史命令_05

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

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

企业日志分析之linux系统history收集展示_elk收集历史命令_06

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

6、Linux系统历史命令数据

企业日志分析之linux系统history收集展示_elk 日志_07

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

二、logstash安装

我使用的elk架构如下

企业日志分析之linux系统history收集展示_elk收集历史命令_08

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=Logstash repository for 1.5.x packages baseurl=http://packages.elasticsearch.org/logstash/1.5/centos gpgcheck=1 gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch enabled=1 EOF

然后安装

yum install logstash -y

下面是shipper的配置

[root@puppet ~]# cat /etc/logstash/conf.d/logstash_agent.conf input {     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 ];then touch $HISTDIR chmod 666 $HISTDIR fi export HISTTIMEFORMAT="{\"TIME\":\"%F %T\",\"HOSTNAME\":\"$HOSTNAME\",\"LI\":\"$(who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g')\",\"LU\":\"$(who am i|awk '{print $1}')\",\"NU\":\"${USER}\",\"CMD\":\"" export PROMPT_COMMAND='history 1|tail -1|sed "s/^[ ]\+[0-9]\+  //"|sed "s/$/\"}/">> /var/log/command.log'

然后source /etc/bashrc

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

企业日志分析之linux系统history收集展示_elk 日志_09

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

下面是indexer的配置

09:25:19 # cat /etc/logstash/conf.d/logstash_indexer.conf input {   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、下载

wget http://download.redis.io/releases/redis-3.0.4.tar.gz

2、解压

tar zxvf redis-3.0.4.tar.gz -C /usr/local/

3、安装

cd /usr/local/redis-3.0.4 make

4、复制程序变量

cp src/redis-cli /usr/bin cp src/redis-server /usr/bin

5、创建目录

mkdir conf log db data

6、配置文件

[root@ip-10-10-125-8 redis-3.0.4]# cat conf/redis-6379.conf |grep -v "^#"|sed '/^$/d' daemonize yes pidfile /var/run/redis_6379.pid port 6379 bind 10.10.125.8 timeout 0 tcp-keepalive 0 loglevel notice logfile /var/log/redis/redis_6379.log databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename redis_6379.rdb dir /usr/local/redis-3.0.4/db/ slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes

7、启动redis

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

四、安装elasticsearch

1、安装

curl -L -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.zip unzip elasticsearch-1.7.1.zip cd  elasticsearch-17.1

2、配置

09:52:38 # grep -v "^#" config/elasticsearch.yml |sed '/^$/d' cluster.name: dl-elk node.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.

上一篇:linux ext4无法使用超过16T磁盘的解决办法
下一篇:没有了
网友评论