一、ELK安装配置

来源:互联网 发布:3d签到墙源码 编辑:程序博客网 时间:2024/05/16 11:43
                 **elk安装配置**

ELK 由 ElasticSearch 、 Logstash 和 Kibana 三个开源工具组成。
ElasticSearch:负责数据的索引和查询。
Logstash:负责数据的收集和过滤以及存储。
Kiabana:负责界面展示,利于查询和查看。

一、安装ElasticSearch

1.1、安装jdk,官网下载jdk安装并且配置环境变量。

这边只是列出java环境变量配置方法。由于工作环境都是java1.7,所以安装ElasticSearch不能高于5.0。

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/export JAVA_HOME=/usr/local/java/jdk1.8.0_45export PATH=$PATH:$JAVA_HOME/binexportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$CLASSPATH

1.2、安装ElasticSearch

下载ElasticSearch:
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.2.0/elasticsearch-2.2.0.tar.gz

解压:tar -zxf elasticsearch-2.2.0.tar.gz -C ./

安装elasticsearch的head插件:
cd /data/program/software/elasticsearch-2.2.0
./bin/plugin install mobz/elasticsearch-head
执行结果:
这里写图片描述

安装elasticsearch的kopf插件
注:Elasticsearch-kopf插件可以查询Elasticsearch中的数据
./bin/plugin install lmenezes/elasticsearch-kopf
执行结果:
这里写图片描述

创建elasticsearch的data和logs目录

mkdir datamkdir logs

配置elasticsearch的配置文件

cd config/

备份一下源文件:
cp elasticsearch.yml elasticsearch.yml_back

编辑配置文件:

vim elasticsearch.yml   

配置内容如下:

cluster.name: dst98  主机名称node.name: node-1path.data: /data/program/software/elasticsearch-2.2.0/datapath.logs: /data/program/software/elasticsearch-2.2.0/logsnetwork.host: 10.15.0.98   主机IP地址network.port: 9200    主机端口

启动elasticsearch:

./bin/elasticsearch

报如下错误:说明不能以root账户启动,需要创建一个普通用户,用普通用户启动才可以。

[root@dst98 elasticsearch-2.2.0]# ./bin/elasticsearchException in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93)        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144)        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285)        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)Refer to the log for complete error details.

添加用户及用户组

#groupadd search#useradd -g search  search

将data和logs目录的属主和属组改为search

#chown search.search /elasticsearch/ -R

然后切换用户并且启动程序:

su search./bin/elasticsearch

后台启动:nohup ./bin/elasticsearch &

启动成功后浏览器访问如下:
这里写图片描述

通过安装head插件可以查看集群的一些信息,访问地址及结果如下:
这里写图片描述

为ElasticSearch添加HTTP基本认证:(由于版本不统一,暂时放弃)
elasticsearch-http-basic就提供了针对ES HTTP连接的IP白名单、密码权限和信任代理功能。
elasticsearch-http-basic还不支持ES标准的bin/plugin install [github-name]/[repo-name]的安装方式
所以,我们需要从github上自己拉取源代码,编译成jar文件。

从github上拉取源代码:
git clone https://github.com/Asquera/elasticsearch-http-basic.git
cd elasticsearch-http-basic
mvn -Delasticsearch.version=1.5.2 -Dtests.security.manager=false package
cd target
获取编译后的jar包:elasticsearch-http-basic-1.5.1.jar
进入elasticsearch目录:
mkdir -p plugins/http-basic
mv /data/program/software/elasticsearch-http-basic/target/elasticsearch-http-basic-1.5.1.jar plugins/http-basic
重启elasticsearch

二、安装kibana

下载kibana:

wget https://download.elastic.co/kibana/kibana/kibana-4.4.0-linux-x64.tar.gz

解压:

tar -zxf kibana-4.4.0-linux-x64.tar.gz -C ./

重命名:

mv kibana-4.4.0-linux-x64 kibana-4.4.0

先备份配置文件:

/data/program/software/kibana-4.4.0/configcp kibana.yml  kibana.yml_back

修改配置文件:

server.port: 5601           server.host: "10.15.0.98"elasticsearch.url: "http://10.15.0.98:9200"    --ip为server的ip地址kibana.defaultAppId: "discover"elasticsearch.requestTimeout: 300000elasticsearch.shardTimeout: 0

启动程序:

 nohup ./bin/kibana &

三、配置Logstash

下载logstash到要采集日志的服务器上和安装E和K的机器上。

wget https://download.elastic.co/logstash/logstash/logstash-2.2.0.tar.gz

解压:
tar -zxf logstash-2.2.0.tar.gz -C ./

运行如下命令进行测试:

./bin/logstash -e 'input { stdin{} } output { stdout {} }' Logstash startup completedHello World!     #输入字符2015-07-15T03:28:56.938Z noc.vfast.com Hello World!  #输出字符格式

注:其中-e参数允许Logstash直接通过命令行接受设置。使用CTRL-C命令可以退出之前运行的Logstash。

3.1、配置ElasticSearch上的LogStash读取redis里的日志写到ElasticSearch

进入logstash目录新建一个配置文件:
cd logstash-2.2.0
touch logstash-indexer.conf #文件名随便起
写如下配置到新建立的配置文件:
input和output根据日志服务器数量,可以增加多个。

input {    redis {        data_type => "list"        key => "mid-dst-oms-155"        host => "10.15.0.96"        port => 6379        db => 0        threads => 10        }}output {        if [type] == "mid-dst-oms-155"{        elasticsearch {        hosts => "10.15.0.98"        index => "mid-dst-oms-155"        codec => "json"        }       }}

启动logstash:

nohup ./bin/logstash -f logstash-indexer.conf  -l logs/logstash.log &

3.2、配置客户端的LogStash读取日志写入到redis

进入logstash目录新建一个配置文件:
cd logstash-2.2.0
touch logstash_agent.conf #文件名随便起
写如下配置到新建立的配置文件:
input和output根据日志服务器数量,可以增加多个。

input {
file {
path => [“/data/program/logs/MID-DST-OMS/mid-dst-oms.txt”]
type => “mid-dst-oms-155”
}
}
output{
redis {
host => “125.35.5.98”
port => 6379
data_type => “list”
key => “mid-dst-oms-155”
}
}

启动logstash:

nohup ./bin/logstash -f logstash_agent.conf -l logs/logstash.log &

备注:
logstash中input参数设置:
1. start_position:设置beginning保证从文件开头读取数据。
2. path:填入文件路径。
3. type:自定义类型为tradelog,由用户任意填写。
4. codec:设置读取文件的编码为GB2312,用户也可以设置为UTF-8等等
5. discover_interval:每隔多久去检查一次被监听的 path 下是否有新文件,默认值是15秒
6. sincedb_path:设置记录源文件读取位置的文件,默认为文件所在位置的隐藏文件。
7. sincedb_write_interval:每隔15秒记录一下文件读取位置

0 0
原创粉丝点击