强大的ELK日志分析系统!

强大的ELK日志分析系统!ELK 日志分析系统一 ELK 日志分析系统简介 1 日志服务器的优缺点 2 ELK 简介 3 Logstash 管理包含四种工具 4 elk 工作原理二 Elasticsearc 介绍三 Elasticsear

大家好,欢迎来到IT知识分享网。

ELK日志分析系统

一.ELK日志分析系统简介

1.日志服务器的优缺点

2.ELK简介

日志简化分析的管理工具,由Elasticsearch(ES)、Logstash、Kibana三个开源工具组成,官方网站: https://www.elastic.co/products

3.Logstash管理包含四种工具

4.elk工作原理

ELK工作原理展示图:

【APPServer集群】→→【logstash Agent 采集器】→→【ElasticSearch Cluster】→→【Kibana Server】→→【Browser】

二.Elasticsearch介绍

三.Elasticsearch的基础核心概念:

1.接近实时(NRT)

elasticsearch是一个接近实时的搜索平台,这意味着,从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)

2.集群(cluster)

es 具有集群机制,节点通过集群名称加入到集群中,同时在集群中的节点会有一个自己的唯一身份标识(自己的名称)

3.节点(node)

节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。

像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。当然,你可以自己定义。该名字也很重要,在集群中用于识别服务器对应的节点。

4.索引(index)

5.类型(type)

6.文档(document)

索引(库)——》类型(表)——》文档(字段)

7.分片和副本(shards & replicas)

阐述es做为搜索引擎为啥这么快

(1)分片的两个最主要原因:a. 水平分割扩展,增大存储量 b. 分布式并行跨分片操作,提高性能和吞吐量

分布式分片的机制和搜索请求的文档如何汇总完全是由elasticsearch控制的,这些对用户而言是透明的。

四.logstash介绍

1.logStash的主要组件:

●Shipper:日志收集者 。负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常,远程代理端(agent)只需要运行这个组件即可;

●Indexer:日志存储者。负责接收日志并写入到本地文件。

●Broker:日志Hub。负责连接多个Shipper和多个Indexer

●Search and Storage:允许对事件进行搜索和存储;

●Web Interface:基于Web的展示界面

正是由于以上组件在LogStash架构中可独立部署,才提供了更好的集群扩展性

2.LogStash主机分类:

●代理主机(agent host):作为事件的传递者(shipper),将各种日志数据发送至中心主机;只需运行Logstash 代理(agent)程序;

五.Kibana介绍

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在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可以方便地导出感兴趣的数据,与其它数据集合并融合后快速建模分析,直观的发现新结果。

六.部署elk日志文件系统

1.实验准备

配置和安装ELK日志分析系统,安装集群方式,2个elasticsearch节点,并监控apache服务器日志

2.部署elasticsearch集群

1)配置elasticsearch环境

node1、node2配置elasticsearch环境

[root@localhost ~]# hostnamectl set-hostname node1 [root@localhost ~]# su [root@node1 ~]# vim /etc/hosts #添加本地映射 192.168.226.128 node1 192.168.226.129 node2 [root@node1 ~]# java -version #查看java版本 openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) [root@node1 ~]# cd /opt [root@node1 opt]# ls #上传压缩包解压 jdk-8u91-linux-x64.tar.gz rh [root@node1 opt]# tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/ [root@node1 opt]# vim /etc/profile export JAVA_HOME=/usr/local/jdk1.8.0_91 export JRE_HOME=${ 
   JAVA_HOME}/jre export CLASSPATH=.:${ 
   JAVA_HOME}/lib:${ 
   JRE_HOME}/lib export PATH=${ 
   JAVA_HOME}/bin:$PATH [root@node1 opt]# source /etc/profile [root@node1 opt]# java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode) 

2)部署elasticsearch软件

node1、node2上部署elasticsearch软件

(1)安装elasticsearch—rpm包

上传elasticsearch-5.5.0.rpm到/opt目录下

[root@node1 ~]# cd /opt [root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm 
(2)加载系统服务
[root@node1 opt]# systemctl daemon-reload [root@node1 opt]# systemctl enable elasticsearch.service 
(3)更改elasticsearch主配置文件
[root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak [root@node1 opt]# vim /etc/elasticsearch/elasticsearch.yml 17/ cluster.name: my-elk-cluster #集群名字 23/ node.name: node1 #节点名字 33/ path.data: /data/elk_data #数据存放路径 37/ path.logs: /var/log/elasticsearch/ #日志存放路径 43/ bootstrap.memory_lock: false #不在启动的时候锁定内存(前端缓存。与IOPS-性能测试方式,每秒读写次数相关) 55/ network.host: 0.0.0.0 #提供服务绑定的IP地址,0.0.0.0代表所有地址 59/ http.port: 9200 #侦听端口为9200 68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"] #集群发现通过单播实现 [root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml cluster.name: my-elk-cluster node.name: node1 path.data: /data/elk_data path.logs: /var/log/elasticsearch/ bootstrap.memory_lock: false network.host: 0.0.0.0 http.port: 9200 discovery.zen.ping.unicast.hosts: ["node1", "node2"] 
(4)创建数据存放路径并授权
[root@node1 opt]# mkdir -p /data/elk_data [root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/ 
(5)启动elasticsearch是否成功开启
[root@node1 elasticsearch]# systemctl start elasticsearch.service [root@node1 elasticsearch]# netstat -antp |grep 9200 tcp6 0 0 :::9200 :::* LISTEN 64463/java 
(6)查看节点信息

用真机的浏览器打开 http://192.168.206.166:9200 有文件打开 下面是节点的信息

在这里插入图片描述
用真机的浏览器打开 http://192.168.206.177:9200 有文件打开 下面是节点的信息

在这里插入图片描述

(7)集群检查健康和状态

3)安装elasticsearch-head插件

上述查看集群的方式,及其不方便,我们可以通过安装elasticsearch-head插件后,来管理集群

(1)安装依赖环境、编译安装node组件依赖包

上传node-v8.2.1.tar.gz到/opt

[root@localhost opt]# yum install gcc gcc-c++ make -y [root@localhost opt]# cd /opt [root@node1 opt]# tar xzvf node-v8.2.1.tar.gz [root@node1 opt]# cd node-v8.2.1/ [root@node1 node-v8.2.1]# ./configure [root@node1 node-v8.2.1]# make -j3 [root@node1 node-v8.2.1]# make install 
(2)安装phantomjs前端框架

上传软件包到/usr/local/src/

[root@localhost node-v8.2.1]# cd /usr/local/src/ [root@localhost src]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 [root@localhost src]# cd phantomjs-2.1.1-linux-x86_64/bin [root@localhost bin]# cp phantomjs /usr/local/bin 
(3)安装elasticsearch-head数据可视化工具
[root@localhost bin]# cd /usr/local/src/ [root@localhost src]# tar xzvf elasticsearch-head.tar.gz [root@localhost src]# cd elasticsearch-head/ [root@localhost elasticsearch-head]# npm install 

在这里插入图片描述

在这里插入图片描述

(4)修改主配置文件
[root@localhost ~]# cd ~ [root@localhost ~]# vi /etc/elasticsearch/elasticsearch.yml #下面配置文件,插末尾 http.cors.enabled: true #开启跨域访问支持,默认为false http.cors.allow-origin: "*" # 跨域访问允许的域名地址 [root@localhost ~]# systemctl restart elasticsearch 
(5)启动elasticsearch-head 启动服务器
[root@localhost ~]# cd /usr/local/src/elasticsearch-head/ [root@localhost elasticsearch-head]# npm run start & #切换到后台运行 [1]  [root@localhost elasticsearch-head]# > elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head > grunt server Running "connect:server" (connect) task Waiting forever... Started connect web server on http://localhost:9100 [root@localhost elasticsearch-head]# netstat -lnupt |grep 9100 tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN /grunt [root@localhost elasticsearch-head]# netstat -lnupt |grep 9200 tcp6 0 0 :::9200 :::* LISTEN /java 
(6)浏览器验证

真机上打开浏览器输入http://192.168.206.166:9100/

在这里插入图片描述
在这里插入图片描述
创建索引q
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述




在这里插入图片描述
索引为index-demo,类型为test,可以看到成功创建
在这里插入图片描述

打开浏览器输入http://192.168.206.166:9100/ 查看索引信息

在这里插入图片描述
在这里插入图片描述

3.安装logstash(192.168.206.188)

(1)更改主机名

 hostnamectl set-hostname apache 

(2)安装Apahce服务(httpd)

[root@apache ~]# yum -y install httpd [root@apache ~]# systemctl start httpd 

(3)安装Java环境

[root@apache ~]# java -version #如果没有装 安装yum -y install java openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) 

(4)安装logstash

上传logstash-5.5.1.rpm到/opt目录下

[root@apache ~]# cd /opt [root@apache opt]# rpm -ivh logstash-5.5.1.rpm #安装logstash [root@apache opt]# systemctl start logstash.service #启动logstash [root@apache opt]# systemctl enable logstash.service [root@apache opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/ #建立logstash软连接 

(5)logstash(Apache)与elasticsearch(node)功能是否正常,做对接测试

(6)输入采用标准输入 输出采用标准输出— 在Apache服务器上

[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }' 

在这里插入图片描述

(7)使用rubydebug显示详细输出,codec为一种编解码器

[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }' 

在这里插入图片描述

(8)使用logstash将信息写入elasticsearch中 输入 输出 对接

需要手动输入

[root@apache opt]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.206.166:9200"] } }' 

在这里插入图片描述

(9)Apache主机 做对接配置、使用平台收集日志

 [root@apache opt]# chmod o+r /var/log/messages [root@apache opt]# ll /var/log/messages -rw----r--. 1 root root 30402 816 04:12 /var/log/messages 

配置文件中定义的是收集系统日志(system)

[root@apache opt]# vi /etc/logstash/conf.d/system.conf input { 
    file{ 
    path => "/var/log/messages" type => "system" start_position => "beginning" } } output { 
    elasticsearch { 
    hosts => ["192.168.226.128:9200"] index => "system-%{+YYYY.MM.dd}" } } [root@apache opt]# systemctl restart logstash.service 

打开浏览器 输入http://192.168.206.166:9100/ 查看索引信息

在这里插入图片描述

4.node1安装kibana

上传kibana-5.5.1-x86_64.rpm 到/usr/local/src目录

[root@node1 ~]# cd /usr/local/src/ [root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm [root@node1 src]# cd /etc/kibana/ [root@node1 kibana]# cp kibana.yml kibana.yml.bak [root@node1 kibana]# vi kibana.yml 2/ server.port: 5601 # kibana打开的端口 7/ server.host: "0.0.0.0" #kibana侦听的地址 21/ elasticsearch.url: "http://192.168.206.166:9200" #和elasticsearch建立联系 30/ kibana.index: ".kibana" #在elasticsearch中添加.kibana索引 [root@node1 kibana]# systemctl start kibana.service #启动kibana服务 [root@node1 kibana]# systemctl enable kibana.service #开机启动kibana服务 

在这里插入图片描述

5.对接Apache主机的Apache 日志文件(访问的、错误的)

[root@apache opt]# cd /etc/logstash/conf.d/ [root@apache conf.d]# touch apache_log.conf [root@apache conf.d]# vim apache_log.conf 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.206.166:9200"] index => "apache_access-%{+YYYY.MM.dd}" } } if [type] == "error" { 
    elasticsearch { 
    hosts => ["192.168.206.166:9200"] index => "apache_error-%{+YYYY.MM.dd}" } } } [root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf 

在这里插入图片描述

6.查看验证

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/115295.html

(0)
上一篇 2025-12-03 19:20
下一篇 2025-12-03 19:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信