Elastic Stack使用笔记

Elastic Stack使用笔记,第1张

Elastic Stack使用笔记
  • 本次使用目的:通过Elastic Stack搭建出一个小型日志系统

从springboot开始输出日志到log,在maven中引入logback-ecs-encoder,来生成log.json,然后通过filebeat获取log.json,把内容存入elasticsearch之后,通过kibana来浏览数据。

ip地址体验版:localhost方式体验交互随意elasticsearch服务+kibana服务+filebeat服务 ip地址开发版:体验搭建一个小型日志系统192.168.33.131elasticsearch服务+kibana服务192.168.33.132springboot服务+filebeat服务
  • 官方地址getting started进行开始:
https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-elastic-stack.html

开始根据官网的教程下边进行摘要总结:(本次调试系统为centos7桌面版至少4G内存,带桌面的linux发行版方便localhost浏览器调试,mac系统也体验过是ok的,不太建议windows调试)

下边先安装elasticsearch、kibana、Filebeat体验一下

  • 安装启动elasticsearch:
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz
tar -xzvf elasticsearch-7.16.2-linux-x86_64.tar.gz
cd elasticsearch-7.16.2
./bin/elasticsearch

在centos中打开Firefox浏览器,输入网址访问:http://127.0.0.1:9200

  • 安装启动kibana
curl -L -O https://artifacts.elastic.co/downloads/kibana/kibana-7.16.2-linux-x86_64.tar.gz
tar xzvf kibana-7.16.2-linux-x86_64.tar.gz
cd kibana-7.16.2-linux-x86_64/
./bin/kibana

在centos中打开Firefox浏览器,输入网址访问:http://127.0.0.1:5601

getting started中演示的是Metricbeat的例子,可自行测试,我们的目标是Filebeat,点击页面链接开始Filebeat

  • 官方地址Filebeat:
https://www.elastic.co/guide/en/beats/filebeat/7.16/filebeat-installation-configuration.html

 下载解压:

curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.2-linux-x86_64.tar.gz
tar xzvf filebeat-7.16.2-linux-x86_64.tar.gz

 修改配置: 进入到filebeat目录中vim filebeat.yml

output.elasticsearch:
  hosts: ["localhost:9200"]
设置assets:
./filebeat setup -e

 启动:(虽然启动了但是没有采集任何数据)

sudo chown root filebeat.yml 
sudo ./filebeat -e
  • 官方日志教程:
https://www.elastic.co/guide/en/ecs-logging/java/current/setup.html

直接从step 3开始,打开vim filebeat.yml,step 1后边接入springboot应用的时候用到

filebeat.inputs:
- type: log
  paths: /home/zph/data/logs/demo/*.json
  json.keys_under_root: true
  json.overwrite_keys: true
  json.add_error_key: true
  json.expand_keys: true

重启filebeat程序,往/home/zph/data/logs/中创建任意名字的.json文件写入几行数据即可。打开kibana进行查看:http://127.0.0.1:5601/app/discover

好了,就是这么简单已经体验过filebeat采集数据到文件,通过kibana来展示了。玩归玩闹归闹,现在还差的远,远程访问、安全配置如何设置,接着往下走。

分割线---------------------


  • 开启elasticsearch外部访问(启动程序用到的端口9200,5601)

进入elasticsearch目录编辑配置文件:vim elasticsearch.yml

network.host: 0.0.0.0

重启可能报错,遇到了3个错误如下

第一个错:启动报错,修改配置:
vim /etc/security/limits.conf
zph soft nofile 65535
zph hard nofile 65537
重新登录zph用户查看修改效果:
ulimit -n
ulimit -H -n
第二个错:启动报错:
vim /etc/sysctl.conf
vm.max_map_count=262144
使配置生效:
/sbin/sysctl -p
第三个错:启动报错:
vim config/elasticsearch.yml
discovery.seed_hosts:  ["127.0.0.1", "[::1]"]
启动成功

用IP访问下试试:http://192.168.33.131:9200/

对外访问kibana:修改配置文件vim config/kibana.yml

server.host: "192.168.33.131"

 重新启动,用IP访问下试试http://192.168.33.131:5601/

  • 开启安全配置:开发阶段先设置成minimal security
https://www.elastic.co/guide/en/elasticsearch/reference/7.16/configuring-stack-security.html

进入elasticsearch目录编辑配置文件:vim elasticsearch.yml

xpack.security.enabled: true
#单节点的时候
discovery.type: single-node

杀死elasticsearch 进程重启,这次采用后台进程启动:

nohup ./bin/elasticsearch >> logs/elasticsearch.log &

设置用户和密码:自动生成,生成的内容自行保存,十分重要

./bin/elasticsearch-setup-passwords auto

访问http://192.168.33.131:9200,此时需要登录账号密码了。

进入kibana目录编辑配置文件:vim kibana.yml

elasticsearch.username: "kibana_system"

创建keystore方式来添加密码:kibana_system用户和密码前边已经自行保存

./bin/kibana-keystore create
./bin/kibana-keystore add elasticsearch.password

杀死kibana进程重启,这次采用后台进程启动:

 nohup ./bin/kibana >> kibana.log &
查看进程:
ps -ef|grep node   (因为kibana是node写的,所以查看进程需要如此)
查看进程id  :  netstat -tunlp|grep 5601    kibana默认5601端口

访问http://192.168.33.131:5601/ ,此时需要登录账号密码了。

打开vim filebeat.yml,之前已经自行保存

output.elasticsearch:
  hosts: ["myEShost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD" 

setup.kibana:
    host: "mykibanahost:5601" 
    username: "my_kibana_user"  
    password: "{pwd}"

如果使用keystore创建密码则参考:https://www.elastic.co/guide/en/beats/filebeat/7.16/keystore.html,否则明文写入密码

重启Filebeats,后台运行

nohup ./filebeat -e >> filebeat.log &

官网初始化下载springboot,带web功能

pom加载依赖一个日志转json,一个方便日志打印


    co.elastic.logging
    logback-ecs-encoder
    1.3.0



    org.projectlombok
    lombok

配置application.properties

spring.profiles.active=dev
spring.application.name=my-application

下面配置logback-spring




    
    

    
        
            %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%file:%line) |%green(%logger)
                |%cyan(%msg%n)
            
            UTF-8
        
    

    
    
        
            ${SERVICE_NAME:-spring-boot-application}
        
        
            ${LOG_FILE_CLEAN_HISTORY_ON_START:-false}
            ${ROLLING_FILE_NAME_PATTERN:-${LOG_HOME}/${PROJECT_NAME}_info.%d{yyyy-MM-dd}.%i.log.json}
            ${LOG_FILE_MAX_SIZE:-10MB}
            ${LOG_FILE_MAX_HISTORY:-7}
            ${LOG_FILE_TOTAL_SIZE_CAP:-0}
        
    

    
        
            
            [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n
            UTF-8
        
        
            INFO
            ACCEPT
            DENY
        
        
            
            ${LOG_HOME}/${PROJECT_NAME}_info.%d{yyyy-MM-dd}.%i.log
            
            15
            
            10MB
        
    

    
        
            
            
            
        
    



创建controller

package com.example.demo.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {
    @GetMapping("/test")
    public void test(){
        log.info("数据库信息");
    }
}

打包好,放到192.168.33.132中的/home/zph/data/目录中

使用java -jar运行springboot程序

访问:http://192.168.33.132:8080/test/test

打开/home/zph/data/logs/demo目录可以看到输出的启动info信息和自己输出的info信息,

访问kibana:http://192.168.33.131:5601 数据内容会有延迟,过会就可以看到数据

后续:安全配置还有basic security + tls for rest

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5688561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存