美文网首页
ELK极简安装入门例子

ELK极简安装入门例子

作者: 赤色要塞满了 | 来源:发表于2020-05-14 10:33 被阅读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

    相关文章

      网友评论

          本文标题:ELK极简安装入门例子

          本文链接:https://www.haomeiwen.com/subject/yfmvnhtx.html