elasticsearch5.5+kibana5.5+logstash5.5+redis+xpack组件 搭建日志平台

记录一下本身的搭建经历,先看一下图片记录下整理结构node

这里主要讲述elk套件的配置,其它前置环境的安装请自行百度或者脑补,linux

前置条件:JKD1.8(注意必须1.8或者以上),Redis(单点或者Cluster)nginx

1.下载安装elasticsearchredis

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.0.zip
unzip elasticsearch-5.5.0.zip
cd elasticsearch-5.5.0/ 
./bin/elasticsearch  #测试使用
正式由于须要后台运行 
./bin/elasticsearch -d  或者 nohup ./elasticsearch&

配置 elasticsearch.ymlbootstrap

#这里指定的是集群名称,须要修改成对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: my-application
node.name: node-1

#目录须要手动建立
path.data: /data/elk/data
path.logs: /data/elk/logs

#ES监听地址任意IP均可访问
network.host: 0.0.0.0
http.port: 9200

#如果集群,可在里面引号中添加,逗号隔开
discovery.zen.ping.unicast.hosts: [“192.168.1.101”]

# enable cors,保证_site类的插件能够访问es    
http.cors.enabled: true             #手动添加
http.cors.allow-origin: “*”         #手动添加

# Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,因此致使检测失败,失败后直接致使ES不能启动
bootstrap.memory_lock: false        #手动添加
bootstrap.system_call_filter: false     #手动添加

配置jvm参数  conf/jvm.options  默认占用2g内存,由于测试缘由我改成了256mvim

注:ES启动的时候回占用特别大的资源因此须要修改下系统参数,若不修改资源启动会异常退出tomcat

sysctl -w vm.max_map_count=262144

若是报错:安全

ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

修改资源参数app

vim /etc/security/limits.conf
*   soft    nofile  65536
*   hard        nofile  131072  
*   soft        nproc   65536
*   hard        nproc   131072 
//修改后须要注销从新登陆或者重启才生效

若是报错:cors

max number of threads [1024] for user [es] likely too low, increase to at least [2048]
vi /etc/security/limits.d/90-nproc.conf
找到以下内容:
* soft nproc 1024
#修改成
* soft nproc 2048

测试启动成功后,能够先停掉了,直接ctrl+c

注意:不建议使用root用户安装运行,若是须要的话

vi  bin/elasticsearch
#容许root用户启动,修改启动文件,添加下面一行
ES_JAVA_OPTS="-Des.insecure.allow.root=true"

2.安装Logtash (注意:这里要用Redis了,若是和Elastic 不在一块儿JDK1.8也须要安装)

首先安装Server端,主要任务:从redis读取数据,而后存入Elastic

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.5.1.tar.gz
tar -zxvf logstash-5.5.1.tar.gz
vi 安装目录/etc/logstash.conf  #文件目录和文件本身新建

//logtash 的日志必定要处理 很大...
input {
  redis {
    host => "127.0.0.1"
    port => "6379"
    password => "test123!"
    key => "logstash-ucenter"
    data_type => "list"
    type=> "ucenter_warn"
  }
}


output {
  elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "logstash-%{type}-%{+YYYY.MM.dd}"
        document_type => "%{type}"
  }
}

上面redis地址密码须要根据实际状况修改,elastic密码我修改了,若是没修改能够使用 changeme(默认密码)

而后安装客户端,主要任务:收集应用日志并写入redis

input {
  file {
    path=>"/data/log/tomcat/ucenter_warn.log"
    codec => multiline {
            pattern => "^.*\["
            negate => true
            what => "previous"
    }
  }
}

output {
  redis{
    data_type =>"list"
    key=>"logstash-ucenter"
    host=>"redisIp"
    port=>6379
    password => "test123!"
  }
}

3.安装Kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.5.0-linux-x86_64.tar.gz
tar -zxvf kibana-5.5.0-linux-x86_64.tar.gz 
cd kibana-5.5.0-linux-x86_64/
vim config/kibana.yml

# 将默认配置改为以下:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.2.41:9200"
kibana.index: ".kibana"

4.上面的都安装完成后,剩下的是依次启动(注意:防火墙各个接口请自行打开,redis默认是启动状态)

# 启动 elastic
bin/elasticsearch -d
# 启动logstash server端
nohup bin/logstash -f etc/ >/dev/null&
# 启动logstash client 端
nohup bin/logstash -f etc/ >/dev/null&
#启动 Kibana
nohup bin/kibana >/dev/null&

这个是本身回忆写的,可能有漏掉的细节欢迎指出。这个是入门版,接下来有时间的话,会写一篇高可用版本的。

补充:x-pack安装(前提 elasticsearch和kibana安装完成)

x-pack是elasticsearch的一个扩展包,将安全,警告,监视,图形和报告功能捆绑在一个易于安装的软件包中,虽然x-pack被设计为一个无缝的工做,可是你能够轻松的启用或者关闭一些功能

bin/elasticsearch-plugin install x-pack

bin/kibana-plugin install x-pack

装了 x-pack 以后访问受到限制,这里默认的用户名:elastic,密码:changeme。能够经过 curl 修改默认密码

curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -d '{
  "password" : "123456"
}

这时候有两个地方须要修改:

logstash server端的配置文件

input {
  redis {
    host => "127.0.0.1"
    port => "6379"
    password => "test123!"
    key => "logstash-ucenter"
    data_type => "list"
    type=> "ucenter_warn"
  }
}


output {
  elasticsearch {
        hosts => ["127.0.0.1:9200"]
        index => "logstash-%{type}-%{+YYYY.MM.dd}"
        document_type => "%{type}"
        user => "elastic" //这里须要帐号和密码了
        password => "test123!"
  }
}

kibana的配置文件

vim config/kibana.yml

# 将默认配置改为以下:

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.2.41:9200"
kibana.index: ".kibana"
elasticsearch.username: "elastic" //这里的帐户密码
elasticsearch.password: "test123!"
# 这里帐户密码要和 elastic一致

补充kibana关闭小技巧:

fuser -n tcp 5601
kill -9  端口

定时删除指定索引(由于资源占用较多,本身选择)

经过crontab  -e定时执行脚本实现,固然也能够本身安装 curator

#!/bin/sh
# delete old index by date s删除两天前的一天
today=`date -d -2days '+%Y.%m.%d'`
echo $today
curl  -u elastic:qq2017!  -XDELETE "http://127.0.0.1:9200/logstash-nginx-"${today} > /tmp/elk_clean.txt

echo "ok"

qq技术交流群:208779755

相关文章
相关标签/搜索