ELK安装配置简单使用

ELK是三款软件的总称,包括了elasticsearch、logstash、kibana,其实在生产使用中,我们还需要使用到其他的更多辅助软件来更好更合理的收集展示数据。

Elasticsearch:一个分布式的搜索查询服务器,提供了rest接口

Logstash:收集处理并传出日志,他安装在需要被收集日志的服务器上(暂时)

Kibana:一个web展示操作页面,从Elasticsearch提供的接口获取数据并做一些常用操作

使用ELK解决的问题:

  1. 开发人员可以完全不登录服务器也可以拿到需要的日志了
  2. 各个系统、集群日志分散,不统一,需要一台台去专门查询
  3. 日志量过大,常规查询分析方法太慢

那么我们现在来规划下,三台节点,node1、node2、node3。其中node1、node2作为Elasticsearch的分布式集群节点,并且都安装Kibana来提供web页面,而node3则为我们需要收集日志的目标机器,他只需要安装Logstash即可

首先我们要先去获取安装包,我们三种软件全部都下载同一版本(5.6.5)的rpm包,下载网址https://www.elastic.co/downloads/past-releases,然后分别上传到对应服务器上

然后回到node1上

 1 [[email protected] ~]# yum install java elasticsearch-5.6.5.rpm kibana-5.6.5-x86_64.rpm –y
 2 [[email protected] ~]# grep "^[a-Z]" /etc/elasticsearch/elasticsearch.yml
 3 cluster.name: elk-cluster-1                        # 集群名称,用来区分不同elk集群
 4 node.name: node-1                            # 集群内该节点名称,不可重复
 5 path.data: /elk/data                            # 数据目录,即分散着被检索的日志
 6 path.logs: /elk/logs                                # 日志目录
 7 network.host: 192.168.56.11                        # 自己的ip
 8 http.port: 9200                                # 对外访问端口。集群内部进行选举、通讯用的是9300端口
 9 discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]            # 自动广播的目标,因为是广播,如果广播的机器过多,可能会影响到网络质量,所以规定好只向某些机器广播即可
10 [[email protected]]# mkdir /elk
11 [[email protected]node1]# systemctl start elasticsearch.service
12 [[email protected]]# ls /elk/                        # 发现神马都木有
13 这是因为我们的elasticsearch默认的启动用户是elasticsearch,此时的/elk目录权限不够
14 [[email protected]]# chown elasticsearch:elasticsearch -R /elk
15 [[email protected]node1]# systemctl restart elasticsearch.service
16 [[email protected] ~]# ls /elk/
17 data  logs
18 [[email protected] ~]# grep "^[a-Z]" /etc/kibana/kibana.yml
19 server.port: 5601                                # 打开的端口,默认就是5601
20 server.host: "192.168.56.11"                        # 监听的ip地址,默认是localhost
21 elasticsearch.url: http://192.168.56.11:9200            # 从该elasticsearch的获取数据来展示
22 [[email protected] ~]# systemctl start kibana.service
23 [[email protected] ~]# ss –tln            # 发现9200、9300、5601都有啦
24 State       Recv-Q Send-Q                    Local Address:Port                                   Peer Address:Port
25 LISTEN      0      128                                   *:111                                               *:*
26 LISTEN      0      128                                   *:80                                                *:*
27 LISTEN      0      128                                   *:22                                                *:*
28 LISTEN      0      128                                   *:4505                                              *:*
29 LISTEN      0      128                                   *:4506                                              *:*
30 LISTEN      0      30                                    *:8000                                              *:*
31 LISTEN      0      128                       192.168.56.11:5601                                              *:*
32 LISTEN      0      128                                  :::111                                              :::*
33 LISTEN      0      128                ::ffff:192.168.56.11:9200                                             :::*
34 LISTEN      0      128                ::ffff:192.168.56.11:9300                                             :::*
35 LISTEN      0      128                                  :::22                                               :::*
36 LISTEN      0      50                     ::ffff:127.0.0.1:9600                                             :::*                  

此时node1上的操作就完成了,但是现在elasticsearch里并没有数据供我们检索查询,所以我们要去配置node3收集点日志,不过在此之前我们先去配置node2

 1 [[email protected] ~]# yum install java elasticsearch-5.6.5.rpm kibana-5.6.5-x86_64.rpm -y
 2 [[email protected] ~]# grep "^[a-Z]" /etc/elasticsearch/elasticsearch.yml
 3 cluster.name: elk-cluster-1                        # 让他们处于统一elk集群里
 4 node.name: node-2                            # 这个要变
 5 path.data: /elk/data
 6 path.logs: /elk/logs
 7 network.host: 192.168.56.12                        # 这个要变
 8 http.port: 9200
 9 discovery.zen.ping.unicast.hosts: ["192.168.56.11", "192.168.56.12"]
10 [[email protected]]# mkdir /elk
11  [[email protected]]# chown elasticsearch:elasticsearch -R /elk
12 [[email protected]node2]# systemctl start elasticsearch.service
13 [[email protected] ~]# ls /elk/
14 data  logs
15 [[email protected] ~]# grep "^[a-Z]" /etc/kibana/kibana.yml
16 server.port: 5601                                # 打开的端口,默认就是5601
17 server.host: "192.168.56.12"                        # 监听的ip地址,默认是localhost
18 elasticsearch.url: http://192.168.56.12:9200            # 从该elasticsearch的获取数据来展示
19 [[email protected] ~]# systemctl start kibana.service

现在的情况很明显了,node1与node2组成了一个elasticsearch集群,我们向他们两个任意一个的9200端口传输获取数据都可以,而他们也都同时提供了kibana页面供我们访问,熟悉高可用负载均衡的朋友就可以一眼看出,我提供一个vip给kibana与elasticsearch做负载就可以保证生产时的环境了,没错就是酱,但是这点小事我们就不执行了,其实很简单啊,就几分钟的事情。

 1 [[email protected] ~]# yum install java logstash-5.6.5.rpm –y
 2 [[email protected] ~]# cd /etc/logstash/conf.d/                    # 以后所有的配置规则都在这里哦
 3 [[email protected] conf.d]# cat systemlog.conf
 4 input {                                    # 数据来源定义,可定义多个
 5   file {                                    # 从文件中获取
 6     path => "/var/log/messages"                # 文件路径
 7     start_position => "beginning"                # 从文件开头获取还是从现在开始,默认从现在
 8     type => "systemlog-5613"                # 类别名自定义,最好具有良好的辨认性
 9     stat_interval => "2"                        # 获取时间间隔,默认1秒,太频繁了
10   }
11 }
12
13
14 output {                                    # 数据输出定义,可定义多个
15   elasticsearch {                            # 向elasticsearch输出
16     hosts => ["192.168.56.11:9200"]            # elasticsearch的url
17     index => "system-log-5613-%{+YYYY.MM.dd}"    # 自定义,最好具有良好的辨认性,最后的%{+YYYY.MM.dd}是取当前的时间戳
18   }
19   file {                                    # 向文件输出
20     path => "/tmp/systemlog.txt"                # 输出路径
21   }
22 }
23 [[email protected] tmp]# chmod 644 /var/log/messages            # messages的权限特殊是600
24 [[email protected] ~]# systemctl start logstash
25 [[email protected] ~]# tail -1 /tmp/systemlog.txt
26 {"@version":"1","host":"linux-node3.example.com","path":"/var/log/messages","@timestamp":"2017-12-15T10:30:02.990Z","message":"Dec 15 18:30:01 linux-node3 systemd: Starting Session 62 of user root.","type":"systemlog-5613"}

[system-log-5613-]YYYY.MM.DD,这个就是我们刚才的index,不同的是最后时间戳的表示是DD,然后我们勾选使用时间戳创建,确认到了匹配的数据索引后创建

发现没有数据,wtf,劳资费了这么大劲就给我看这个?我们点击蓝色按钮调整下查找的时间轴

设置成起始时间今天,截至时间为当前再次查询

有点信心了,我们选择排列host跟message,这样就可以直观的对比数据了

时间: 2024-08-24 07:27:43

ELK安装配置简单使用的相关文章

puppet yum安装配置,简单证书维护

Puppet学习之puppet的安装和配置 一.Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理.Puppet适用于服务器管的整个过程 ,比如初始安装.配置更新以及系统下线. 二.Puppet的安装 Puppet的安装方式支持源码安装.yum安装以及ruby的gem安装.官网推荐使用yum来安装puppet,方面以后的升级.管理.维护.Cento

ELK系列一:ELK安装配置及nginx日志分析

本文分三个部分介绍了elk.elk安装配置及基于filebeat分析nginx日志的配置. 第一部分:elk介绍 一.什么是elk ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana.这三款软件都是开源软件,通常是配合使用. 二.Elasticsearch 1.Elasticsearch介绍 Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全

ELK安装配置及nginx日志分析

一.ELK简介1.组成ELK是Elasticsearch.Logstash.Kibana三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合使用,而且又都先后归于 Elastic.co 公司名下,故有此简称.Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等.Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用.kibana 是一个开源和

ELK 安装配置中的默认端口结构图

在安装配置 ELK 的过程中,涉及了比较多的默认端口,如 ElasticSearch 的 9200, Kibana 的 5601, 还有 Logstash 的 5044. 这些端口是按照怎样的数据流程及结构设置,甚至是在哪个配置文件的哪条配置项,是一个很容易混淆的事情. 我根据安装经验,整理出如下结构图,这样就比较清晰和直接了.

elk 安装配置

1 安装java环境,要1.7及以上 a 直接yum install java b rpm或tar.gz方式安装 java -version 检查 2 下载三个组件 Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制, restful 风格接口,多数据源,自动搜索负载等. Logstash 是一个完全开源的工具,他可以对你的日志进行收集.分析,并将其存储供以后使用(如,搜索). kibana 也是一个开源和免费的工具,Kibana

Jenkins安装配置简单使用

安装启动是十分简单的,直接去https://jenkins.io/download/下载对应的rpm包就好了,需要注意的是我们的机器上要提前有java环境,相对应要选择你java环境可以支持的jenkins版本,以现在的主流我们就用java8跟最新的rpm包就好 1 [[email protected] src]# ls 2 jenkins-2.89.4-1.1.noarch.rpm 3 [[email protected] src]# yum install jenkins-2.89.4-1.

Katalon Studio 安装 配置 简单使用

本教程只针对Katalon Studio进行演示操作. 一.下载 Katalon 官网下载地址:https://www.katalon.com/download/ (需要注册账号) 二.解压.配置 直接 在磁盘中解压下载的压缩包,并双击katalon.exe打开katalon 初次安装,需要输入注册的账号信息: 三.简单使用 1.创建一个测试 File -> New -> Project   并输入测试工程的名称(ex:Test) 成功页面: 2.创建脚本 创建脚本分组: 右击Test Cas

ELK安装配置

1.安装elasticsearch tar -zxvf jdk-8u144-linux-x64.tar.gz mv jdk1.8.0_144 java mv java /usr/local/ #添加JDK变量环境 echo '#JAVA#'>> /etc/profile echo 'JAVA_HOME=/usr/local/java'>> /etc/profile echo 'CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib'>>

ELK日志分析系统 介绍 安装配置

ELK日志分析系统 一.ELK介绍 ELK顾名思义:是由Elasticsearch,Logstash 和 Kibana三部分组成的. 其中Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写.目前,最新的版本是 5.4. 主要特点 实时分析 分布式实时文件存储,并将每一个字段都编入索引 文档导向,所有的对象全部是文档 高可用性,易扩展,支持集群(Cl