ELK安装部署

Elasticsearch安装

版本:elasticsearch-7.8.0-linux-x86_64.tar.gz

官方下载:https://www.elastic.co/cn/products

国内加速:https://www.newbe.pro/Mirrors/Mirrors-Elasticsearch/

使用命令tar -zxvf解压

 

找到config目录下elasticsearch.yml文件,修改配置:

cluster.name: test-es-app
node.name: node-1
#对所有IP开放
network.host: 0.0.0.0
#HTTP端口号
http.port: 9200
#elasticsearch数据文件存放目录
path.data: /home/elk/elasticsearch-7.8.0/data
#elasticsearch日志文件存放目录
path.logs: /home/elk/elasticsearch-7.8.0/logs
#指定hosts
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
#初始化主节点
cluster.initial_master_nodes: ["node-1"]

有些版本data和logs目录不存在,需要自己创建

配置完之后,因为ElasticSearch使用非root用户启动,所以创建一个用户

# 创建用户
useradd huhui
# 设置密码
passwd huhui
# 赋予用户权限
chown -R huhui:huhui /home/elk/elasticsearch-7.8.0

切换用户,启动(-d后台启动)

su huhui
./bin/elasticsearch -d

访问:http://x.x.x.x:9200/,看到如下信息表示启动成功:

 

在安装过程中大家可能会遇到以下几个问题:

  • max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
    • 解决方法:vi /etc/security/limits.conf

      user hard nofile 65536

      user soft nofile 65536

  • max number of threads [1024] for user [apps] is too low, increase to at least [2048]
    • 解决办法:vi /etc/security/limits.d/90-nproc.conf 

      修改如下内容:

      * soft nproc 1024

      #修改为

      * soft nproc 2048

  • max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
    • 解决办法:vi /etc/sysctl.conf 

      添加下面配置:

      vm.max_map_count=655360

      并执行命令:sysctl -p

 

Logstash安装

版本:logstash-7.8.0.tar.gz

使用命令tar -zxvf解压

找到/config目录下的logstash-sample.conf文件,修改配置

input {
  file {
    type => "log"
    path => ["/home/app/service/logs/*.log"]
    start_position => "beginning"
    ignore_older => 0
    codec=> multiline {
      pattern => "^%{TIMESTAMP_ISO8601}"
      negate => true
      what => "previous"
    }
   }
  beats {
    port => 5044
  }
}

output {
if [type] == "log" {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index => "log-%{+YYYY.MM.dd}"
    #user => "xxx"
    #password => "xxx"
  }
}

stdout{
    codec => rubydebug
}
}

后台启动:

nohup ./bin/logstash -f /home/elk/logstash-7.8.0/config/logstash-sample.conf >info.logstash.log 2>error.logstash.log &

查看日志是否启动成功

 

Kibana安装

版本:kibana-7.8.0-linux-x86_64.tar.gz

使用命令tar -zxvf解压

找到/config目录下的kibana.yml文件,修改配置

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://x.x.x.x:9200"]

不能使用root用户启动,需要创建一个用户

useradd kibana
passwd kibana
chown -R kibana:kibana /home/elk/kibana-7.8.0-linux-x86_64

切换用户,启动

su kibana
nohup ./bin/kibana >info.kibana.log 2>error.kibana.log &

访问http://x.x.x.x:5601

 

根据Logstash输出到Elasticsearch的索引进行创建

 

进入Discover进行日志搜索

 

至此ELK安装部署完毕。注意在部署Elasticsearch和Logstach时,若是测试环境内存不足时,可以修改JVM参数配置(config/jvm.option),因为默认设值比较大,不修改启动可能会报错。

 

优化ELK架构

由于Logstash框架比较重,若需要添加插件,就全部服务的Logstash都要添加插件,扩展性差。所以就有了FileBeat,占用资源少,只负责采集日志,轻量级,然后再用Logstas做一些过滤处理。

 

FileBeat安装

版本:filebeat-7.8.0-linux-x86_64.tar.gz

使用命令tar -zxvf解压

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /home/app/service/logs/*.log

#合并行
multiline.pattern: '^\[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after

#输出,Logstash的服务器地址
output.logstash:
  hosts: ["x.x.x.x:5044"]
#输出,如果直接输出到ElasticSearch则填写这个
#output.elasticsearch:
  #hosts: ["localhost:9200"]
  #protocol: "https"

然后Logstash的配置文件logstash-sample.conf,也要改一下

#删除file输入源,输入源改成beats
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://127.0.0.1:9200"]
    index => "log-%{+YYYY.MM.dd}"
  }
……
}

后台启动(-e启动,-c是指定配置文件启动)

nohup ./filebeat -e -c filebeat.yml >info.filebeat.log 2>&1 &

再启动Logstash

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值