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

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

[[152425]]

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

一、效果图

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

下面是具体介绍:

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

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

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

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

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

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

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

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

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

wKiom1YfAqPzRkB7AAHNlXSdpH0389.jpg

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

6.Linux系统历史命令数据

wKiom1YfAtTRHQGuAAQFedGroNw800.jpg

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

二、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源。

  1. cat >>/etc/yum.repos.d/logstash.repo<EOF 
  2. [logstash-1.5] 
  3. name=Logstash repository for 1.5.x packages 
  4. baseurl=http://packages.elasticsearch.org/logstash/1.5/centos 
  5. gpgcheck=1 
  6. gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch 
  7. enabled=1 
  8. EOF 

然后安装。

yum install logstash -y

下面是shipper的配置。

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

#p#

下面是如何记录history历史命令,在/etc/bashrc里添加:

  1. cat >>/etc/bashrc<<EOF 
  2. HISTDIR='/var/log/command.log' 
  3. if [ ! -f $HISTDIR ];then 
  4. touch $HISTDIR 
  5. chmod 666 $HISTDIR 
  6. fi 
  7. 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\":\"" 
  8. export PROMPT_COMMAND='history 1|tail -1|sed "s/^[ ]\+[0-9]\+  //"|sed "s/$/\"}/">> /var/log/command.log' 
  9. EOF 

然后source /etc/bashrc。

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

wKiom1YfBVCj7xakAAiv_doGFP0568.jpg

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

下面是indexer的配置:

  1. 09:25:19 # cat /etc/logstash/conf.d/logstash_indexer.conf 
  2. input { 
  3.   redis { 
  4.     host => "10.10.125.8" 
  5.     port => "6379" 
  6.     data_type => "list" 
  7.     key => "logstash:redis" 
  8.     type => "redis-input" 
  9.   } 
  10. output { 
  11.     elasticsearch { 
  12.       host =>"172.16.3.72" 
  13.       codec => "json" 
  14.       protocol => "http" 
  15.     } 
  16.     stdout {} 

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

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

三、redis安装

1.下载

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

2.解压

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

3.安装

  1. cd /usr/local/redis-3.0.4 
  2. make 

4.复制程序变量

  1. cp src/redis-cli /usr/bin 
  2. cp src/redis-server /usr/bin 

5.创建目录

  1. mkdir conf log db data 

6.配置文件

  1. [root@ip-10-10-125-8 redis-3.0.4]# cat conf/redis-6379.conf |grep -v "^#"|sed '/^$/d' 
  2. daemonize yes 
  3. pidfile /var/run/redis_6379.pid 
  4. port 6379 
  5. bind 10.10.125.8 
  6. timeout 0 
  7. tcp-keepalive 0 
  8. loglevel notice 
  9. logfile /var/log/redis/redis_6379.log 
  10. databases 16 
  11. save 900 1 
  12. save 300 10 
  13. save 60 10000 
  14. stop-writes-on-bgsave-error yes 
  15. rdbcompression yes 
  16. rdbchecksum yes 
  17. dbfilename redis_6379.rdb 
  18. dir /usr/local/redis-3.0.4/db/ 
  19. slave-serve-stale-data yes 
  20. slave-read-only yes 
  21. repl-disable-tcp-nodelay no 
  22. slave-priority 100 
  23. appendonly no 
  24. appendfsync everysec 
  25. no-appendfsync-on-rewrite no 
  26. auto-aof-rewrite-percentage 100 
  27. auto-aof-rewrite-min-size 64mb 
  28. lua-time-limit 5000 
  29. slowlog-log-slower-than 10000 
  30. slowlog-max-len 128 
  31. hash-max-ziplist-entries 512 
  32. hash-max-ziplist-value 64 
  33. list-max-ziplist-entries 512 
  34. list-max-ziplist-value 64 
  35. set-max-intset-entries 512 
  36. zset-max-ziplist-entries 128 
  37. zset-max-ziplist-value 64 
  38. activerehashing yes 
  39. client-output-buffer-limit normal 0 0 0 
  40. client-output-buffer-limit slave 256mb 64mb 60 
  41. client-output-buffer-limit pubsub 32mb 8mb 60 
  42. hz 10 
  43. aof-rewrite-incremental-fsync yes 

7.启动redis

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

四、安装elasticsearch

1.安装

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

2.配置

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

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

3.启动

  1. bin/elasticsearch -d 

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

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

导入的顺序是:

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

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

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

本文出自 “吟—技术交流” 博客,请务必保留此出处http://dl528888.blog.51cto.com/2382721/1703059

责任编辑:火凤凰 来源: 51CTO博客
相关推荐

2015-10-27 15:54:29

message日志分析Linux

2020-09-02 08:03:28

NginxGrafana日志

2015-08-03 15:48:22

Linux日志

2018-11-26 08:40:43

2011-11-21 15:35:49

日志分析

2024-03-11 00:01:00

PromtailLoki服务器

2022-02-18 15:19:52

日志收集工具开源

2013-11-01 10:43:35

日志分析Awstats实战Apache

2018-07-09 15:03:17

LinuxUnixSosreport

2009-04-09 16:59:39

Linux中科红旗移动平台

2013-03-20 17:18:07

Linux系统性能调优

2023-07-07 06:53:56

远程软件日志向日葵

2011-11-21 17:20:02

DCOM错误日志

2009-09-04 11:00:29

2015-07-06 13:56:03

综合布线布线技术

2022-05-11 10:58:11

MetricKitiOS13系统崩溃诊断

2022-06-12 21:28:26

Fluentd开源

2015-07-31 10:57:01

安全日志windows安全日志安全日志分析

2018-03-09 09:15:16

Linuxsyslog-ng日志

2021-02-08 19:55:51

物联网IoT智能运输
点赞
收藏

51CTO技术栈公众号