ELK搭建学习笔记

ELK搭建

需求背景

业务量庞大、服务器越来越多
需要集中管理日志

为什么用ELK

完整的集中式日志系统需要包含以下几点:
    1、收集-能够收集多种类型的日志
    2、传输-能够稳定的把数据传输到中央系统
    3、存储-如何存储日志(保留最近3个月的)
    4、分析-可以支持UI的分析(时间维度)
    5、警报-能够提供错误报告,监控机制

什么是ELK

ElasticSearch、Logstash、Kibana
1、ES是一款开源的分布式搜索引擎,具有收集、分析、存储数据的能力。其优点是:零配置、分布式、自动发现、索引自动分片、索引副本机制、restful风格接口、多数据源、自动搜索负载等。
2、Logstash主要用来,搜集、分析、过滤、 传输数据。
3、Kibana免费的开源工具、提供友好的WEB界面、帮助汇总、分析、搜索重要数据日志。

后期的发展

由于Logstash对CPU、内存、io方面资源占用较多,所以出现了Beats这个轻量级的日志采集器。
现在较为流行的是es+beats+kibana

关于x-pack工具
该工具提供了安全、警报、监控、报表、图表于一身的拓展包、是收费的

架构图

![架构图](https://s1.51cto.com/images/blog/201803/02/18a4bf43c1fcb34cdbc426ddd12b77ec.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

准备工作

软件版本

  • Elasticsearch-6.0.0
  • logstash-6.0.0
  • kibana-6.0.0
  • filebeat-6.0.0

部署ELK

安装ES

  • 采用rpm方式安装

        wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.0.0.rpm
        rpm -ivh elasticsearch-6.0.0.rpm
    
  • 配置ES

    配置文件分别在

    /etc/elasticsearch
    /etc/sysconfig/elasticsearch

    /etc/elasticsearch/elasticsearch.yml 主要用来配置集群节点相关信息
    /etc/sysconfig/elasticsearch/elasticsearch 主要配置服务本身相关的配置,例如:某个配置文件的路径,java路径等。

  • 排错记录

    注意配置JAVA_HOME,尤其是在profile里

  • 启动服务

    systemctl start elasticsearch.service
    查看端口状况
    会发现占用了两个端口 9200和9300
    9300是集群通讯端口,9200是数据传输端口

  • 验证服务

    查看集群健康状态
    curl ‘host:9200/_cluster/health?pretty’
    查看集群详细信息
    curl ‘host:9200/_cluster/state?pretty’

安装kibana

  • rpm方式安装

    wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm 
    rpm -ivh kibana-6.0.0-x86_64.rpm
    
  • 进行配置

        [root@master-node ~]# vim /etc/kibana/kibana.yml  # 增加以下内容
        server.port: 5601  # 配置kibana的端口
        server.host: 192.168.77.128  # 配置监听ip
        elasticsearch.url: "http://192.168.77.128:9200"  # 配置es服务器的ip,如果是集群则配置该集群中主
        点的ip
        logging.dest: /var/log/kibana.log  # 配置kibana的日志文件路径,不然默认是messages里记录日志
    
  • 启动kibana服务,并检查进程和监听端口

        [root@master-node ~]# systemctl start kibana
        [root@master-node ~]# ps aux |grep kibana
        kibana     3083 36.8  2.9 1118668 112352 ?      Ssl  17:14   0:03 /usr/share/kibana/bin/../node/bin/node --no-warnings /usr/share/kibana/bin/../src/cli -c /etc/kibana/kibana.yml
        root       3095  0.0  0.0 112660   964 pts/0    S+   17:14   0:00 grep --color=auto kibana
        [root@master-node ~]# netstat -lntp |grep 5601
        tcp        0      0 192.168.77.128:5601     0.0.0.0:*               LISTEN      3083/node    
        [root@master-node ~]# 
    

    kibana为node开发

  • 访问服务

    直接访问host:5601
    由于没有安装x-pack所以是不用登录的,直接访问就可以

安装logstash

  • rpm直接安装

    注意不支持jdk1.9

        wget https://artifacts.elastic.co/downloads/logstash/logstash-6.0.0.rpm
        rpm -ivh logstash-6.0.0.rpm
    
  • 配置logstash

    创建配置文件,

        input {
         tcp {
                host => "192.168.10.200"
                port => 8082
                mode => "server"
                ssl_enable => false
                codec => json {
                    charset => "UTF-8"
                    }
                }
            }
        output {
            elasticsearch {
            hosts => "192.168.10.200:9200"
            index => "logstash-test"
            }
          stdout { codec => rubydebug {} }
        }
    
    
  • 启动服务

    ./bin/logstash -f config/logstash-test.conf --debug
    完成logback日志传送到日志服务器

  • 注意

    1、启动时候要注意权限问题
    2、kibana添加索引过滤的时候选择@timetamp,若展示不出来日志就去掉
    3、添加配置文件要通过命令检查配置文件是否正确,命令为

        [root@data-node1 ~]# cd /usr/share/logstash/bin
        [root@data-node1 /usr/share/logstash/bin]# ./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
        Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties
        Configuration OK  # 为ok则代表配置文件没有问题
        [root@data-node1 /usr/share/logstash/bin]# 
    

    命令说明:

    –path.settings 用于指定logstash的配置文件所在的目录
    -f 指定需要被检测的配置文件的路径
    –config.test_and_exit 指定检测完之后就退出,不然就会直接启动了

参考链接:https://blog.51cto.com/zero01/2079879

参考链接:https://blog.csdn.net/sdmxdzb/article/details/77731632

你可能感兴趣的:(学习笔记)