ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用-程序员宅基地

技术标签: python  elasticsearch  linux  redis  docker  

一.名词介绍:

ElasticSearch 搜索

logstash 管理日志和事件的工具

Kibana4 功能强大的数据显示客户端

redis 缓存

二.应用包准备:

elasticsearch-1.5.0.tar.gz

logstash-1.4.2.tar.gz

kibana-4.0.1-linux-x64.tar.gz

redis-2.8.19.tar.gz

jdk-7u45-linux-x64.tar.gz

三.部署安装:

1.集群部署模式:

2.安装JDK 1.7

省略安装步骤,推荐1.7+版本以上

java –version

设置java的环境变量,比如

vim ~/.bashrc

>> 

export JAVA_HOME= /home/xiel/Java/jdk1.7.0_45

export JRE_HOME=${JAVA_HOME}/jre 

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 

export PATH=${JAVA_HOME}/bin:$PATH 

>> 

source ~/.bashrc

 

3.安装Redis

A.创建目录data->redis,将src中的redis-cli、redis-server文件以及redis.conf文件复制至

……/data/redis目录下。

如cp –r redis-cli /home/xiel/module/redis-2.8.19.1/data/redis

B.启动:redis-server redis.conf &

C. 连接测试:redis-cli –h 127.0.0.1 -p 6379

127.0.0.1:6379> set username nieyong

OK

127.0.0.1:6379> get username

"nieyong"

表示安装配置成功。用命令介绍:

查询所有键值字段:KEYS *

清除所有数据:flushdb

查询key的list集合数量:llen

更多请查看官方API命令

注:./redis-cli -h IP -p 端口号
端口配置见:redis.conf中的port参数

4.安装Elasticsearch

A.解压elasticsearch-1.5.0.tar.gz

B.进入 bin目录,启动./ elasticsearch –d(后台启动)

C.测试验证,curl -X GET http://localhost:9200

{

  "status" : 200,

  "name" : "test-node1",

  "cluster_name" : "cluster",

  "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"

}

表示安装配置成功。

注:基本配置介绍../conf/ elasticsearch.yml

cluster.name: cluster(集群名称)

node.name: "test-node1"(集群结点名称)

node.master: true(是否可被选为主结点,默认true)

node.data: true(结点是否存储数据,默认true)

index.number_of_shards: 5(索引分片数)

index.number_of_replicas: 1(索引副本数)

transport.tcp.port: 9300(数据传输IP)

http.port: 9200(对外访问监听IP)

常用基本命令:

查询所有数据:curl http://localhost:9200/_search?pretty

集群健康状态:curl -XGET http://localhost:9200/_cluster/health?pretty

删除所有数据: curl -XDELETE 'http://localhost:9200/_all'

删除指定索引:curl -XDELETE 'http://10.21.16.86:9200/索引名称'

5.安装Logstash

A.解压logstash-1.4.2.tar.gz。

B.进入bin目录,./logstash agent –f 配置文件 &即可。         

logstash下载即可使用,命令行参数可以参考logstash flags,主要有

agent   #运行Agent模式

-f CONFIGFILE #指定配置文件

web     #自动Web服务

-p PORT #指定端口,默认9292

6.安装Kibana

A.解压kibana-4.0.1-linux-x64.tar.gz

B.进入bin,启动./kibana即可。

C.登录访问:http://10.21.16.86:5601(默认端口为5601)

注:可以修改kibana.yml配置elasticsearch的地址和索引

7.集成

把上面的系统集成起来

首先把redis和elasticsearch都启动起来

为logstash新建一个配置文件

vi redis.conf

配置文件内容如下

input {

  redis {

    host => "127.0.0.1"

    port => "6379"

    key => "logstash:demo"

    data_type => "list"

    codec  => "json"

    type => "logstash-redis-demo"

    tags => ["logstashdemo"]

  }

}

output {

  elasticsearch {

    host => "127.0.0.1"

  }

}

用这个配置文件启动logstash agent

./logstash agent -f redis.conf &

启动logstash内置的web

./logstash web &

查看web,应该还没有数据

http://127.0.0.1:9292

在redis 加一条数据

RPUSH logstash:demo "{\"time\": \"2013-01-01T01:23:55\", \"message\": \"logstash demo message\"}"

看看elasticsearch中的索引现状

curl 127.0.0.1:9200/_search?pretty=true

curl -s http://127.0.0.1:9200/_status?pretty=true | grep logstash

再通过logstash web查询一下看看

http://127.0.0.1:9292

通过单独的kibana界面查看

http://127.0.0.1/html/kibana-latest/index.html#/dashboard/file/logstash.json

8.Logstash高级配置应用

A.Logstash文件采集输入Redis数据缓存配置。

vim shipper.conf
input {

  file {

    path => ["/home/xiel/module/logstash-1.4.2/logs/stdout.log"]

    exclude => ["*.gz", "access.log"]

  }

}

output {

  stdout {}

  redis {

    host => "10.21.16.86"

    port => "6379"

    data_type => "list"

    key => "logstash:redis"

  }

}  

B.Logstash端口监听方式采集输入Redis数据缓存配置。

vim logstash-syslog-shipper.conf   
input {

  tcp {

    port => 5140

    type => syslog

  }

  udp {

    port => 5140

    type => syslog

  }

}



filter {

  if [type] == "syslog" {

    grok {

      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }

      add_field => [ "received_at", "%{@timestamp}" ]

      add_field => [ "received_from", "%{host}" ]

    }

    syslog_pri { }

    date {

      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]

    }

  }

}

output {

  stdout {}

  redis {

    host => "10.21.16.86"

    port => "6379"

    data_type => "list"

    key => "logstash:redis"

  }

}

C.Logstash采集Redis输入Elasticsearch索引配置。

Logstash-es.conf

input {

        redis {

                host => "127.0.0.1"

                port => "6379"

                type => "redis-input"

                # these settings should match the output of the agent

                data_type => "list"

                key => "logstash:redis"

                # We use json_event here since the sender is a logstash agent

                #message_format => "json_event"

        }

}

output {

        # stdout { debug => true debug_format => "json"}

        elasticsearch {

        #host => "127.0.0.1"

        cluster => "cluster"   (Elasticsearch集群名称)

        codec => "json"

        protocol => "http"



        }

        stdout { codec => rubydebug }

}

9.Elasticsearch常用插件安装:

1.head

        和插件名字一样,首推这个插件。通过head,可以查看集群几乎所有信息,还能进行简单的搜索查询,观察自动恢复的情况等等。

(2)安装

方式1

1.下载https://github.com/mobz/elasticsearch-head

2. 命令载入安装

 ./plugin -u file:home/xiel/installSoft/elasticsearch-head-master.zip(存放路径)

-i mobz/elasticsearch-head                                      

方式2

进入Elasticsearch所在bin目录下,执行以下命令

./ plugin -install Aconex/elasticsearch-head

(3) 运行es,找开http://localhost:9200/_plugin/head/

2.bigdesk

bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。

安装命令:\bin>plugin -install lukas-vlcek/bigdesk

进入http://localhost:9200/_plugin/bigdesk/

注:也可以像head方式1一样先下载对应插件,下载地址:

https://github.com/lukas-vlcek/bigdesk

进入bin目录下,执行:

./plugin -u file:home/xiel/installSoft/bigdesk-master.zip(存放路径)

-i mobz/elasticsearch-head    

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013510614/article/details/109849714

智能推荐

计算机描述不可用win10,升级win10出现的各种问题及解决办法-程序员宅基地

文章浏览阅读2.5k次。将电脑从以前版本的 Windows-如 Windows 7 或 Windows 8.1-升级到 Windows 10。本常见问题解答旨在解决有关升级到 Windows 10 的问题。本文将针对Win10的一些常见问题给出解决方案,如果你在使用Win10的过程中,遇到了无限重启、不能使用打印机和无法与Windows XP直接共享等问题,那这篇文章可能对你有帮助。升级win10出现的各种问题汇..._win10有问题

linux两个终端间通信,不同vlan间的通信简单配置(三种方式)-程序员宅基地

文章浏览阅读1k次。不同vlan间的通信简单配置1.单臂路由(图)环境:一台路由器,一台二层交换机,两台pc机二层交换机的配置一般模式:Switch>输入enable进入特权模式:Switch>enable输入configure terminal进入全局配置模式:Switch#configure terminalEnter configuration commands, one per line. En..._配置vlan使两台linux服务器互通

延时消抖c语言,蓝桥杯练习(二)按键的使用和延时消抖-程序员宅基地

文章浏览阅读4.6k次,点赞5次,收藏14次。蓝桥杯练习(二)按键的使用和延时消抖。通常我们使用的按键均为微动按键,在按键按下时内部的金属簧片触点在发生振动,发出轻微的撞击声响并产生抖动电压这种现象称为按键的抖动。按键的抖动实际上是一种接触不良现象如果不进行有效的处理,按键抖动会影响用户体验并且降低系统运行的稳定性,所以进行按键延时消抖是非常有必要的,对按键消抖通常可以采用软件消抖和硬件消抖两种方式。讲解按键抖动就需要知道按键按下这个过程中的..._微动按键csdn

Bluetooth技术学习笔记 ——RFCOMM(2)_bluetooth rfcomm-程序员宅基地

文章浏览阅读2.2k次。参考:RFCOMM_SPEC_V12DLCI:Data Link Connection,下行链路连接1. RFCOMM帧(1)帧类型:Set Asynchronous Balanced Mode (SABM) command:异步平衡模式设置指令Unnumbered Acknowledgement (UA) response:未加编号的确认响应Disconnected Mode..._bluetooth rfcomm

fetch总结_response type opaque-程序员宅基地

文章浏览阅读2.3k次,点赞5次,收藏16次。What fetch官方描述:Fetch API提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应。它还提供了一个全局fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。这种功能以前是使用 XMLHttpRequest实现的。Fetch提供了一个更好的替代方法,可以很容易地被其他技术使用,例如Service Workers..._response type opaque

mavros 仿真与飞行器控制_mavros飞行速度-程序员宅基地

文章浏览阅读165次。1. 仿真步骤make px4-sitl gazebo(需在目录下进行)roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14557"_mavros飞行速度

随便推点

automake生成静态库文件_visual studio lib和dll的编译生成与调用-程序员宅基地

文章浏览阅读142次。Dll在Windows下,DLL(Dynamic Link Library,动态链接库)是一个被编译过的二进制程序,但与.exe文件不同,.dll文件不能独立运行,必须由其他程序调用。为什么有这东西呢?当然有其存在的好处啦:不限语言。我们可以用自己熟悉的语言写DLL,然后由其他语言写的可执行程序来调用这些DLL。例如,可以用Python写程序的主界面,然后调用C写的实现一个具体功能的DLL模块。增..._automake,vs

python+selenium自动化软件测试(unittes)-程序员宅基地

文章浏览阅读5.1k次。1.1 unittest简介前言(python基础比较弱的,建议大家多花点时间把基础语法学好,这里有套视频,可以照着练习下:http://pan.baidu.com/s/1i44jZdb密码:92fs)熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一个python版的junit。..._python+selenium+unittes分层

PSIM软件学习---01初识别PSIM软件-程序员宅基地

文章浏览阅读1w次,点赞14次,收藏70次。  PSIM是趋向于电力电子领域以及电机控制领域的仿真应用包软件。PSIM全称Power Simulation。PSIM是由SIMCAD 和SIMVIEM两个软件来组成的。  PSIM软件最大的特点是支持C语言模块,这样在仿真电路时,特别是数字电源或者电机驱动仿真时,可以直接编写C代码来驱动功率管,调试电路非常方便。  但是PSIM仿真软件在网上的教程比较少,学习起来比较困难,当时自己学习的时候也废了好大的功夫,于是决定写一个系列的文章,来比较全面的介绍一下PSIM软件的使用。由于自己也是刚学会不久,如_psim

odoo tree视图属性_"odoo editable=\"top"-程序员宅基地

文章浏览阅读238次。一般属性列表颜色常用判断格式:编辑属性 editableeditable=“bottom”是在行的底部创建2.editable=“top”是在行的顶部创建_"odoo editable=\"top"

安装了sql2014再装mysql_deepin 2014系统下安装mysql数据库的方法步骤-程序员宅基地

文章浏览阅读76次。deepin 2014下载及安装deepin 2014的下载及安装大家可以参考下面这两篇文章,一篇为正式版的下载与安装,另外一篇文章给大家分享了deepin 2014用u盘安装的方法步骤,需要的朋友们可以参考学习:好了,下面进入本文的重要内容:deepin 2014系统下安装mysql数据库的方法步骤,一起来看看吧。一:安装mysql打开deepin terminal:在此过程中会提示输入两次密码..._安装完sql后再安装什么

matlab中ode45如何设置,如何使用Matlab中的ode45修正赋值错误(ode45函数的第488行)-程序员宅基地

文章浏览阅读1k次。我正在写一个脚本ode45为了整合卫星在火星附近双曲线轨道上的运动方程.我需要整合地球上的整个通道:从SOI半径开始(576000km)向行星前进,然后穿过大气层直到卫星到达opposite“大气边界(设置在250km从表面)。当它接收到输入A时tspan比大约高200000秒(我需要大约400000秒),Matlab给出了以下信息:'无法执行分配,因为左侧的大小为4乘2,右边的尺寸是4乘5。er..._matlab2016和2019中的ode45是不是有改动

推荐文章

热门文章

相关标签