社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Elasticsearch

ELK日志文件分析系统、Logstash、ElasticSearch和Kiabana三个开源工具组成(实例部署过程)

wulimingde • 3 年前 • 129 次点击  

一、 ELK日志文件系统的介绍

ELK是日志系统管理的一款开源的架构,由 Logstash、ElasticSearch和Kiabana三个开源软件组成 。 可以对任何来源,任何类型的日志文件进行分析和可视化的统计整理展示。

二、ElasticSearch的集群安装与搭建

ElasticSearch集群搭建地址:点击前往

软件包安装节点介绍
数量 主机名 地址 版本 安装的软件
第一台 node1 192.168.10.5 Linux7.4 64位 ElasticSearch集群
第二台 node2 192.168.10.6 Linux7.4 64位 ElasticSearch的集群、Kiabana
第三台 apache 192.168.10.7 Linux7.4 64位 Logstash

ELK基于前一篇搭建好的ElasticSearch集群接着搭建

三、Logstash工具的介绍与安装

软件包得下在地址在

ElasticSearch集群搭建地址:点击前往

1、Logstash工具的介绍

Logstash 是一款强大的数据处理工具,它可以实现数据传输,格式处理,格式化输出,还有强大的插件功能,常用于日志处理。

  • Logstash的理念很简单,它只做3件事情:
  1. Collect:数据输入
  2. Enrich:数据加工,如过滤,改写等
  3. Transport:数据输出

LogStash的主要组件:

  • Shipper:日志收集者 。负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可;
  • Indexer:日志存储者。负责接收日志并写入到本地文件。
  • Broker:日志Hub。负责连接多个Shipper和多个Indexer
  • Search and Storage:允许对事件进行搜索和存储;
  • Web Interface:基于Web的展示界面
  • 正是由于以上组件在LogStash架构中可独立部署,才提供了更好的集群扩展性

LogStash主机分类:
1)代理主机(agent host):作为事件的传递者(shipper),将各种日志数据发送至中心主机;只需运行Logstash 代理(agent)程序;
2)中心主机(central host):可运行包括中间转发器(Broker)、索引器(Indexer)、搜索和存储器(Search and Storage)、Web界面端(Web Interface)在内的各个组件,以实现对日志数据的接收、处理和存储

2、安装Logstash工具收集apache服务日志和系统日志

1)安装losgstash和apache服务并启动

关闭防火墙和Selinux

[root@localhost ~]# hostnamectl set-hostname apache
[root@localhost ~]# su
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
[root@apache ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
\\上传软件包
[root@apache ~]# rpm -ivh logstash-5.5.1.rpm     
[root@apache ~]# systemctl start logstash.service    
[root@apache ~]# systemctl enable logstash.service
[root@apache ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/  
 //链接logstash命令到环境变量中
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
2 、Logstash命令测试以及将系统日志和apache日志上传到ElasticSearch集群
1)Logstash命令测试

[root@apache opt]# logstash -e ‘input { stdin{ } } output { stdout {} }’
参数解释:

  • -f 通过这个选项可以指定logstash的配置文件,根据配置文件重载logstash服务
  • -e后面跟着字符串该字符串可以被当做logstash的配置(如果是””,则默认使用stdin做为输入、stdout作为输出)
    stdin{}和stdout{}输入采用标准输入输出采用标准输出

18:42:57.986 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9601}
www.wodejia.com //手动标准输入
2020-10-29T10:43:14.261Z apache www.wodejia.com //转换标准输出


[root@apache ~]# logstash -e ‘input { stdin{} } output { stdout{ codec=>rubydebug } }’
······················
18:46:34.205 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9601}
www.wodejia.com //手动标准输入
{
“@timestamp” => 2020-10-29T10:46:41.844Z,
“@version” => “1”,
“host” => “apache”, //转换开放式程序语言输出
“message” => “www.wodejia.com”
}


2)收集系统日志和apache日志上传到ElasticSearch集群
[root@apache ~]# cd /etc/logstash/conf.d
[root@apache ~]# chown o+r /var/log/messages  //允许其他用户读取
[root@apache conf.d]# vim system.conf       //上传系统日志配置文件
input {                                  //输入
file{                                         //类型为文件
path => "/var/log/messages"                  //路径
type => "system"                       //类型自定义
start_position => "beginning"       //从开始得位置上传
}
}
output {                                     //输出到
elasticsearch {                                 //转换的服务类型
hosts => ["192.168.10.5:9200"]        //服务得地址名
index => "system-%{+YYYY.MM.dd}"    //创建的索引名和索引格式
}
}
[root@apache conf.d]# vim apache.conf      //编辑apache服务上传日志
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}

}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.10.6:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
     }
}
if [type] == "error" {
elasticsearch{
hosts => ["192.168.10.6:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
         }
     }
}
[root@apache conf.d]# systemctl restart logstash.service  //重启服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
3)测试是否上传成功

在这里插入图片描述

  • 如果apache日志没有成功,可以在浏览器访问一下服务器的http服务。或者重启httpd服务,在浏览器访成功访问一次服务,不然apache成功访问的日志为空,就不会上传。
  • [root@apache conf.d]# logstash -f /etc/logstash/conf.d/apache.conf //重加载配置文件

四、Kiabana工具介绍及安装

1、Kiabana工具介绍

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。

  • Kibana,可以通过各种图表进行高级数据分析及展示。
  • Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态

Kibana主要功能:
1、Elasticsearch无缝之集成。Kibana架构为Elasticsearch定制,可以将任何结构化和非结构化数据加入Elasticsearch索引。Kibana还充分利用了Elasticsearch强大的搜索和分析功能。

2、整合你的数据。Kibana能够更好地处理海量数据,并据此创建柱形图、折线图、散点图、直方图、饼图和地图。

3、复杂数据分析。Kibana提升了Elasticsearch分析能力,能够更加智能地分析数据,执行数学转换并且根据要求对数据切割分块。

4、让更多团队成员受益。强大的数据库可视化接口让各业务岗位都能够从数据集合受益。

5、接口灵活。分享更容易。使用Kibana可以更加方便地创建、保存、分享数据,并将可视化数据快速交流。

6、配置简单。Kibana的配置和启用非常简单,用户体验非常友好。Kibana自带Web服务器,可以快速启动运行。

7、可视化多数据源。Kibana可以非常方便地把来自Logstash、ES-Hadoop、Beats或第三方技术的数据整合到Elasticsearch,支持的第三方技术包括Apache Flume、Fluentd等。

8、简单数据导出。Kibana可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,发现新结果

2、Kibana的安装及配置




    
//上传kibana-5.5.1-x86_64.rpm软件包
[root@node1 ~]# rpm -ivh kibana-5.5.1-x86_64.rpm
[root@node1 ~]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak   //备份配置文件
[root@node1 kibana]# vi kibana.yml       //修改配置文件
server.port: 5601     //kibana侦听的端口   
server.host: "0.0.0.0"   //kibana侦听的地址
elasticsearch.url: "http://192.168.100.5:9200”   //和elasticsearch建立联系
 kibana.index: ".kibana"      //在elasticsearch中添加.kibana索引
[root@node1 kibana]# systemctl start kibana.service  //启动kibana服务
[root@node1 kibana]# systemctl enable kibana.service  //开机启动kibana服务
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

3、使用浏览器检验Kibana是否创建成功

在这里插入图片描述

4、将ElasticSearch中的索引日志添加到Kiabana中统计分析

在这里插入图片描述

  • 产看详细统计分析显示信息
    在这里插入图片描述
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/74758
 
129 次点击