1.安装JDK

1)登陆ORACLE官网 (http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html )下载JDK

2)将jdk包放到目录/home/app下,执行解压命令

tar -xvf jdk-8u101-linux-i586.tar.gz

3)添加java环境变量

export JAVA_HOME=/home/app/java/jdk1.8.0_101

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4)java配置生效

source /etc/profile

5)查看jdk是否安装成功

java -version

2.安装配置Logstash

1)上传logstash-2.4.0.zip到 /home/app目录下

2)解压logstash-2.4.0.zip

unzip logstash-2.4.0.zip

3)查看logstash 是否可以正常运行

进入/home/bin/logstash-2.4.0/bin 目录,执行命令 ./logstash -v,返回信息:

输入 hello logstash,查看返回结果

4)新建patterns 目录,添加gork配置文件hirecar_log_pattern(定义gork信息)

ANYTHING .+

BROWSER [a-zA-Z0-9.@-+_%]+/[0-9]+.[0-9]+

NGUSERNAME [a-zA-Z.@-+_%]+

NGUSER %{NGUSERNAME}

NGINXACCESS %{IPORHOST:clientip} %{NGUSER:ident} %{NGUSER:auth} [%{HTTPDATE:timestamp}] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) (?:"(?:%{URI:referrer}|-)"|%{QS:referrer}) %{QS:agent} %{QS:xforwardedfor} %{IPORHOST:host} %{BASE10NUM:request_duration}

5)新建ifo_confs目录,添加hirecarlog文件(定义输入,输出,过滤器)

input {

file {

path => "/home/app/hirecarlog/*"

start_position => beginning

}

}

filter {

grok {

patterns_dir => "/home/app/logstash-2.4.0/dir"

match => {

"message" => "%{IPORHOST:clientip} %{NGUSER:ident} "%{NGUSER:ident2}" %{NGUSER:ident3} [%{HTTPDATE:timestamp}] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:response} (?:%{NUMBER:bytes}|-) "(%{URI:referrer}|-)" %{ANYTHING:anything}"

}

}

grok {

patterns_dir => "/home/app/logstash-2.4.0/dir"

match => {

"clientip" => "%{NUMBER:xx}"

}

remove_field => ["message","host","ident","ident2","ident3","httpversion","bytes","xx","anything"]

}

date{

match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]

}

}

output {

stdout {

codec => rubydebug

}

elasticsearch{

hosts => ["localhost:9200"]

}

}

3 安装Elasticsearch

1)解压 elasticsearch-1.5.0.zip

2)/home/app/elasticsearch-1.5.0/config目录下 修改文件 elasticsearch.yml

修改cluster.name 为 hirecar

注释信息:

network.bind_host

network.publish_host

network.host

注:elasticsearch 2.4.0 需要指定IP:即修改network.host属性值。

3)安装插件 head

elasticsearch/bin/plugin -install mobz/elasticsearch-head

4)后台启动elasticsearch ./elaticsearch -d

5) 查看elasticsearch运行状态:host:9200/ ,返回elasticsearch基础信息

{

"status" : 200,

"name" : "50 hirecar",

"cluster_name" : "hirecar",

"version" : {

"number" : "1.5.0",

"build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",

"build_timestamp" : "2015-03-23T14:30:58Z",

"build_snapshot" : false,

"lucene_version" : "4.10.4"

},

"tagline" : "You Know, for Search"

}

6)通过head插件查看elasticsearch运行详细信息:访问:host:9200/plugin/_head

4.安装kibana

1)解压kibana-4.1.11-linux-x64.zip

2)定义kibana访问的elasticsearch地址属性:elasticsearch_url

3)注释服务绑定地址属性: host

4)$Kibana_HOME/bin 目录下,启动kibana服务 ./kibana

5)验证kibana是否启动正常,访问链接: http://host:5601/

5.kibana简单应用 -创建一个饼状图

1) 访问Visulize选型,选择创建饼状统计分析图

2)点击创建一个新查询条件

3)选择时间,定义统计指标,定义统计分区

4)点击执行按钮后,返回指定时间范围内排名前20的IP访问地址

6 运维使用ELK效果展示

上述的内容仅是简单介绍了ELK的部署,但是很多人会问,我能用ELK来做什么?如果你是一个开发,那么你可以用ELK来进行大数据分析和自定义图标,制作报表等;如果你是一个运维,那么你可以用ELK来收集你各个系统的系统日志、安全日志、用户操作记录等等,当然你也可以收集程序日志,但是前提是你的程序日志不是debug模式,不然ELK收集的日志会让你怀疑人生(因为实在是太多太多的日志输出了)。

下面我来展示下运维使用ELK的简单例子,也是我们公司目前在用的一个审计手段:

1)操作系统用户操作记录审计功能

该功能可以实现,任何用户任何时间只要在操作系统上进行了操作,他的操作指令就会立即传输到ELK中的Elasticsearch中,即使用户在操作系统上清除了操作记录也没用,依然是可以记录到。该功能可以为操作审计提供一大助力。

2)记录安全日志

该功能可以统计系统上用户登录次数等,过滤关键字可以查看时间段内是否有人包里破解系统,这个功能可以作为日常巡检中的一项,提高系统安全性。

3)查看系统日志,判断系统是否出现异常情况

通过过滤Error或Warn等关键字眼,可以巡查是否有服务器出现了系统异常。该功能也可以作为日常巡检工作之一,确保服务器能够正常运作。

4)进行绘图,自定义控制面板查看重要信息

例如我想看下我的操作系统每天都有多少次登录信息、或者说是否有人在服务器上进行了危险操作,或者系统是否出现了异常输出等等,均可以自定义控制面板。点击向上按钮可以查看面板图中的相关信息。

转自

谁说运维用ELK没用?我就说很有用,只是你之前不会用
http://www.toutiao.com/i6445042259703366157/

谁说运维用ELK没用?我就说很有用,只是你之前不会用【转】的更多相关文章

  1. ubuntu下安装python各类运维用模块(以后补充用途)

    环境:ubuntu 16.04LTS,python3,python2 已安装:pip3,pip2 注:基于Python自动化运维这本书上介绍的各模块而来 1.python-rrdtool(just f ...

  2. [运维]ELK实现日志监控告警

    https://blog.csdn.net/yeweiouyang/article/details/54948846

  3. linux常用命令(运维用到)

    0.基础命令 pwd 查看当前目录 ls 查看当前目录所有文件夹和文件 mkdir 新建目录 mkdir -p a/b/c 创建多级目录 touch 新建文件 cat 查看文件 clear 清屏 sh ...

  4. 最全的linux命令大全,shell运维手册

    shell实例手册 0 说明{ 手册制作: 雪松} 1 文件{        ls -rtl                 # 按时间倒叙列出所有目录和文件 ll -rt    touch file ...

  5. [转帖]Shell运维手册

    shell实例手册    https://github.com/liquanzhou/ops_doc   0 说明{       手册制作: 雪松   更新日期: 2018-09-11       欢 ...

  6. 【Eclipse】Eclipse 快捷键

    Eclipse 快捷键 关于快捷键 Eclipse 的很多操作都提供了快捷键功能,我们可以通过键盘就能很好的控制 Eclipse 各个功能: 使用快捷键关联菜单或菜单项 使用快捷键关联对话窗口或视图或 ...

  7. Eclipse 实用技巧

    代码智能提示 Java智能提示 Window -> Preferences -> Java -> Editor -> Content Assist -> Auto Act ...

  8. MyEclipse 常用快捷键

    MyEclipse 常用快捷键 编辑: Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类.try catch包围等) Ctrl+Shift+F 格式化当前代码 ...

  9. eclipse最有用快捷键整理

    在网上搜eclipse快捷键,可以搜出一大堆,大多罗列了n多的快捷键,估计大部分人看了以后都会头大的,我也头大,不过我一一尝试了一遍,整理出了eclipse最常用最有用,写代码必须用到的一些快捷键,大 ...

随机推荐

  1. Python urlparse模块

    Python urlparse模块 urlparse 模块简介 urlparse模块用于把url解析为各个组件,支持file,ftp,http,https,imap,mailto,mms,news,n ...

  2. C++解析-外传篇(2):函数的异常规格说明

    0.目录 1.异常规格说明 2.unexpected() 函数 3.小结 1.异常规格说明 问题: 如何判断一个函数是否会抛出异常,以及抛出哪些异常? C++提供语法用于声明函数所抛出的异常 异常声明 ...

  3. 【刷题】清橙 A1295 necklace

    试题来源 清华大学2011年百名信息学优秀高中学子夏令营 问题描述 有人打算送给你一条宝石项链,包含了N颗五颜六色(一共有M种颜色)的宝石.因为本问题中你只关心每个宝石的颜色,而且项链现在两头还没有接 ...

  4. Unity3D for VR 学习(10): Unity LOD Group 组件

    LOD (Level of Detail), 远小近大思想. LOD,在Unity中是用到了空间换时间的优化方法:即程序加载2套模型,导致包会增大:在运行时刻,远处的用面数少的模型–模糊一些,近处用面 ...

  5. splay tree 学习笔记

    首先感谢litble的精彩讲解,原文博客: litble的小天地 在学完二叉平衡树后,发现这是只是一个不稳定的垃圾玩意,真正实用的应有Treap.AVL.Splay这样的查找树.于是最近刚学了学了点S ...

  6. jsp 基本原理

    jsp 的本质是 servlet,当用户请求 servlet 的时候,servlet 利用输出流动态输出 HTML 内容. 由于包括了大量的 HTML 标签.大量的静态文本等,导致 servlet 开 ...

  7. CSUST 四月选拔赛个人题解

    这场比赛演的逼真,感谢队友不杀之恩 总结:卡题了赶紧换,手上捏着的题尽快上机解决 http://csustacm.com:4803/ 1113~1122 1113:六学家 题意:找出满足ai+aj=a ...

  8. RabbitMQ消息分发轮询和Message Acknowledgment

    一.消息分发 RabbitMQ中的消息都只能存储在Queue中,生产者(下图中的P)生产消息并最终投递到Queue中,消费者(下图中的C)可以从Queue中获取消息并消费. 多个消费者可以订阅同一个Q ...

  9. P2596 [ZJOI2006]书架 && Splay 区间操作(三)

    P2596 [ZJOI2006]书架 题目描述 小T有一个很大的书柜.这个书柜的构造有些独特,即书柜里的书是从上至下堆放成一列.她用1到n的正整数给每本书都编了号. 小T在看书的时候,每次取出一本书, ...

  10. 10个有关String的面试问题

    下面是面试中最容易问到的有关String的问题. 1. 如何比较两个字符串?使用"=="还是equals()方法? 简单来讲,"=="测试的是两个对象的引用是否 ...