ELK环境搭建以及部署

ELK部署文档

1、Elasticsearch安装部署(见Es集群搭建中的步骤)

2、Logstash安装部署

  1. 下载logstash-7.0.0.tar.gz

  2. 解压文件:tar -xzvf logstash-7.0.0.tar.gz

  3. 添加配置文件 logstash-7.0.0/config/first-pipeline.conf,配置文件可以在启动时指定,所以可以创建一个新的配置文件,配置如下:

    #日志输入
    input {
      #通过filebeat、logback等推送接收数据
      beats {
        port => "5044"
      }
      #通过tcp日志追加器推送接收数据
      tcp {
         port => 8866
         codec => json_lines
      }
    }
    
    #数据过滤器
    filter {
    	#通过grok过滤器组件COMBINEDAPACHELOG模式可以解析出一定的内容,如IP信息等
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}"}
        }
    	#通过IP信息解析为具体的地理坐标
        geoip {
            source => "clientip"
        }
    }
    
    #日志输出
    output {
    	#输出到控制台
        stdout { codec => rubydebug }
    	#输出到es集群
        elasticsearch {
            hosts => [ "127.0.0.1:9200" ]
    		#创建的es索引名为appname对应的值
            index => "%{[appname]}"
        }
    }
    
  4. 启动Logstash

    #指定配置文件并进行测试,如果配置有错误会输出具体的错误信息
    bin/logstash -f first-pipeline.conf --config.test_and_exit
    #指定配置文件启动,选项启用自动配置重新加载,不必在每次修改配置文件时停止并重新启动
    bin/logstash -f first-pipeline.conf --config.reload.automatic
    
  5. 使用filebeat推送日志

    1. 下载:filebeat-7.0.0-linux-x86_64.tar.gz

    2. 解压:tar -xzvf filebeat-7.0.0-linux-x86_64.tar.gz

    3. 修改配置文件:vim …/filebeat-7.0.0/filebeat.yml,配置如下

      #输入
      filebeat.inputs:
      - type: log
        enabled: true
        paths:
          #读取指定路径下的日志文件,可以使用通配符、具体的文件名
          - /home/lixiang/ELK/*.log
          
      #输出 
      output.logstash:
        #输出给logstash
        hosts: ["localhost:5044"]
      
      
    4. 启动filebeat,推送出去的日志可以再logstash控制台输出或者Elasticsearch中

      #如果要重新推送之前已经推送过的数据需要删除这个注册文件
      rm -r data/registry
      #启动filebeat以后日志会自动推送给logstash管道
      ./filebeat -e -c filebeat.yml -d "publish"
      
  6. 项目中配置logback进行TCP推送日志,配置如下:

    <!--TCP追加器-->
    <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    	<destination>127.0.0.1:9600</destination>
    		<!--请求者信息字段打开,打开后可获取类的方法名以及行号,会消耗更多的性能-->
    		<includeCallerData>true</includeCallerData>
    		<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
    			<providers>
    				<pattern>
    					<pattern>
    						{
    						"date": "%d{yyyy-MM-dd HH:mm:ss}",
    						"thread": "%thread",<!--线程名称 -->
    						"level": "%level", <!--日志等级 -->
    						"code": "%code", <!--自定义错误码-->
    						"logger_name": "%logger", <!--日志记录器名,一般显示为类名-->
    						"class_name": "%class", <!--类名 -->
    						"method_name": "%method",  <!--方法名 -->
    						"line_number": "%line", <!--行号 -->
    						"message": "%message", <!--日志主题信息 -->
    						"appname":"demo220"
    						}
    					</pattern>
    				</pattern>
    			</providers>
    		</encoder>
    </appender>
    

    需要添加相应的maven依赖:

            <!--logstash日志依赖-->
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>4.11</version>
            </dependency>
    

3、Kibana安装部署

  1. 下载:kibana-7.0.0-linux-x86_64.tar.gz

  2. 解压文件:tar -xzvf kibana-7.0.0-linux-x86_64.tar.gz

  3. 修改配置文件:vim …/kibana-7.0.0-linux-x86_64/config/kibana.yml,配置如下:

    server.port: 5601	#服务端口号
    server.host: "0.0.0.0"	#服务IP,0.0.0.0 表示服务器所在网段均能访问
    elasticsearch.hosts: ["http://127.0.0.1:9200"]或者elasticsearch.hosts: "http://127.0.0.1:9200" #Elasticsearch集群ip
    i18n.locale: "zh-CN" #国际化中文显示
    
    
  4. 启动kibana:…/bin/kibana

    启动成功后访问:http://127.0.0.1:5601 进入可视化界面,如下图所示:
    [外链图片转存失败(img-KNBc8YTx-1568013345527)( “k001”)]

  5. 部分配置说明

    kibana部分配置说明

    配置项配置说明
    server.host指定Kibana服务器将绑定到的地址
    server.name用于标识此Kibana实例的可读显示名称
    server.port默认值:5601,设置指定要使用的端口
    server.defaultRoute默认跳转路径,默认为/app/kibana
    kibana.defaultAppId进入时默认显示页面
    console.enabled默认值:true,设置值:false以禁用控制台,即开发工具处的控制台
    xpack.apm.enabled默认值:true,设置值:false以禁用apm,菜单栏将会隐藏
    elasticsearch.hostses集群url地址
    kibana.indexKibana在ElasticSearch中使用索引来存储
    server.maxPayloadBytes传入服务器请求的最大负载大小(字节)
    xpack.graph.enabled设置为false禁用图表分析功能
    xpack.infra.enabled设置为false禁用基础设置和日志功能,菜单栏将会隐藏
    xpack.infra.sources.default.fields.timestamp用于对日志条目进行排序的时间戳。默认为@timestamp
    xpack.ml.enabled设置为true(默认)false关闭Kibana机器学习功能,菜单栏将会隐藏
    xpack.monitoring.enabled设置为false隐藏Kibana中的监控UI
    xpack.spaces.enabled设置为false关闭空间设置,在管理中隐藏空间设置
    i18n.locale国际化 en或者zh-CN

4、kibana基本模块使用

1、Discover搜索模块

搜索模块如下图所示:
在这里插入图片描述

  1. 搜索框,通过编写表达式筛选索引中的数据,也可以手动选择筛选条件,并通过Refresh按钮刷新查询结果(回车键也可以刷新)如下图所示:

在这里插入图片描述

通过选择字段和运算符完成筛选,或者通过Elasticsearch的DSL查询语句进行查询筛选如下图:

在这里插入图片描述

  1. 时间筛选,可以选择多种时间范围、区间如图所示:

在这里插入图片描述

  1. 索引选择下拉菜单,选择需要查询的索引名称即可。

  2. 文档中相应的字段,可以通过添加,删除操作筛选在右侧的展示字段。

  3. 文档列表展示区,最上面是根据时间范围统计数量的直方图,选择一个文档后点击左侧箭头打开文档如图所示:
    在这里插入图片描述

    通过“查看周围文档”可以查看当前文档创建时间上下范围的其它文档,“查看单个文档”则是查看该文档具体文档信息。

2、可视化模块

  1. 可视化列表如图所示:

在这里插入图片描述
通过搜索框搜索已经创建的可视化组件,单击组件名称进入可视化编辑界面如图所示:

在这里插入图片描述

  1. 新建可视化组件,点击可视化列表右上角“+”进入如下界面:
    在这里插入图片描述

    选择需要创建的可视化类型进入可视化组件编辑界面如下图:
    在这里插入图片描述

    选择索引模式进入编辑界面:
    在这里插入图片描述

    通过查询筛选、指标中的聚合、编辑存储桶以及选项等内容编辑图形显示所需参数。点击指标右上角的“应用更改”应用当前编辑,并且在图形中显示。

  2. 编辑后保存
    在这里插入图片描述
    在这里插入图片描述
    确认保存后就可以在可视化列表中看到。

3、仪表盘

  1. 打开仪表板,仪表板列表如下图所示:
    在这里插入图片描述

  2. 创建新的仪表盘

    点击仪表板列表右上角的“创建新的仪表板”,如下图所示:
    在这里插入图片描述
    点击“添加”,在左侧添加面板里选择已经编辑好的可视化组件,如下图所示:
    在这里插入图片描述

    创建好仪表板以后,可以再次进行条件筛选等设置,之后进行保存如下图:
    在这里插入图片描述
    在这里插入图片描述
    此时仪表板列表中可以看到刚才添加的仪表板,仪表板中可以添加多个可视化组件,如下图所示:
    在这里插入图片描述

4、Canvas

  1. Canvas能够实现定时刷新数据实现动态显示界面,打开Canvas如下图所示:
    在这里插入图片描述
    从列表中可以打开已经创建的Canvas workpads并进行再次编辑。

  2. 创建Canvas workpads,点击列表中"Create workpad"如下图所示:
    在这里插入图片描述
    空白处相当于一块画布,右侧可以设置大小,以及CSS样式,点击"Add element"如图所示:
    在这里插入图片描述
    选择自己需要的组件添加到面板上如图所示:
    在这里插入图片描述
    右侧可以调整组件的样式等内容。

  3. 指定组件所需要的数据,如图所示:
    在这里插入图片描述
    在这里插入图片描述
    根据需要选择自己的数据来源,此处选择Elasticsearch SQL如图所示:
    在这里插入图片描述
    此处支持SQL语法,SQL语句测试等可在“控制台”测试。

  4. 保存后在列表中查看如图所示:
    在这里插入图片描述
    修改数据刷新时间如下图:
    在这里插入图片描述

5、开发工具

  1. 通过控制台执行Elasticsearch DSL语句:
    在这里插入图片描述

    查询语句可以参考Elasticsearch-head手动生成的DSL语句。

    2、通过sql查询Elasticsearch索引,Canvas中需要的sql语句可以在此处进行验证等操作。
    在这里插入图片描述

    可以通过以下语句获取索引的字段:

    POST /_sql?format=txt
    {
      "query":"DESC demo220"
    
    }
    

    结果如下图所示:
    在这里插入图片描述

6、运行时间(心跳监控)

  1. 下载:heartbeat-7.0.0-linux-x86_64.tar.gz

  2. 解压文件:tar -xzvf heartbeat-7.0.0-linux-x86_64.tar.gz

  3. 配置示例:

    #心跳监视器
    heartbeat.monitors:
    - type: http
      #添加了Elasticsearch集群三个节点的监控
      urls: ["http://127.0.0.1:9200","http://127.0.0.1:8200","http://127.0.0.1:7200"]
      #运行状态每10秒获取一次
      schedule: '@every 10s'
      
      
    #Kibana服务IP
    setup.kibana:
      host: "127.0.0.1:5601"
      
    #监控数据输出到es,节点地址是个数组  
    output.elasticsearch:
      hosts: ["127.0.0.1:9200"]
    
  4. 启动:./heartbeat -e -c heartbeat.yml

  5. 打开kibana-左侧菜单运行时间查看监控状态,如下图所示
    在这里插入图片描述
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值