您的位置:首页 > 其它

一、ELK安装配置

2017-03-24 11:19 106 查看
**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[/code] 
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_45

export PATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$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[/code] 
解压:
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 data
mkdir logs


配置elasticsearch的配置文件

cd config/


备份一下源文件:

cp elasticsearch.yml  elasticsearch.yml_back


编辑配置文件:

vim elasticsearch.yml


配置内容如下:

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


启动elasticsearch:

./bin/elasticsearch


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

[root@dst98 elasticsearch-2.2.0]# ./bin/elasticsearch
Exception 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[/code] 
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[/code] 
解压:

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/config
cp 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: 300000
elasticsearch.shardTimeout: 0


启动程序:

nohup ./bin/kibana &


三、配置Logstash

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

wget https://download.elastic.co/logstash/logstash/logstash-2.2.0.tar.gz[/code] 
解压:

tar -zxf logstash-2.2.0.tar.gz  -C ./


运行如下命令进行测试:

./bin/logstash -e 'input { stdin{} } output { stdout {} }'
Logstash startup completed
Hello 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 {

adef
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秒记录一下文件读取位置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息