一.名词介绍:
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.集群部署模式:
图片.png
2.安装JDK 1.7
省略安装步骤,推荐1.7+版本以上
java –version
设置java的环境变量,比如
vim ~/.bashrc
export JAVA_HOME= /home/yuexh/Java/jdk1.7.0_45
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:{JRE_HOME}/lib
export PATH=PATH
source ~/.bashrc
3.安装Redis
A.创建目录data->redis,将src中的redis-cli、redis-server文件以及redis.conf文件复制至
……/data/redis目录下。
如cp –r redis-cli /home/yuexh/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 yuexh
OK
127.0.0.1:6379> get username
"yuexh"
表示安装配置成功。用命令介绍:
查询所有键值字段:KEYS *
清除所有数据:flushdb
查询key的list集合数量:llen
更多请查看官方API命令
注:**./redis-cli -h**
**IP**
**-p**
**端口号**
端口配置见
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****的地址和索引。
七.集成
把上面的系统集成起来
首先把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/yuexh/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
- 命令载入安装
./plugin -u [file:////home/yuexh/installSoft/elasticsearch-head-master.zip](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/yuexh/installSoft/bigdesk-master.zip](file://home/yuexh/installSoft/elasticsearch-head-master.zip)(存放路径)
-i mobz/elasticsearch-head