ELK极简安装入门例子

2020-05-14  本文已影响0人  赤色要塞满了

安装Filebeat

官网下载。有多种安装方式,如图:

image.png

因为要配置自动启动等服务,所以选择yum安装方式比较方便些。点击按照提示一步步来:

sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elastic.repo

编辑内容如下:

[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装并设置开机启动:

sudo yum install filebeat
sudo systemctl enable filebeat

注意,yum安装目录会在/usr/share/filebeat,配置文件在/etc/filebeat。编辑查看下配置,主要的是输入输出的设置:

# 输入
  paths:
    - /var/log/*.log
# 增加字段
  fields:
     logtype: serverlog
# 不同目录还可以添加tags,可能是直接加在每个input里

# 定期关闭文件
close_timeout: 5m
# 忽略修改旧文件
    ignore_older: 24h
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["localhost:9200"]

#output.logstash:
  # The Logstash hosts
  #hosts: ["localhost:5044"]

processors:
- drop_fields: 
   fields: ["beat", "input", "source", "offset"] # 删掉一些自带字段

也可以配置输出到Kafka:

#------------------------------ Kafka output --------------------------------
output.kafka:
  enabled: true
  hosts: ["10.1.2.181:9092", "10.1.2.182:9092", "10.1.2.183:9092"] 
  topic: "ctrlserver-log"

Kafka配置可参考阿里云Linux CentOS安装Kafka
自行设置完后,就可以启动服务了:

systemctl start filebeat

官网使用./filebeat -e -c filebeat.yml命令启动,可以自行试试。官网推荐要把ESLogstash(可选), Kibana都给装上,那就继续。

image.png

安装ES

官网比较全,安装方式真的很多,参考官网安装ES

直接下载解压安装

可以直接下载,解压安装:

cd /usr/local
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-linux-x86_64.tar.gz
tar -xzvf elasticsearch-7.6.2-linux-x86_64.tar.gz
cd elasticsearch-7.6.2
./bin/elasticsearch

编辑rpm源安装

如果想方便的设置service,可以采用rpm安装,参考rpm安装ES

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/elasticsearch.repo

编辑输入:

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

安装:

yum install --enablerepo=elasticsearch elasticsearch

直接下载rpm安装

如下:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.2-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-7.6.2-x86_64.rpm.sha512
sudo rpm --install elasticsearch-7.6.2-x86_64.rpm

推荐这种方法,装完后三连:

systemctl enable elasticsearch
systemctl start elasticsearch
systemctl status elasticsearch

测试下:

curl localhost:9200

没问题!

安装Kibana

类似ES,也有多种方式:

下载解压

用wget也行,

cd /usr/local
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-linux-x86_64.tar.gz
tar xzvf kibana-7.6.2-linux-x86_64.tar.gz
cd kibana-7.6.2-linux-x86_64/
./bin/kibana

rpm源安装方式

参考官网

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/kibana.repo

输入:

[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后安装

yum install kibana

直接下载rpm方式

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.2-x86_64.rpm
shasum -a 512 kibana-7.6.2-x86_64.rpm
rpm --install kibana-7.6.2-x86_64.rpm

安装目录在/usr/share/kibana,配置在/etc/kibana/kibana.yml
配置主要是:

server.host
elasticsearch.url
elasticsearch.hosts # 新版好像是这样
elasticsearch.username
elasticsearch.password

可登陆localhost:5601查看。

安装Logstash

安装前需要先安装Java。这个就行:

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel

参考官网,直接下载安装是:

curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-7.6.2.rpm
sudo rpm -i logstash-7.6.2.rpm

不过本文推荐编辑rpm源,再下载安装,因为直接下载rpm源安装,好像没有创建系统启动脚本,原因不明。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
vim /etc/yum.repos.d/logstash.repo

编辑:

[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

然后安装:

yum install logstash

先试试临时的命令行进行测试,启动需要十几秒:

cd /usr/share/logstash/bin
./logstash -e 'input { stdin{}} output { stdout{}}'

输入什么就会输出什么,或者使用这个详细输出:

./logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug} }'

会附加一些字段,如图:


image.png

codec输出能够解码序列化数据,不过可能这两种输出方式是一样的,那就应该默认都是codec输出了。
也可以输出到ES:

./logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.1.160:9200"]} }'

这个还没测试过。
如果不想临时测试,可以直接根据配置启动,三连:

systemctl enable logstash
systemctl start logstash
systemctl status logstash

OK! 注意,如果机器配置不够,logstash启动会挤压ES的资源,导致ES失败!
接下来配置logstash,根据安装方式不同,配置文件所在目录不同,/usr/local/logstash/config或者/etc/logstash/conf.d,可以复制logstash-sample.conf文件在其基础上配置。

最好还是加个Kafka,日志量大的时候,Filebeat容易卡死,记得去查看log,导致Logstash也莫名崩溃。也可能是如下原因:

  1. Filebeat假死,看日志,或用kill -9杀死僵尸进程;这可能直接导致连接beat的logstash一启动就崩溃;
  2. Logstash崩溃后,Kafka里还有消息,可以删掉group,这会同时把这个group里的残留消息全删掉;
  3. (noqa)曾经把log里摘出一个content来解析,老是出错,还是从原始message一口气解析比较好吧;
  4. (noqa)message里带下划线的词语可以用%{USERNAME}给过滤掉,不然会造成有些解析不出来;
  5. 最终90%确定,是用了if [foo] > 10这种比较,其中foo又没有解析出来,导出报错,Logstash的报错真是不友好,一句大话谁知道哪里错了。
[ERROR][logstash.javapipeline    ][main] Pipeline worker error, the pipeline will be stopped {:pipeline_id=>"main", :error=>"", :exception=>Java::JavaLang::NullPointerException, :backtrace=>["org.logstash.config.ir.compiler.EventCondition$Compiler$UnexpectedTypeException.

参考

https://www.cnblogs.com/xd502djj/p/8253139.html
http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/get_start/full_config.html
https://www.cnblogs.com/unchch/p/12097313.html
https://blog.csdn.net/qq_34021712/article/details/79746413

上一篇下一篇

猜你喜欢

热点阅读