企業日誌分析之linux系統history收集展現

最近一方面給本身開發的平臺套模板,一方面研究一些新的技術,好比今天介紹的elk,下面是介紹一下我是如何使用elk收集linux系統history與展現的。
node

1、效果圖linux

下面是效果圖,感受知足你需求在繼續看redis

wKioL1YfAU2jMKYsAAXAnHuyzeQ728.jpg

下面是具體介紹json

一、Linux系統歷史命令數據總量centos

wKiom1YfAZfSziq4AACjySrLFq0907.jpg

主要是展現所選時間段接收history數據總量,好比昨天我總共收集了1002條數據bash

二、Linux系統歷史命令監控主機數量服務器

wKioL1YfAhPB0bs4AACV6SfiWCk618.jpg

主要是監控總共有多少臺主機開始收集history日誌數據架構

三、LInux系統歷史命令運行最多Top5app

wKiom1YfAjTAwD9aAADoB6gywXQ361.jpg

主要是介紹運行最多的命令,好比第一個ll命令運行最多curl

四、Linux系統歷史命令登錄主機Top5

wKioL1YfAomDAsxdAADlUVGCFMA501.jpg

主要是介紹登錄主機ip最多的前5個

五、Linux系統歷史命令時間數據總量

wKiom1YfAqPzRkB7AAHNlXSdpH0389.jpg

主要介紹各時間段收集的數據總量

六、Linux系統歷史命令數據

wKiom1YfAtTRHQGuAAQFedGroNw800.jpg

主要是展現每條收集數據內容,包括收集時間、收集的主機名、當前登錄ip、登錄用戶、當前用戶、運行命令。

2、logstash安裝

我使用的elk架構以下

wKioL1YfA1_zpefQAAFY7Lj_vh0308.jpg

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

wKiom1YfBVCj7xakAAiv_doGFP0568.jpg

是一個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

3、redis安裝

一、下載

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

二、解壓

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

三、安裝

cd /usr/local/redis-3.0.4
make

四、複製程序變量

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

五、建立目錄

mkdir conf log db data

六、配置文件

[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

七、啓動redis

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

4、安裝elasticsearch

一、安裝

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

二、配置

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

就配置了集羣命令與節點名字

三、啓動

bin/elasticsearch -d

這樣elk就都安裝完成了,我也沒寫的太詳細,你們有需求能夠本身查看官方介紹安裝。

附件裏我把個人Dashboard與相應視圖都export了,你們須要能夠自行import,但必定注意版本。

導入的順序是:

一、Linux系統歷史命令圖形.json;

二、Linux系統歷史命令搜索.json;

三、Linux系統歷史命令數據視圖.json.

相關文章
相關標籤/搜索