欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ELK 安装部署

程序员文章站 2022-07-13 08:58:40
...

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 界面,可以帮助您汇总、分析和搜索重要数据日志。

ELK 安装部署
            
    
    博客分类: 日志 日志 

 

一、安装JDK

 

 

 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/

 

ELK 安装部署
            
    
    博客分类: 日志 日志 

 

 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/

 

ELK 安装部署
            
    
    博客分类: 日志 日志 

 

 

五、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来访问了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • ELK 安装部署
            
    
    博客分类: 日志 日志 
  • 大小: 55.4 KB
  • ELK 安装部署
            
    
    博客分类: 日志 日志 
  • 大小: 19.7 KB
  • ELK 安装部署
            
    
    博客分类: 日志 日志 
  • 大小: 36.3 KB
相关标签: 日志