centos 7 安装配置ELK

来源:互联网 发布:淘宝为啥不能买彩票了 编辑:程序博客网 时间:2024/05/04 01:55

经历了无数次的失败之后,终于把ELK安装到centos上了。首先呢,ELK的版本配套问题是个坑。。。。这个必须注意,因为不同版本的ELK及时安装配置对了也不一定能好使。

1  概述

ELK套件(ELK stack)是指ElasticSearch、Logstash和Kibana三件套。这三个软件可以组成一套日志分析和监控工具。

由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/

下载地址:sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.tar.gz  

sudo wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz

 sudo wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.2.tar.gz  

2 环境准备

2.1软件要求

本文把ELK套件部署在一台CentOS单机上。

具体的版本要求如下:

操作系统版本:CentOS 6.4及以上;

JDK版本:1.7.0及以上;

Logstash版本:1.4.2;

ElasticSearch版本:1.4.2;

Kibana版本:3.1.2;


2.2 防火墙配置

1.防火墙如果未开启,则不用执行以下步骤,直接执行第三步安装elasticsearch。

 

2.为了正常使用HTTP服务等,要在iptables中打开相关的端口:# vim /etc/sysconfig/iptables  

在-A INPUT -p tcp -m state--state NEW -m tcp --dport 22 -j ACCEPT下面添加如下三句:-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  

如图所示:


之后重启防火墙:#systemctl restartiptables.service

3安装ElasticSearch

ElasticSearch默认的对外服务的HTTP端口是9200,节点间交互的TCP端口是9300。

3.1安装ElasticSearch

1.创建存放目录并且换到该目录下:

#mkdir -p /opt/software && cd /opt/software  

2.将资源包导入该目录下,资源包为elasticsearch-1.4.2.tar.gz,kibana-3.1.2.tar.gz,logstash-1.4.2.tar.gz,master.tar.gz。

3.解压

#sudo tar -zxvf elasticsearch-1.4.2.tar.gz -C /usr/local/

4.创建连接

# ln -s /usr/local/elasticsearch-1.4.2 /usr/local/elasticsearch  

3.2安装Elasticsearch-servicewrapper

1.解压

#sudo tar -zxvf master.tar.gz

2.将elasticsearch-servicewrapper-master的service拷贝到elasticsearch的bin目录下 

#cp /opt/software/elasticsearch-servicewrapper-master/service /usr/local/elasticsearch/bin/  

3.修改ElasticSearch的配置文件,追加两行内容,并重启ElasticSearch服务:

# vim/usr/local/elasticsearch/config/elasticsearch.yml

 

http.cors.allow-origin:"/.*/"

http.cors.enabled:true

 

4.启动ElasticSearch

#/usr/local/elasticsearch/bin/service/elasticsearch start  如下图:

 

5.测试

#curl -X GET http://localhost:9200       出现下图样式,代表基本成功

 

 

4安装与配置Logstash

Logstash默认的对外服务的端口是9292

4.1安装Logstash

1. 解压

# sudo tar -zxvf logstash-1.4.2.tar.gz -C /usr/local/  

2.创建连接

# ln -s /usr/local/logstash-1.4.2 /usr/local/logstash  

3.简单测试Logstash服务是否正常,预期可以将输入内容以简单的日志形式打印在界面上:# /usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'  

 

示例:

 

4.1配置Logstash(本例的logstash配置只是针对我自己的需求配置的,每个人都应该根据自己的需求进行配置。主要就三项,一个输入文件,一个正则表达式,一个输出地址)

Logstash的配置主要关注三个变量,下面将分别介绍三个变量。

         type:该变量为输入日志的类型。通过type的配置可以方便在界面上通过索引进行查找。如本系统目前有processor,manager,ffmpeg三种类型需要在界面上进行显示。而为了区分是哪个服务器上的日志,可以在type的值后面加上Logstash所在服务器IP。

         path:该变量表示输入日志的路径,为日志的绝对路径。

         host:该变量为存储Logstash收集到的日志的ElasticSearch所在服务器的IP

例:配置文件如下:

input {

 file {

   type => "manager_192.168.32.41"

   path => ["/home/houmr/et/liang/mgr/log/et_manager.log"]

  }

 filter {

  grok {

  pattern =>"(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(?<level>\w*)\s"

  }

}

output {

 elasticsearch {

   host => "192.168.32.41"

   port => 9300

  }

}

 

本例中,输入日志的类型是manager,Logstash所在服务器IP为192.168.32.41。

日志的路径是:/home/houmr/et/liang/mgr/log/et_manager.log。

host配置的192.168.32.41就是ElasticSearch所在服务器的IP。

 

创建Logstash配置文件,这里将processormanager的日志作为输入,输出直接传给ElasticSearch,不再打印在界面上:

# mkdir -p /usr/local/logstash/et&& vim /usr/local/logstash/etc/logstash_agent.conf

 

下面给出几种不同情况下配置文件的例子。

1)  服务器上只部署了processor:

input {

 file {

   type => "processor_192.168.32.41"

   path =>["/home/houmr/et/liang/pro/log/et_taskprocessor.log"]

  }

 file {

   type => "ffmpeg_192.168.32.41"

   path => ["/home/houmr/et/liang/pro/processlog/*.log"]

  }

}

 

 filter {

  grok {

  pattern =>"(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(?<level>\w*)\s"

  }

}

output {

 elasticsearch {

    host=> "192.168.32.41"

   port => 9300

  }

}

 

2)只部署了manager:

input {

 file {

   type => "manager_192.168.32.41"

   path => ["/home/houmr/et/liang/mgr/log/et_manager.log"]

  }

}

 

 filter {

  grok {

  pattern => "(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(?<level>\w*)\s"

  }

}

output {

 elasticsearch {

   host => "192.168.32.41"

   port => 9300

  }

}

 

3)服务器上同时部署了manager和processor

input {

 file {

   type => "manager_192.168.32.41"

   path => ["/home/houmr/et/liang/mgr/log/et_manager.log"]

  }

 

 file {

   type => "processor_192.168.32.41"

   path =>["/home/houmr/et/liang/pro/log/et_taskprocessor.log"]

  }

 file {

   type => "ffmpeg_192.168.32.41"

   path => ["/home/houmr/et/liang/pro/processlog/*.log"]

  }

}

 

 filter {

  grok {

  pattern =>"(?<datetime>\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\s(?<level>\w*)\s"

  }

}

output {

 elasticsearch {

   host => "192.168.32.41"

   port => 9300

  }

}

 

后台启动logstash

#nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash_agent.conf &  

 

5安装Kibana

kibana3是纯粹JavaScript+html的客户端还需装个Nginx去访问,这里我们选择的是Ngixn。

 

1.解压

# sudo tar -zxvf kibana-3.1.2.tar.gz

2.移动到web服务器的发布目录

# cp -r kibana-3.1.2/* /usr/share/nginx/html/

3.修改kibana的配置文件,把elasticsearch所在行的内容替换成如下:

#vim /usr/share/nginx/html/config.js

 

elasticsearch: "http://192.168.32.41:9200",   #注:(IP为elasticsearch服务器对应的IP,自行更改) 

4.重启nginx服务

# systemctl restart nginx.service

 

5.然后就可以通过浏览器访问Kibana了:

在浏览器网址栏中输入kibana服务器的IP192.168.32.41            显示如下所示:

 

选择右下角的Sample Dashboard即可进入页面。




如果有什么不明白的,可以qq82889290联系我。我看到了有时间会解答一下。禁止无聊骚扰。

 


1 0
原创粉丝点击