原文:https://www.howtoing.com/install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-rhel-7

如果你是一个曾经或过去负责检查和分析Linux系统日志的人,那么你知道如果同时监视多个服务,这个任务可能会成为一个噩梦。

在过去的几天中,该任务必须大多数手动完成,每个日志类型单独处理。 幸运的是,Elasticsearch,LogstashKibana的在服务器端的结合,Filebeat在客户端一起,使得一旦艰巨的任务,像今天,在公园里散步。

前三个部件形成所谓的ELK栈,其主要目的是在同一时间(也称为集中式记录)收集来自多个服务器的日志。

建议阅读: 4优秀的开源日志监控和管理工具用于Linux

内置的基于java的Web界面允许您快速检查日志,以方便比较和故障排除。 这些客户端日志发送到由Filebeat中央服务器,它可以被描述为一个日志传送代理。

让我们看看所有这些部分如何组合在一起。 我们的测试环境包括以下机器:

Central Server: CentOS 7 (IP address: 192.168.0.29). 2 GB of RAM.
Client #1: CentOS 7 (IP address: 192.168.0.100). 1 GB of RAM.
Client #2: Debian 8 (IP address: 192.168.0.101). 1 GB of RAM.

请注意,这里提供的RAM值是不严格的先决条件,但建议值,成功实现了中央服务器上的ELK。 在客户端上较少的RAM将没有太大的差别,如果有的话,在所有。

在服务器上安装ELK

首先,让我们在服务器上安装的ELK栈,对每个部件做什么的简短解释说明:

  1. Elasticsearch存储由客户端发送的日志。
  2. Logstash处理这些日志。
  3. Kibana提供Web界面,这将帮助我们检查和分析日志。

在中央服务器上安装以下软件包。 首先,我们将安装Java JDK版本8(更新102,最新一期在写这篇文章的时候),这是ELK组件的依赖。

您可能需要首先检查在Java下载页面点击这里 ,查看是否有可用的较新的更新。

# yum update
# cd /opt
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u102-b14/jre-8u102-linux-x64.rpm"
# rpm -Uvh jre-8u102-linux-x64.rpm

检查安装是否成功完成的时间:

# java -version

从命令行检查Java版本

要安装Elasticsearch,LogstashKibana的最新版本,我们将不得不手动创建Yum库如下:

启用Elasticsearch Repository

1.导入Elasticsearch公共GPG钥匙RPM软件包管理器:

# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

2.将以下几行库配置文件elasticsearch.repo :

/etc/yum.repos.d/elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

3.安装Elasticsearch包。

# yum install elasticsearch

安装完成后,将提示您启动并启用elasticsearch:

在Linux中安装Elasticsearch

4.启动并启用该服务。

# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch

5.通过TCP端口9200在你的防火墙允许通信:

# firewall-cmd --add-port=9200/tcp
# firewall-cmd --add-port=9200/tcp --permanent

6.检查Elasticsearch响应通过HTTP简单的请求:

# curl -X GET http://localhost:9200

上述命令的输出应类似于:

验证Elasticsearch安装

确保你完成上述步骤,然后用Logstash进行。 由于两个LogstashKibana共享Elasticsearch GPG密钥,则无需重新导入安装软件包之前。

建议阅读: 在CentOS 7管理系统日志(配置,旋转和导入到数据库中)

启用Logstash存储库

7.将以下行库配置文件logstash.repo :

/etc/yum.repos.d/logstash.repo
[logstash]
name=Logstash
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

8.安装Logstash包:

# yum install logstash

9.添加基于在下面的下面的行ELK服务器的IP地址的SSL证书[ v3_ca ]在第/etc/pki/tls/openssl.cnf :

[ v3_ca ]
subjectAltName = IP: 192.168.0.29

添加Elasticsearch服务器IP地址

10.生成自签名的证书,有效期365天:

# cd /etc/pki/tls
# openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

11.配置Logstash输入,输出和滤波器文件:

输入 :创建/etc/logstash/conf.d/input.conf并插入以下行进去。 这是必要的Logstash“ 学习 ”如何处理Beats来自客户的到来。 确保证书和密钥的路径匹配上一步中概述的正确路径:

/etc/logstash/conf.d/input.conf
input {
beats {
port => 5044
ssl => true
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}

输出( /etc/logstash/conf.d/output.conf )文件:

/etc/logstash/conf.d/output.conf
output {
elasticsearch {
hosts => ["localhost:9200"]
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

滤波器( /etc/logstash/conf.d/filter.conf )文件。 为了简单,我们将记录syslog消息:

/etc/logstash/conf.d/filter.conf
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGLINE}" }
}
date {
match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}

12.验证Logstash配置文件。

# service logstash configtest

验证Logstash配置

13.启动并启用logstash:

# systemctl daemon-reload
# systemctl start logstash
# systemctl enable logstash

14.配置防火墙以允许Logstash从客户端(TCP端口5044)得到日志:

# firewall-cmd --add-port=5044/tcp
# firewall-cmd --add-port=5044/tcp --permanent

启用Kibana存储库

14.将以下几行库配置文件kibana.repo :

/etc/yum.repos.d/kibana.repo
[kibana]
name=Kibana repository
baseurl=http://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

15.安装Kibana包:

# yum install kibana

16.启动并启用Kibana。

# systemctl daemon-reload
# systemctl start kibana
# systemctl enable kibana

17.确保您可以从另一台计算机访问接入Kibana的Web界面(允许TCP端口5601上的流量):

# firewall-cmd --add-port=5601/tcp
# firewall-cmd --add-port=5601/tcp --permanent

18.启动Kibana( http://192.168.0.29:5601 )来验证您可以访问Web界面:

访问Kibana Web界面

我们已经安装并在客户端配置的Filebeat之后,我们将回到这里。

建议阅读: 在实时监控服务器日志在Linux的“Log.io”工具

在客户端服务器上安装Filebeat

我们将向你展示如何为客户端#1这样做(重复的客户端#2之后,改变路径,如果适用于您的分布)。

1.从服务器到客户机复制SSL证书:

# scp /etc/pki/tls/certs/logstash-forwarder.crt root@192.168.0.100:/etc/pki/tls/certs/

2.导入Elasticsearch公共GPG钥匙RPM软件包管理器:

# rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

3.创建Filebeat(存储库/etc/yum.repos.d/filebeat.repo CentOS中)基于分布:

/etc/yum.repos.d/filebeat.repo
[filebeat]
name=Filebeat for ELK clients
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

4.配置源在Debian及其衍生物安装Filebeat:

# aptitude install apt-transport-https
# echo "deb https://packages.elastic.co/beats/apt stable main" > /etc/apt/sources.list.d/filebeat.list
# aptitude update

5.安装Filebeat包:

# yum install filebeat        [On CentOS and based Distros]
# aptitude install filebeat [On Debian and its derivatives]

6.启动并启用Filebeat:

# systemctl start filebeat
# systemctl enable filebeat

配置Filebeat

这里提醒一下的话。Filebeat配置存储在YAML文件,这需要严格的缩进。 小心这是你编辑/etc/filebeat/filebeat.yml如下:

  1. 路径 ,指出哪些日志文件应“运”到ELK服务器。
  2. 淘金 :
input_type: log
document_type: syslog
  1. 输出 :
    1. 取消对与logstash开头的行。
    2. 表明您ELK服务器和端口的IP地址,其中Logstash在主机听。
    3. 确保路径证书指向您在步骤创建I(Logstash部分)高于实际文件。

上述步骤如下图所示:

在客户端服务器中配置Filebeat

保存更改,然后重新启动Filebeat在客户端:

# systemctl restart filebeat

一旦我们在客户上完成上述步骤,请随时前进。

测试Filebeat

为了验证来自客户端的日志,可以发送和接收成功,运行ELK服务器上以下命令:

# curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

输出应该类似于(注意如何从信息的/ var / log / messages文件/ var /日志/安全正在从客户端1客户端2接收):

测试Filebeat

否则,检查错误Filebeat配置文件。

# journalctl -xe

在尝试重新启动Filebeat将指向您的违规行。

测试Kibana

在我们验证日志由客户端运送并在服务器上成功接收后。 我们将在Kibana要做的第一件事是配置索引模式并将其设置为默认值。

您可以在关系数据库上下文中将索引描述为完整数据库。 我们将与去filebeat-* (或者你可以使用一个更精确的搜索条件中所解释的正式文件 )。

输入filebeat-*索引名称图案字段 ,然后单击创建 :

测试Kibana

请注意,您以后将被允许输入更细粒度的搜索条件。 接下来,单击绿色矩形中的星形将其配置为默认索引模式:

配置默认Kibana索引模式

最后,在发现菜单中,你会发现几个字段添加到日志可视化报告。 只需将鼠标悬停在他们,然后单击Add:

添加日志可视化报告

结果将显示在屏幕的中心区域,如上所示。 随意玩弄(添加和删除的日志报表字段),以熟悉Kibana。

默认情况下,Kibana会显示最后15分钟期间处理的记录(见右上角),但你可以通过选择另一个时间框架改变这种行为:

Kibana日志报告

概要

在本文中,我们解释了如何设置ELK以收集由两个客户端(CentOS 7和Debian 8机器)发送的系统日志。

现在,你可以参考官方Elasticsearch文档并找到如何使用此设置的检查和更有效地分析你的日志的详细信息。

如果你有任何问题,不要犹豫问。 我们期待您的回音。

(转)如何在CentOS / RHEL 7上安装Elasticsearch,Logstash和Kibana(ELK)的更多相关文章

  1. 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2

    MongoDB(名称取自"huMONGOus")是一个有着全面灵活的索引支持和丰富的查询的数据库.MongoDB通过GridFS提供强大的媒体存储.点击这里获取MongoDB的更多 ...

  2. 如何在 Ubuntu 14.04 上安装 Elasticsearch,Logstash 和 Kibana

    介绍 在本教程中,我们将去的 Elasticsearch 麋鹿堆栈安装 Ubuntu 14.04 — — 那就是,Elasticsearch 5.2.x,Logstash 2.2.x 和 Kibana ...

  3. 如何在CentOS 5/6上安装EPEL 源

    EPEL 是什么? EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentO ...

  4. 如何在CentOS 5/6上安装EPEL源

    EPEL 是什么? EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentO ...

  5. 如何在CentOS 6.5上安装EPEL 源

    EPEL 是什么? EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentO ...

  6. 如何在 centos 7.3 上安装 caffe 深度学习工具

    有好多朋友在安装 caffe 时遇到不少问题.(看文章的朋友希望关心一下我的创业项目趣智思成) 今天测试并整理一下安装过程.我是在阿里云上测试,选择centos 7.3 镜像. 先安装 epel 源 ...

  7. 如何在CentOS / RHEL 7上启用IPv6

    默认情况下,在RHEL / CenOS 7系统上启用IPv6.因此,如果故意在系统上禁用IPv6,则可以通过以下任一方法重新启用它. 1.在内核模块中启用IPv6(需要重启)2.使用sysctl设置启 ...

  8. 如何在centos 6.7 上安装oracle 11gR2

    1.软件准备: centos6.7(64位); oracle11gR2((Linux x86-64)) 2.执行如下命令安装好相关的包: yum -y install \ binutils \ com ...

  9. 如何在CentOS 7服务器上安装NodeJS

    你可以通过运行以下命令. 1 sudo yum install epel-release 现在可以使用yum命令安装Node.js了. 1 sudo yum install nodejs 因为在开发过 ...

随机推荐

  1. CoderForces 689A Mike and Cellphone (水题)

    题意:给定一个手机键盘数字九宫格,然后让你判断某种操作是不是唯一的,也就是说是不是可以通过平移也能实现. 析:我的想法是那就平移一下,看看能实现,就四种平移,上,下,左,右,上是-3,要注意0变成8, ...

  2. 聚合函数 listagg (超出长度限制时xmlagg)

    表&数据 ),buy ),price NUMBER); ); ); ); 原来的结果 SELECT * FROM PEOPLEBUY ORDER BY PEOPLE; 想要的结果 SELECT ...

  3. linux每天一小步---sed命令详解

    1 命令功能 sed是一个相当强大的文件处理编辑工具,sed用来替换,删除,更新文件中的内容.sed以文本行为单位进行处理,一次处理一行内容.首先sed吧当前处理的行存储在临时的缓冲区中(称为模式空间 ...

  4. 一个GIS系统需具备的功能

    数据的存储(数据结构) 图形显示 功能:拓扑分析 开源的GIS系统:QGIS,SharpMap 各个功能组件

  5. (网络流)Food -- hdu -- 4292

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4292 Food Time Limit: 2000/1000 MS (Java/Others)    Me ...

  6. [label][IDE] Develop Node.js Project With WebStorm

    WebStorm 是一个支持 Node.js,CoffeeScript, TypeScript, Dart, Jade, Sass, LESS and Stylus 这些最新 web 开发技术的集成开 ...

  7. [翻译] Writing Property Editors 编写属性编辑器

    Writing Property Editors 编写属性编辑器   When you select a component in the designer its properties are di ...

  8. DataTables使用总结

    一.使用方法     1.引入JS文件 <script src="js/plugin/datatables/jquery.dataTables.min.js">< ...

  9. 原生态在Hadoop上运行Java程序

    第一种:原生态运行jar包1,利用eclipse编写Map-Reduce方法,一般引入Hadoop-core-1.1.2.jar.注意这里eclipse里没有安装hadoop的插件,只是引入其匝包,该 ...

  10. 【Oracle 12c】最新CUUG OCP-071考试题库(54题)

    54.(12-15) choose the best answer: View the Exhibit and examine the structure of the ORDER_ITEMS and ...