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

一、 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命令到环境变量中
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  //重启服务
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服务

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

在这里插入图片描述

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

在这里插入图片描述

  • 产看详细统计分析显示信息
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wulimingde/article/details/109362124