您的位置:首页 > 其它

ELK(日志分析系统): Elasticsearch + Logstash + Kibana集群环境部署及应用

2016-12-22 00:00 1251 查看

一.名词介绍:

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命令

注:[code=plain]./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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Elasticsearch logs
相关文章推荐