ELK 安装部署

ELK概述

 

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:

1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

在ElasticSearch中,所有节点的数据是均等的。

2)Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤、分析,并将其存储供以后使用(如,搜索),您可以使用它。说到搜索,logstash带有一个web界面,搜索和展示所有日志。

 

3)Kibana 是一个基于浏览器页面的ElasticSearch前端展示工具,也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

 

一、安装JDK

扫描二维码关注公众号,回复: 240087 查看本文章

 

 

 Logstash的运行依赖于Java运行环境, Logstash 1.5以上版本不低于java 7,推荐使用最新版本的Java(已安装的请跳过)。

 

# wget http://download.oracle.com/otn-pub/java/jdk/8u45-b14/jdk-8u45-linux-x64.tar.gz
# mkdir /usr/local/java
# tar -zxf jdk-8u45-linux-x64.tar.gz -C /usr/local/java/

 配置Java环境变量 

# vi /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_45
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

  执行java -version命令,查看JDK是否配置成功。

 

 

 

二、安装Logstash

 

 

 下载Logstash,并解压Logstash到指定目录 

# wget https://download.elastic.co/logstash/logstash/logstash-2.3.4.tar.gz
# tar -zxvf logstash-2.3.4.tar.gz -C /usr/local/
# mv /usr/local/logstash-2.3.4 /usr/local/logstash

 简单测试Logstash服务是否正常,预期可以将输入内容以简单的日志形式打印在界面上 

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

 创建Logstash配置文件 

# mkdir -p /data/elk/logstash_conf/
# vi log_web_error.conf

 

input {
    file {
                codec => multiline {
                         pattern => "^\d{2}:\d{2}:\d{2}\.\d* \d* ERROR"
                         negate => true
                         what => "previous"
                }
                path => "/data/weblogs/tomcat_web/error/*.log"
                start_position => "beginning"
    }
}


output {
    stdout {}
    elasticsearch {
        action => 'index'
        hosts => '172.16.90.33'
        index => 'web_33_error'
    }
}

 测试脚本是否正常(正常启动时,日志信息会打印到控制台) 

# /usr/local/logstash/bin/logstash -f /data/elk/logstash_conf/log_web_error.conf

 当脚本较多时,可以指定logstash –f到指定目录即可

# /usr/local/logstash/bin/logstash -f /data/elk/logstash_conf/

 

 

 

 

三、安装ElasticSearch

 

 

 1、下载ElasticSearch,并解压到指定目录 

# wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.4/elasticsearch-2.3.4.tar.gz
# tar -zxvf elasticsearch-2.3.4.tar.gz -C /usr/local/
# mv /usr/local/elasticsearch-2.3.4 /usr/local/elasticsearch

  

 2、创建ElasticSearch数据存储目录和日志存储目录 

# mkdir -p /data/elk/db/
# mkdir -p /data/weblogs/elk/

  

 3、为ElasticSearch服务创建启动用户 

# useradd es
# chown -R es /usr/local/elasticsearch/
# chown -R es /data/

  

 4、调整ElasticSearch配置文件 

# cd /usr/local/elasticsearch/config/
# vi elasticsearch.yml

 

cluster.name: es-cluster
node.name: node-33
path.data: /data/elk/db
path.logs: /data/weblogs/elk
network.host: 172.16.90.33
http.port: 9200 

  

 5、安装head插件 

# su - es
$ cd /usr/local/elasticsearch/
$ ./bin/plugin install mobz/elasticsearch-head
#查看head插件是否安装
$ ls plugins/

 

 6、启动ElasticSearch 

$ ./bin/elasticsearch &

 

 7、查看ElasticSearch首页 

# curl http://172.16.90.33:9200

 可以通过浏览器查看head插件是否安装成功:http://172.16.90.33:9200/_plugin/head/

 

 

 8、防火墙配置

 

 为了正常使用HTTP服务等,需要关闭防火墙 

 

# service iptables stop

 或者可以不关闭防火墙,但是要在iptables中打开相关的端口 

 

# vi /etc/sysconfig/iptables  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT  
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9292 -j ACCEPT  
# service iptables restart  

 

 

四、安装Kibana

 

 

 

 1、下载Kibana,并安装Kibana到指定目录

 

# wget https://download.elastic.co/kibana/kibana/kibana-4.5.3-linux-x64.tar.gz
# tar -zxvf kibana-4.5.3-linux-x64.tar.gz
# mv /usr/local/kibana-4.5.3-linux-x64 /usr/local/kibana/

 2、修改Kibana配置文件 

 

# cd /usr/local/kibana/config/
# vi kibana.yml
server.host: "172.16.90.33"
elasticsearch.url: http://172.16.90.33:9200

 3、启动Kibana 

 

# cd ../
# ./bin/kibana &

  通过浏览器访问Kibana:  http://172.16.90.33:5601/

 

 

 

五、kibana的登录认证问题

 

kibananodejs开发的,本身并没有任何安全限制,直接浏览url就能访问,如果公网环境非常不安全,可以通过nginx请求转发增加认证,方法如下:

注意:kibana没有重启命令,要重启,只能ps -ef|grep node 查找nodejs进程,干掉重来。 

 

 1、参考一下内容修改nginx配置文件:

 

##如果是大规模集群环境,此处配置多台Kibana服务器即可
    upstream kibana_server {
		server 172.16.90.33:5601;
		#server 192.168.8.203:5601;
    }
    server {
        listen       80;
        server_name  localhost;
		charset utf8;
		location / {
			proxy_pass http://kibana_server$request_uri;
			proxy_set_header Host $http_host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			##方案一、用户认证方式,依赖apache-utils中的生成密码工具
			auth_basic "secret";
			auth_basic_user_file /usr/local/nginx/db/passwd.db;
			##方案二、只有公司的外网IP,局域网IP可以访问
			#allow   10.**.*.**;
			#allow   192.168.8.0/24;
			#deny    all;
		}
	}

  2、配置登录用户名、密码

 

htpasswd -c /usr/local/nginx/db/passwd.db kibana

 注意passwd.db的路径要跟nginx配置中的一致,最后的kibana为用户名,可以随便改,输入完该命令后,系统会提示输入密码,搞定后passwd.db中就有加密后的密码了,有兴趣的可以cat看下。

 

 提示:htpasswdapache自带的小工具,如果找不到该命令,尝试用yum install httpd安装。

 

 3、关闭kibana端口的外网访问

 

 nginx转发后,一定要记得配置iptables之类的防火墙,禁止外部直接访问5601端口,这样就只能通过nginx来访问了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自hbxflihua.iteye.com/blog/2376643