您的位置:首页 > 运维架构

ElasticSearch+kibana+logstash监控和分析系统

2017-05-17 00:53 417 查看
系统环境
[root@iZ ~]# uname -a
Linux iZ 3.10.0-514.6.2.el7.x86_64 #1 SMP Thu Feb 23 03:04:39 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

java版本事先安装了
[root@i /]# java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
[root@iZ /]# cd /tmp/
[root@iZ tmp]#
下载logstash-5.4.0
wget https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.zip 下载ElasticSearch-5.0.0
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.tar.gz
下载 Kibana-5.0.0
wegthttps://artifacts.elastic.co/downloads/kibana/kibana-5.0.0-linux-x86_64.tar.gz

tar –zxf logstash-1.5.2.tar.gz -C /usr/local/ 解压并复制(-C)到目录/usr/local

我采用的是先解压再复制到work目录的方式

[root@iZ work]# cp /tmp/logstash-5.4.0 /work/

cp: omitting directory ‘/tmp/logstash-5.4.0’

[root@iZ work]# cp -r /tmp/logstash-5.4.0 /work/

[root@iZ work]# ls

conf golang gopath logs logstash-5.4.0 lua_workspace shell_workspace tomcat-7 tomcat-7.0.76

[root@iZ work]#

启用logstash pipeline试试

bin/logstash -e 'input {stdin{}} output {stdout{}}'


Exit Logstash by issuing a CTRL-D command in the shell where Logstash is running.CTRL+D退出Logstash运行界面,Logstash还在后台运行。

使用logstash的-f参数来读取配置文件,执行如下开始进行测试:

1

2

3

4

5

6

7

8

9

10

11
# echo "`date` hello World"

Thu Jul 16 04:06:48 CST 2015 hello World

# /usr/local/logstash-1.5.2/bin/logstash agent -f logstash-simple.conf

Logstash startup completed

Tue Jul 14 18:07:07 EDT 2015 hello World #该行是执行echo “`date`hello World” 后输出的结果,直接粘贴到该位置

{

"message" => "Tue Jul 14 18:07:07 EDT 2015 helloWorld",

"@version" => "1",

"@timestamp" => "2015-07-14T22:07:28.284Z",

"host" => "noc.vfast.com"

}
安装ElasticSearch

ElasticSearch官网安装和使用

https://www.elastic.co/guide/en/elasticsearch/reference/current/_installation.html

tar -zvxf elasticsearch-5.0.0.tar.gz -C /work/

如果使用远程连接的Linux的方式并想后台运行elasticsearch执行如下命令:

nohup /work/elasticsearch-5.0.0/bin/elasticsearch &

(用/work/elasticsearch-5.0.0/bin/elasticsearch -d 也可以 它本身就支持用这个最好)

tail -f nohup.out 查看运行情况

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error='Cannot allocate memory' (errno=12)

错误内存不够用。

ElstaticSearch默认JVM空间大小为2G config/jvm.options文件



x


因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户

建议创建一个单独的用户用来运行ElasticSearch

创建elsearch用户组及elsearch用户
groupadd elsearchuseradd elsearch -g elsearch
passwd

logs/elasticsearch.log (Permission denied) java 该elsearch用户对该没有权限

给用户elsearch赋予elasticsearch目录中文件的权限
[root@i~]# sudo chown -R elsearch /work/elasticsearch-5.0.0
[root@i~]# sudo chgrp -R elsearch /work/elasticsearch-5.0.0
成功

ctrl+C退出,再次启动时出错,删除 目录下的data/nodes/0/node.lock即可
[elsearch@iZ elasticsearch-5.0.0]$ rm -rf data/nodes/0/node.lock

org.elasticsearch.bootstrap.StartupException: java.lang.IllegalStateException: failed to obtain node locks, tried [[/work/elasticsearch-5.0.0/data/elasticsearch]]
with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?

at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:116) ~[elasticsearch-5.0.
tail -100f logs/elasticsearch.log 查看日志

http://www.cnblogs.com/moxiaoan/p/5683743.htmlCentos7开启防火墙

systemctl status firewalld 查看防火墙状态

但是防火墙没有开启

今天在虚拟机上安装了一个ES 5.2.2
结果curl "http://127.0.0.1:9200" 能够正常访问,可是使用外网ip就提示拒绝链接
解决办法:vim config/elasticsearch.yml
增加:network.host: 0.0.0.0
重启问题解决

另外,个别虚拟机无法启动ES,查看日志如果有:
[2017-03-28T15:35:19,948][ERROR][o.e.b.Bootstrap          ] [kSH2rCN] node validation exception bootstrap checks failed
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:切换root账户 vim /etc/sysctl.conf
增加一行  vm.max_map_count=655360
接着执行 sysctl -p
切回ES账户重新启动问题解决
Exception in thread "main" ElasticsearchParseException[malformed, expected settings to start with 'object', instead was [VALUE_STRING]]

ps -ef |grep elastic 找到它 kill -9 pid关闭它

su - elsearch 切换到该用用户启动它

elasticsearch.yml更改才有效。

[2017-05-12T17:12:10,946][ERROR][o.e.b.Bootstrap ] [lT7j70Y] node validation exception

bootstrap checks failed

max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

http://blog.csdn.net/u014535678/article/details/71194548

max file descriptors (linux能够打开的最大文件句柄数)

vi /etc/security/limits.conf



设置vm.max_map_count (限制一个进程可以拥有的VMA(虚拟内存区域)的数量)

vi /etc/sysctl.conf 添加两行

vm.max_map_count=655360

fs.file-max=65536 

sysctl -p 重启

设置 max number of threads (linux允许每个用户的最大线程数)已经可以满足

vi /etc/security/limits.d/20-nproc.conf

上面该设置都设置,但还是不行,sync;sync;sync;reboot重启了系统,可以了



外网访问成功!






但是页面怎么就只是返回JSON,如果要页面管理端,得事先安装安装Head插件(Optional):
./bin/plugin install mobz/elasticsearch-head

https://github.com/mobz/elasticsearch-head#running-with-built-in-server

for Elasticsearch 5.x: site plugins are not supported. Run as a standalone
server
5.x版本 该head插件已经作为独立服务了。
https://github.com/mobz/elasticsearch-head.git
安装NodeJs
wget https://npm.taobao.org/mirrors/node/latest-v6.x/node-v6.10.0-linux-x64.tar.gz tar -zxvf node-v6.10.0-linux-x64.tar.gz -C /work/
export PATH=$PATH:/work/node-v6.10.0-linux-x64/bin#临时改变
永久改变 vi /etc/profile 添加划线部分

[root@iZm work]# netstat -nap |grep 9100
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 509/node_exporter (PID/应用名)
配置文件Gruntfile.js

npm install 初始化安装
nohup npm run start & 后台运行

成功



页面上显示集群健康值:未连接
解决方法:修改elasticsearch.yml文件

vi elasticsearch-5.0.0/config/elasticsearch.yml
#---------------------------CORS--------------------------
http.cors.enabled: true
http.cors.allow.origin: "*"

成功



安装Kibana

tar -zxvf kibana-5.0.0-linux-x86_64.tar.gz -C /work/

cd kibana-5.0.0-linux-x86_64/

vi config/kibana.yml 修改配置文件

添加

server.host: "221.14.73.47" #假设的IP

elasticsearch.url: "http://22.14.73.47:9200"

./bin/kibana 启动

成功

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐