企業(yè)日志分析之Linux系統(tǒng)history收集展示
【引自吟—技術(shù)交流的博客】最近一方面給自己開發(fā)的平臺(tái)套模板,一方面研究一些新的技術(shù),比如今天介紹的elk,下面介紹一下我是如何使用elk收集linux系統(tǒng)history與展示。
一、效果圖
下面是效果圖,感覺(jué)滿足你需求再繼續(xù)看。
下面是具體介紹:
1.Linux系統(tǒng)歷史命令數(shù)據(jù)總量
主要是展示所選時(shí)間段接收history數(shù)據(jù)總量,比如昨天我總共收集了1002條數(shù)據(jù)。
2.Linux系統(tǒng)歷史命令監(jiān)控主機(jī)數(shù)量
主要是監(jiān)控總共有多少臺(tái)主機(jī)開始收集history日志數(shù)據(jù)。
3.LInux系統(tǒng)歷史命令運(yùn)行最多Top5
主要是介紹運(yùn)行最多的命令,比如***個(gè)ll命令運(yùn)行最多。
4.Linux系統(tǒng)歷史命令登陸主機(jī)Top5
主要是介紹登陸主機(jī)ip最多的前5個(gè)。
5.Linux系統(tǒng)歷史命令時(shí)間數(shù)據(jù)總量
主要介紹各時(shí)間段收集的數(shù)據(jù)總量。
6.Linux系統(tǒng)歷史命令數(shù)據(jù)
主要是展示每條收集數(shù)據(jù)內(nèi)容,包括收集時(shí)間、收集的主機(jī)名、當(dāng)前登陸ip、登陸用戶、當(dāng)前用戶、運(yùn)行命令。
二、logstash安裝
我使用的elk架構(gòu)如下:
ps:這個(gè)圖是網(wǎng)上找的。
我的elk版本分別為:
◆logstash 1.5.4-1
◆redis 3.0.4
◆elasticsearch 1.7.1
◆kibana 4.1.1
下面介紹如何安裝elk。
其實(shí)shipper與indexer的logstash安裝一樣,只不過(guò)是配置文件不一樣。
先介紹如何安裝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的配置。
這個(gè)配置就是收集/var/log/command.log的日志,這個(gè)日志是記錄history命令的,output輸出到redis服務(wù)。
#p#
下面是如何記錄history歷史命令,在/etc/bashrc里添加:
- cat >>/etc/bashrc<<EOF
 - 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'
 - EOF
 
然后source /etc/bashrc。
查看一下/var/log/command.log。
這是一個(gè)json格式的,包括時(shí)間、主機(jī)名、登陸ip、登陸用戶、當(dāng)前用戶、命令。
下面是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服務(wù)器,172.16.3.72是elasticsearch的ip。
啟動(dòng)的話就使用/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.復(fù)制程序變量
- cp src/redis-cli /usr/bin
 - cp src/redis-server /usr/bin
 
5.創(chuàng)建目錄
- 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.啟動(dòng)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
 
就配置了集群命令與節(jié)點(diǎn)名字。
3.啟動(dòng)
- bin/elasticsearch -d
 
這樣elk就都安裝完成了,我也沒(méi)寫的太詳細(xì),大家有需求可以自己查看官方介紹安裝。
附件里我把我的Dashboard與相應(yīng)視圖都export了,大家需要可以自行import,但一定注意版本。
導(dǎo)入的順序是:
1.Linux系統(tǒng)歷史命令圖形.json;
2.Linux系統(tǒng)歷史命令搜索.json;
3.Linux系統(tǒng)歷史命令數(shù)據(jù)視圖.json.
本文出自 “吟—技術(shù)交流” 博客,請(qǐng)務(wù)必保留此出處http://dl528888.blog.51cto.com/2382721/1703059
























 
 
 






 
 
 
 