热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RedHat7部署ELK日志分析系统

一、ELK的组成二、工作流程三、环境准备四、正式安装一、ELK的组成ELK由ElasticSearch、Logstash和Kibana三部分组成,每一部分的功能及特点如下图所示:二、工作流程在需

 

一、ELK的组成
二、工作流程
三、环境准备
四、正式安装

 

一、ELK的组成

ELK由ElasticSearch、Logstash和Kibana三部分组成,每一部分的功能及特点如下图所示:

 

二、工作流程

在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,

将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,

可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

而Logstash 社区通常习惯用 shipperbrokerindexer 来描述数据流中不同进程各自的角色。如下图:

 三、环境准备

操作系统:Red Hat Enterprise Linux Server release 7.2
本机IP地址:
192.168.96.128

所需文件及版本:
logstash-2.4.0.tar.gz
kibana-4.6.1-linux-x86_64.tar.gz
elasticsearch-2.4.1.tar.gz

四、正式安装

注意:为了避免影响测试,临时将firewall与selinux关闭。
# systemctl stop firewalld.service # setenforce
0

 4.1 JDK安装

确认系统是否装有JDK,如果系统默认已经装有JDK请忽略此步骤,若没安装请自行安装。

[root@localhost ~]# java -version
openjdk version
"1.8.0_101"
OpenJDK Runtime Environment (build
1.8.0_101-b13)
OpenJDK
64-Bit Server VM (build 25.101-b13, mixed mode)
4.2 Logstash安装
安装官网下载最新版的logstash,地址为https://www.elastic.co/downloads/logstash
[root@localhost ~]# wget https://download.elastic.co/logstash/logstash/logstash-2.4.0.tar.gz
将下载好的文件解压到/usr/local目录下
[root@localhost ~]# tar zxf logstash-2.4.0.tar.gz -C /usr/local/
配置logstash环境变量
[root@localhost ~]# echo "export PATH=\$PATH:/usr/local/logstash-2.4.0/bin/" > /etc/profile.d/logstash.sh
[root@localhost ~]# . /etc/profile
 启动Logstash
通过-e参数指定logstash的配置信息,用于快速测试,直接输出到屏幕。
[root@localhost ~]# logstash -e "input{stdin{}} output{stdout{}}"
hello world                    \\手动输入hello world后,稍等片刻会直接返回如下结果
Settings: Default pipeline workers:
1
Pipeline main started
2016-10-18T06:06:08.873Z localhost.localdomain hello world
通过-e参数指定logstash的配置信息,用于快速测试,以json格式输出到屏幕

[root@localhost ~]# logstash -e 'input{stdin{}} output{stdout{codec => rubydebug}}'
hello world                    \\手动输入hello world后,稍等片刻会以json格式返回如下结果
Settings: Default pipeline workers: 1
Pipeline main started
{
"message" => "hello world",
"@version" => "1",
"@timestamp" => "2016-10-18T06:10:02.765Z",
"host" => "localhost.localdomain"
}

4.3 ElasticSearch下载并安装
[root@localhost ~]#  wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.1/elasticsearch-2.4.1.tar.gz

  [root@localhost ~]# tar zxf elasticsearch-2.4.1.tar.gz -C /usr/local/

修改ElasticSearch的配置文件elasticsearch.yml并做以下修改
[root@localhost ~]# cd /usr/local/elasticsearch-2.4.1/
[root@localhost elasticsearch-2.4.1]# vim config/elasticsearch.yml

编辑和新增以下内容
network.host: 192.168.96.128
启动elasticsearch,发现报错“don't run elasticsearch as root.”
[root@localhost config]# /usr/local/elasticsearch-2.4.1/bin/elasticsearch 
Exception
in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.
...

 出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,需要创建一个

  单独的用户用来运行ElasticSearch 即可解决该问题。

[root@localhost config]# groupadd elsearch
[root@localhost config]# useradd elsearch -g elsearch -p elasticsearch
[root@localhost elasticsearch-2.4.1]# chown -R elsearch:elsearch /usr/local/elasticsearch-2.4.1/
[root@localhost elasticsearch-2.4.1]# su - elsearch            \\切换至新用户


[elsearch@localhost ~]$ cd /usr/local/elasticsearch-2.4.1/bin/
[elsearch@localhost bin]$ ./elasticsearch                   \\再次尝试启动elasticsearch
[2016-10-18 16:08:32,546][INFO ][node ] [Alex] version[2.4.1], pid[71956], build[c67dc32/2016-09-27T18:57:55Z]

...
[2016-10-18 16:08:40,728][INFO ][node ] [Alex] started

 在elasticsearch在2.*新版本中,output标签的host更改为了hosts,编辑配置文件时注意以下参数不要写错。

[root@localhost logstash]# cat logstash_agent.conf 
input {
file {
type
=> "messages"
path
=> ["/var/log/messages"]
}
}
output {
elasticsearch {
hosts
=> "192.168.96.128"
}
}

 4.4 安装elasticsearch插件
Elasticsearch-kopf插件可以查询Elasticsearch中的数据,安装elasticsearch-kopf,只要在你安装Elasticsearch的目录中执行以下命令即可:

[elsearch@localhost elk]$ cd /usr/local/elasticsearch-2.4.1/bin/
[elsearch@localhost bin]$ .
/plugin install lmenezes/elasticsearch-kopf
...

Installed kopf into
/usr/local/elasticsearch-2.4.1/plugins/kopf

    浏览器访问kopf页面查看elasticsearch的数据
  访问链接:http://192.168.96.128:9200/_plugin/kopf/#!/cluster


4.5 安装Kinaba
[root@localhost elk_file]# wget https://download.elastic.co/kibana/kibana/kibana-4.6.1-linux-x86_64.tar.gz

[root@localhost elk_file]# tar zxf kibana
-4.6.1-linux-x86_64.tar.gz -C /usr/local

[root@localhost elk_file]# vim
/usr/local/kibana-4.6.1-linux-x86_64/config/kibana.yml

编辑添加内容:

elasticsearch.url:
"http://192.168.96.128:9200"

 启动kibana

[root@localhost elk_file]# /usr/local/kibana-4.6.1-linux-x86_64/bin/kibana 
log [
18:30:42.720] [info][status][plugin:kibana@1.0.0] Status changed from uninitialized to green - Ready
log [
18:30:42.757] [info][status][plugin:elasticsearch@1.0.0] Status changed from uninitialized to yellow - Waiting for Elasticsearch
log [
18:30:42.778] [info][status][plugin:kbn_vislib_vis_types@1.0.0] Status changed from uninitialized to green - Ready
log [
18:30:42.799] [info][status][plugin:markdown_vis@1.0.0] Status changed from uninitialized to green - Ready

 浏览器访问

http://192.168.96.128:5601/#/settings/indices/?_g=()

使用默认的logstash-*的索引名称,并且是基于时间的,点击“Create”即可。看到如下界面说明索引创建完成。

点击“Discover”,可以搜索和浏览Elasticsearch中的数据。

 


推荐阅读
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细探讨了如何在Docker环境中实现单机部署Redis集群的方法,提供了详细的步骤和配置示例,帮助读者更好地理解和应用这一技术。 ... [详细]
author-avatar
穆羽默然
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有