Logstash + Elasticsearch + Kibana+Redis+Syslog-ng

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。

logstash是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。其实logstash是可以被别的替换,比如常见的fluented

Kibana是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

redis是一个高性能的内存key-value数据库,非必需安装,可以防止数据丢失.

参考::

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
http://www.logstash.net/
http://chenlinux.com/2012/10/21/elasticearch-simple-usage/
http://www.elasticsearch.cn
http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz?AuthParam=1408083909_3bf5b46169faab84d36cf74407132bba
http://curran.blog.51cto.com/2788306/1263416
http://storysky.blog.51cto.com/628458/1158707/
http://zhumeng8337797.blog.163.com/blog/static/10076891420142712316899/
http://enable.blog.51cto.com/747951/1049411
http://chenlinux.com/2014/06/11/nginx-access-log-to-elasticsearch/
http://www.w3c.com.cn/%E5%BC%80%E6%BA%90%E5%88%86%E5%B8%83%E5%BC%8F%E6%90%9C%E7%B4%A2%E5%B9%B3%E5%8F%B0elkelasticsearchlogstashkibana%E5%85%A5%E9%97%A8%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90%E7%B4%A2%E5%BC%95
http://woodygsd.blogspot.com/2014/06/an-adventure-with-elk-or-how-to-replace.html
http://www.ricardomartins.com.br/enviando-dados-externos-para-a-stack-elk/
http://tinytub.github.io/logstash-install.html
http://jamesmcfadden.co.uk/securing-elasticsearch-with-nginx/
https://github.com/elasticsearch/logstash/blob/master/patterns/grok-patterns
http://zhaoyanblog.com/archives/319.html
http://www.vpsee.com/2014/05/install-and-play-with-elasticsearch/

IP说明:

118.x.x.x/16 为客户端ip
192.168.0.39和61.x.x.x为ELK的内网和外网ip

安装JDK

?
1
2
3
4
5
6
#https://www.reucon.com/cdn/java/jdk-7u67-linux-x64.tar.gz
#tar zxvf jdk-7u67-linux-x64.tar.gz
#mv jdk1.7.0_67 /usr/local/
#cd /usr/local/
#ln -s jdk1.7.0_67 jdk
#chown -R root:root jdk/

配置环境变量

?
1
2
3
4
5
6
7
8
vim /etc/profile
export JAVA_HOME=/usr/local/jdk   
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
export REDIS_HOME=/usr/local/redis
export ES_HOME=/usr/local/elasticsearch
export ES_CLASSPATH=$ES_HOME/config

变量生效:

?
1
source /etc/profile

验证版本:

?
1
2
3
4
5
6
7
#java -version
java version "1.7.0_67"
Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
#如果之前安装过java,可以先卸载
#rpm -qa |grep javajava-1.6.0-openjdk-1.6.0.0-1.24.1.10.4.el5java-1.6.0-openjdk-devel-1.6.0.0-1.24.1.10.4.el5
#rpm -e java-1.6.0-openjdk-1.6.0.0-1.24.1.10.4.el5 java-1.6.0-openjdk-devel-1.6.0.0-1.24.1.10.4.el5

安装redis

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#wget http://download.redis.io/releases/redis-2.6.17.tar.gz
#tar zxvf redis-2.6.17.tar.gz
#mv redis-2.6.17 /usr/local/
#cd /usr/local
#ln -s redis-2.6.17 redis
#cd /usr/local/redis
#make
#make install
#cd utils
#./install_server.sh
Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]

编辑配置文件

?
1
2
3
4
5
vim  /etc/redis/6379.conf
daemonize yes
port 6379
timeout 300
tcp-keepalive 60

启动

?
1
2
3
4
/etc/init.d/redis_6379 start
exists, process is already running or crashed
如报这个错,需要编辑下/etc/init.d/redis_6379,去除头上的\n
加入自动启动chkconfig –add redis_6379

安装Elasticsearch

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
http://www.elasticsearch.org/
http://www.elasticsearch.cn
集群安装只要节点在同一网段下,设置一致的cluster.name,启动的Elasticsearch即可相互检测到对方,组成集群
#wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.2.tar.gz
#tar zxvf elasticsearch-1.3.2.tar.gz
#mv elasticsearch-1.3.2 /usr/local/
#cd /usr/local/
#ln -s elasticsearch-1.3.2 elasticsearch
#elasticsearch/bin/elasticsearch -f
[2014-08-20 13:19:05,710][INFO ][node                     ] [Jackpot] version[1.3.2], pid[19320], build[dee175d/2014-08-13T14:29:30Z]
[2014-08-20 13:19:05,727][INFO ][node                     ] [Jackpot] initializing ...
[2014-08-20 13:19:05,735][INFO ][plugins                  ] [Jackpot] loaded [], sites []
[2014-08-20 13:19:10,722][INFO ][node                     ] [Jackpot] initialized
[2014-08-20 13:19:10,723][INFO ][node                     ] [Jackpot] starting ...
[2014-08-20 13:19:10,934][INFO ][transport                ] [Jackpot] bound_address {inet[/0.0.0.0:9301]}, publish_address {inet[/61.x.x.x:9301]}
[2014-08-20 13:19:10,958][INFO ][discovery                ] [Jackpot] elasticsearch/5hUOX-2ES82s_0zvI9BUdg
[2014-08-20 13:19:14,011][INFO ][cluster.service          ] [Jackpot] new_master [Jackpot][5hUOX-2ES82s_0zvI9BUdg][Impala][inet[/61.x.x.x:9301]], reason: zen-disco-join (elected_as_master)
[2014-08-20 13:19:14,060][INFO ][http                     ] [Jackpot] bound_address {inet[/0.0.0.0:9201]}, publish_address {inet[/61.x.x.x:9201]}
[2014-08-20 13:19:14,061][INFO ][node                     ] [Jackpot] started
[2014-08-20 13:19:14,106][INFO ][gateway                  ] [Jackpot] recovered [0] indices into cluster_state 
  
[2014-08-20 13:20:58,273][INFO ][node                     ] [Jackpot] stopping ...
[2014-08-20 13:20:58,323][INFO ][node                     ] [Jackpot] stopped
[2014-08-20 13:20:58,323][INFO ][node                     ] [Jackpot] closing ...
[2014-08-20 13:20:58,332][INFO ][node                     ] [Jackpot] closed
ctrl+c退出

以后台方式运行

?
1
elasticsearch/bin/elasticsearch -d

访问默认的9200端口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
curl -X GET http://localhost:9200
{
 "status" : 200,
"name" "Steve Rogers",
 "version" : {
"number" "1.3.2",
"build_hash" "dee175dbe2f254f3f26992f5d7591939aaefd12f",
 "build_timestamp" "2014-08-13T14:29:30Z",
"build_snapshot" false,
"lucene_version" "4.9"
  },
 "tagline" "You Know, for Search"
}

安装logstash

?
1
2
3
4
5
6
7
8
9
10
11
12
13
http://logstash.net/
#wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
#tar zxvf logstash-1.4.2.tar.gz
#mv logstash-1.4.2 /usr/local
#cd /usr/local
#ln -s logstash-1.4.2 logstash
#mkdir logstash/conf
#chown -R root:root logstash
#因为java的默认heap size,回收机制等原因,logstash从1.4.0开始不再使用jar运行方式.
#以前方式:java -jar logstash-1.3.3-flatjar.jar agent -f logstash.conf
#现在方式:bin/logstash agent -f logstash.conf
#logstash下载即可使用,命令行参数可以参考logstash flags,主要有http://logstash.net/docs/1.2.1/flags

安装kibana

?
1
2
3
4
5
6
logstash的最新版已经内置kibana,你也可以单独部署kibana。kibana3是纯粹JavaScript+html的客户端,所以可以部署到任意http服务器上。
http://www.elasticsearch.org/overview/elkdownloads/
#wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
#tar zxvf kibana-3.1.0.tar.gz
#mv kibana-3.1.0 /opt/htdocs/www/kibana
#vim /opt/htdocs/www/kibana/config.js

配置elasticsearch源

?
1
elasticsearch: “http://”+window.location.hostname+”:9200″,

加入iptables

?
1
2
6379为redis端口,9200为elasticsearch端口,118.x.x.x/16为当前测试时的客户端ip
iptables -A INPUT -p tcp -m tcp -s 118.x.x.x/16 --dport 9200 --j ACCEPT

测试运行前端输出

?
1
bin/logstash -e ‘input { stdin { } } output { stdout {} }’

输入hello测试

?
1
2014-08-20T05:17:02.876+0000 Impala hello

测试运行输出到后端

?
1
bin/logstash -e ‘input { stdin { } } output { elasticsearch { host => localhost } }’

访问kibana

?
1
2
3
4
http://adminimpala.campusapply.com/kibana/index.html#/dashboard/file/default.json
Yes- Great! We have a prebuilt dashboard: (Logstash Dashboard). 
See the note to the right about making it your global default
No results There were no results because no indices were found that match your selected time span

设置kibana读取源

?
1
2
3
在kibana的右上角有个 configure dashboard,再进入Index Settings
[logstash-]YYYY.MM.DD
这个需和logstash的输出保持一致

elasticsearch 跟 MySQL 中定义资料格式的角色关系对照表如下

?
1
2
MySQL elasticsearchdatabase indextable type
table schema mappingrow documentfield field

ELK整合

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
syslog-ng.conf
#省略其它内容
# Remote logging syslog
source s_remote {
        udp(ip(192.168.0.39) port(514));
};
#nginx log
source s_remotetcp {
        tcp(ip(192.168.0.39) port(514) log_fetch_limit(100) log_iw_size(50000) max-connections(50) );
};
filter f_filter12     { program('c1gstudio\.com'); };
#logstash syslog
destination d_logstash_syslog { udp("localhost" port(10999) localport(10998)  ); };
#logstash web
destination d_logstash_web { tcp("localhost" port(10997) localport(10996) ); };
  
log { source(s_remote); destination(d_logstash_syslog); }; 
log { source(s_remotetcp); filter(f_filter12); destination(d_logstash_web); };
logstash_syslog.conf
input {
  udp {
    port => 10999
    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 {
  elasticsearch {
  host => localhost   
  index => "syslog-%{+YYYY}"
}
}
logstash_redis.conf
input {
  tcp {
    port => 10997
    type => web
  }
}
filter {
  grok {
    match => [ "message""%{SYSLOGTIMESTAMP:syslog_timestamp} (?:%{SYSLOGFACILITY:syslog_facility} )?%{SYSLOGHOST:syslog_source} %{PROG:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{IPORHOST:clientip} - (?:%{USER:remote_user}|-) \[%{HTTPDATE:timestamp}\] \"%{WORD:method} %{URIPATHPARAM:request} HTTP/%{NUMBER:httpversion}\" %{NUMBER:status} (?:%{NUMBER:body_bytes_sent}|-) \"(?:%{URI:http_referer}|-)\" %{QS:agent} (?:%{IPV4:http_x_forwarded_for}|-)"]
    remove_field => [ '@version ','host','syslog_timestamp','syslog_facility','syslog_pid']
  }
  date {
    match => [ "timestamp" "dd/MMM/yyyy:HH:mm:ss Z" ]
  }
   useragent {
        source => "agent"
        prefix => "useragent_"
        remove_field => [ "useragent_device""useragent_major""useragent_minor" ,"useragent_patch","useragent_os","useragent_os_major","useragent_os_minor"]
    }
   geoip {
        source => "clientip"
        fields => ["country_name""region_name""city_name""real_region_name""latitude""longitude"]
        remove_field => [ "[geoip][longitude]""[geoip][latitude]","location","region_name" ]
    }
}
  
output {
  #stdout { codec => rubydebug }
 redis {
 batch => true
 batch_events => 500
 batch_timeout => 5
 host => "127.0.0.1"
 data_type => "list"
 key => "logstash:web"
 workers => 2
 }
}
logstash_web.conf
input {
  redis {
    host => "127.0.0.1"
    port => "6379"
    key => "logstash:web"
    data_type => "list"
    codec  => "json"
    type => "web"
  }
}
output {
  elasticsearch {
  flush_size => 5000
  host => localhost
  idle_flush_time => 10
  index => "web-%{+YYYY.MM.dd}"
  }
  #stdout { codec => rubydebug }
}

启动elasticsearch和logstash

?
1
2
3
4
/usr/local/elasticsearch/bin/elasticsearch -d
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_syslog.conf &
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_redis.conf &
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_web.conf &

关闭

?
1
2
ps aux|egrep ‘search|logstash’
kill pid

安装控制器elasticsearch-servicewrapper

?
1
2
3
4
5
6
如果是在服务器上就可以使用elasticsearch-servicewrapper这个es插件,它支持通过参数,指定是在后台或前台运行es,并且支持启动,停止,重启es服务(默认es脚本只能通过ctrl+c关闭es)。
使用方法是到https://github.com/elasticsearch/elasticsearch-servicewrapper下载service文件夹,放到es的bin目录下。下面是命令集合:
bin/service/elasticsearch +console 
在前台运行esstart 在后台运行esstop 停止esinstall 使es作为服务在服务器启动时自动启动remove 取消启动时自动启动
vim /usr/local/elasticsearch/service/elasticsearch.conf
set.default.ES_HOME=/usr/local/elasticsearch

命令示例

查看状态

?
1
http://61.x.x.x:9200/_status?pretty=true

集群健康查看

?
1
2
http://61.x.x.x:9200/_cat/health?v
epoch timestamp cluster status node.total node.data shards pri relo init unassign1409021531 10:52:11 elasticsearch yellow 2 1 20 20 0 0 20

列出集群索引

?
1
2
http://61.x.x.x:9200/_cat/indices?v
health index pri rep docs.count docs.deleted store.size pri.store.sizeyellow web-2014.08.25 5 1 5990946 0 3.6gb 3.6gbyellow kibana-int 5 1 2 0 20.7kb 20.7kbyellow syslog-2014 5 1 709 0 585.6kb 585.6kbyellow web-2014.08.26 5 1 1060326 0 712mb 712mb

删除索引

?
1
2
curl -XDELETE ‘http://localhost:9200/kibana-int/
curl -XDELETE ‘http://localhost:9200/logstash-2014.08.*’

优化索引

?
1
$ curl -XPOST ‘http://localhost:9200/old-index-name/_optimize

查看日志

?
1
2
3
4
5
6
tail /usr/local/elasticsearch/logs/elasticsearch.log
2.4mb]->[2.4mb]/[273mb]}{[survivor] [3.6mb]->[34.1mb]/[34.1mb]}{[old] [79.7mb]->[80mb]/[682.6mb]}
[2014-08-26 10:37:14,953][WARN ][monitor.jvm              ] [Red Shift] [gc][young][71044][54078] duration [43s], collections [1]/[46.1s], total [43s]/[26.5m], memory [384.7mb]->[123mb]/[989.8mb], all_pools {[young] [270.5mb]->[1.3mb]/[273mb]}{[survivor] [34.1mb]->[22.3mb]/[34.1mb]}{[old] [80mb]->[99.4mb]/[682.6mb]}
[2014-08-26 10:38:03,619][WARN ][monitor.jvm              ] [Red Shift] [gc][young][71082][54080] duration [6.6s], collections [1]/[9.1s], total [6.6s]/[26.6m], memory [345.4mb]->[142.1mb]/[989.8mb], all_pools {[young] [224.2mb]->[2.8mb]/[273mb]}{[survivor] [21.8mb]->[34.1mb]/[34.1mb]}{[old] [99.4mb]->[105.1mb]/[682.6mb]}
[2014-08-26 10:38:10,109][INFO ][cluster.service          ] [Red Shift] removed {[logstash-Impala-26670-2010][av8JOuEoR_iK7ZO0UaltqQ][Impala][inet[/61.x.x.x:9302]]{client=true, data=false},}, reason: zen-disco-node_failed([logstash-Impala-26670-2010][av8JOuEoR_iK7ZO0UaltqQ][Impala][inet[/61.x.x.x:9302]]{client=true, data=false}), reason transport disconnected (with verified connect)
[2014-08-26 10:39:37,899][WARN ][monitor.jvm              ] [Red Shift] [gc][young][71171][54081] duration [3.4s], collections [1]/[4s], total [3.4s]/[26.6m], memory [411.7mb]->[139.5mb]/[989.8mb], all_pools {[young] [272.4mb]->[1.5mb]/[273mb]}{[survivor] [34.1mb]->[29.1mb]/[34.1mb]}{[old] [105.1mb]->[109mb]/[682.6mb]}

安装bigdesk

?
1
2
3
4
5
6
7
要想知道整个插件的列表,请访问http://www.elasticsearch.org/guide/reference/modules/plugins/ 插件还是很多的,个人认为比较值得关注的有以下几个,其他的看你需求,比如你要导入数据当然就得关注river了。
该插件可以查看集群的jvm信息,磁盘IO,索引创建删除信息等,适合查找系统瓶颈,监控集群状态等,可以执行如下命令进行安装,或者访问项目地址:https://github.com/lukas-vlcek/bigdesk
bin/plugin -install lukas-vlcek/bigdesk
Downloading .........................................................................................................................................................................................................................................................DONE
Installed lukas-vlcek/bigdesk into /usr/local/elasticsearch/plugins/bigdesk
Identified as a _site plugin, moving to _site structure ...
cp -ar plugins/bigdesk/_site/ /opt/htdocs/www/bigdesk

访问

?
1
http://localhost/bigdesk

安全优化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1.安全漏洞,影响ElasticSearch 1.2及以下版本 http://bouk.co/blog/elasticsearch-rce//usr/local/elasticsearch/config/elasticsearch.ymlscript.disable_dynamic: true
2.如果有多台机器,可以以每台设置n个shards的方式,根据业务情况,可以考虑取消replias这里设置默认的5个shards, 复制为0,shards定义后不能修改,replicas可以动态修改/usr/local/elasticsearch/config/elasticsearch.ymlindex.number_of_shards: 5index.number_of_replicas: 0
#定义数据目录(可选)path.data: /opt/elasticsearch
3.内存适当调大,初始是-Xms256M, 最大-Xmx1G,-Xss256k,调大后,最小和最大一样,避免GC, 并根据机器情况,设置内存大小,vi /usr/local/elasticsearch/bin/elasticsearch.in.shif [ “x$ES_MIN_MEM” = “x” ]; then#ES_MIN_MEM=256mES_MIN_MEM=2gfiif [ “x$ES_MAX_MEM” = “x” ]; then#ES_MAX_MEM=1gES_MAX_MEM=2gfi
4.减少shard刷新间隔curl -XPUT ‘http://61.x.x.x:9200/dw-search/_settings’ -d ‘{“index” : {“refresh_interval” : “-1″}}’
完成bulk插入后再修改为初始值curl -XPUT ‘http://61.x.x.x:9200/dw-search/_settings’ -d ‘{“index” : {“refresh_interval” : “1s”}}’
/etc/elasticsearch/elasticsearch.ymltranlog数据达到多少条进行平衡,默认为5000,刷新频率,默认为120sindex.translog.flush_threshold_ops: “100000”index.refresh_interval: 60s
5.关闭文件的更新时间
/etc/fstab
在文件中添加 noatime,nodiratime/dev/sdc1 /data1 ext4 noatime,nodiratime 0 0
自启动chkconfig add redis_6379
vim /etc/rc.local
/usr/local/elasticsearch/bin/elasticsearch -d
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_syslog.conf &
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_redis.conf &
/usr/local/logstash/bin/logstash agent -f /usr/local/logstash/conf/logstash_web.conf &
/opt/lemp start nginx

安装问题

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
==========================================
LoadError: Could not load FFI Provider: (NotImplementedError) FFI not available: nullSee http://jira.codehaus.org/browse/JRUBY-4583
一开始我以为是没有FFI,把jruby,ruby gem都装了一遍.实际是由于我的/tmp没有运行权限造成的,建个tmp目录就可以了,附上ruby安装步骤.
mkdir /usr/local/jdk/tmp
vim /usr/local/logstash/bin/logstash.lib.sh
JAVA_OPTS=”$JAVA_OPTS -Djava.io.tmpdir=/usr/local/jdk/tmp
===============================
jruby 安装
wget http://jruby.org.s3.amazonaws.com/downloads/1.7.13/jruby-bin-1.7.13.tar.gz
mv jruby-1.7.13 /usr/local/
cd /usr/local/
ln -s jruby-1.7.13 jruby
Ruby Gem 安装Ruby 1.9.2版本默认已安装Ruby Gem安装gem 需要ruby的版本在 1.8.7 以上,默认的centos5 上都是1.8.5 版本,所以首先你的升级你的ruby ,
ruby -vruby 1.8.5 (2006-08-25) [x86_64-linux]
wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p547.tar.gz
tar zxvf ruby-1.9.3-p547.tar.gz
cd ruby-1.9.3-p547
./configure --prefix=/usr/local/ruby-1.9.3-p547
make && make install
cd /usr/local
ln -s ruby-1.9.3-p547 ruby
vim /etc/profile
export PATH=$JAVA_HOME/bin:/usr/local/ruby/bin:$PATH
source /etc/profile
gem install bundler
gem install i18n
gem install ffi
=======================
elasticsearch 端口安全
绑定内网ip
iptables 只开放内网
前端机反向代理
server
{
listen 9201;
server_name big.c1gstudio.com;
index index.html index.htm index.php;
root /opt/htdocs/www;
include manageip.conf;
deny all;
location / {
proxy_passhttp://192.168.0.39:9200;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
#proxy_set_headerX-Forwarded-For$remote_addr;
add_headerX-Cache Cache-156;
proxy_redirect off;
}
access_log /opt/nginx/logs/access.log access;
}
kibana的config.js
elasticsearch: “http://”+window.location.hostname+”:9201″,

原文来自:

http://www.blogjava.NET/paulwong/archive/2015/02/17/422972.html

http://my.oschina.net/HeAlvin/blog/378257?p={{page}}

来源:http://blog.csdn.net/wang_zhenwei/article/details/49246415

ELK学习1_开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索相关推荐

  1. FlyAI资讯:Uber正式开源分布式机器学习平台:Fiber

    摘要:在过去的几年中,计算机不断增强的处理能力推动了机器学习的进步.算法越来越多地利用并行性,并依赖分布式训练来处理大量数据.然而,随之而来的是增加数据和训练的需求,这对管理和利用大规模计算资源的软件 ...

  2. 开源分布式搜索平台ELK+Redis+Syslog-ng实现日志实时搜索

    转载:http://my.oschina.net/HeAlvin/blog/378257 目录[-] 安装JDK 安装redis 安装Elasticsearch 安装logstash 安装kibana ...

  3. ELK学习总结——我们为什么要用ELK

    一. ELK是什么? ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch.Logstash 和 Kibana. Elast ...

  4. 唯品会开源分布式作业调度平台Saturn

    目录 前言 背景 一.简介 二.特性 三.快速开始 一键启动 Docker启动 前言 Saturn英文意思是:土星,太阳系中的第二大行星.比地球高一个层级,地球是八大行星之一.而今天我们介绍的Satu ...

  5. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

  6. ELK学习5_ELK文档资料:《ELK stack 权威指南/饶琛琳》推荐

    <ELK stack 权威指南/饶琛琳>的内容在网上共享有电子版,网站地址是: http://kibana.logstash.es/ . 作者也提供了电子版的下载,下载描述如下: You ...

  7. ELK学习7_ELK文档资料:《ELK stack 权威指南/饶琛琳》勘误

    新作<ELK stack权威指南>已经上架销售,考虑到个人精力有限,笔误.差错肯定在所难免.特开这个页面作为勘误清 单,也包括一些书中技术经过重大更新不在适用或推荐的简略说明. 如果大家有 ...

  8. 利用SOLR搭建企业搜索平台 之八(solr 实现去掉重复的搜索结果,打SOLR-236_collapsing.patch补丁)...

    引用Bory.Chan http://blog.chenlb.com/2009/04/apply-solr-collapsing-patch-remove-duplicate-result.html ...

  9. BATT集体发力搜索,争夺下一代搜索平台的“引路人”

    文|曾响铃 来源|科技向令说(xiangling0815) 在2013年出版的<硅谷之光>一书中有这么一段描写"互联网上很快一片混乱,网民们呼求帮助,如果没有交通警察,那至少也提 ...

最新文章

  1. N 年沉淀,机器学习终于开源!
  2. nuxt 过滤 query 参数
  3. Android 程序 正确修改包名的方式(源代码)
  4. 洗被套的时候洗衣机里面不要再放其他东西
  5. webqq2协议分析和qq聊天机器人简单实现(转)
  6. GitHub Research:超过50%的Java记录语句写错了
  7. OpenCV的resize方法与双线性插值
  8. 自适应学习率的优化算法(from goodfellow deep learning)
  9. 安装MyBatis教程
  10. SpringBoot---Tomcat日志配置
  11. Python转exe神器pyinstaller
  12. mindoc mysql_MinDoc 配置文件详解
  13. CNN(卷积神经网络)的深度
  14. 工具优化篇之IDEA新UI+日常插件
  15. 报错提示:应用程序无法启动,因为应用程序的并行配置不正确,有关详细信息,请参阅应用程序时间日志,或使用命令行sxstrace.exe工具。有效解决方法
  16. 在网站中添加QQ、旺旺的方法
  17. 高仿京东商城app、集成react-native热更新功能
  18. 求两个数的最大公约数(辗转相减法)
  19. JAVA编写Word
  20. SSL证书概述与配置

热门文章

  1. 12.JDK1.8 JVM运行时数据区域概览、各区域介绍、程序计数器、Java虚拟机栈、本地方法栈、堆、堆空间内存分配(默认情况下)、字符串常量池、元数据区、jvm参数配置
  2. Linux驱动编程 step-by-step (十一)
  3. Anaconda 中no module named cv2的解决办法
  4. SQL-2 查找入职员工时间排名倒数第三的员工所有信息
  5. 简单的写一个发布订阅器
  6. loadrunner通过使用libmysql.dll完成mysql的测试
  7. Chromium 操作系统即将支持所有 SBC 单板电脑
  8. Linux中网络通信中 使用的结构体
  9. Bash+R: howto pass parameters from bash script to R(转)
  10. php 去除二维数组中的包含某一个值的数组