elk日志分析系统(理论+部署)(代码片段)

author author     2023-05-01     287

关键词:

ELK日志分析系统简介

日志服务器

  • 提高安全性
  • 集中存放日志
  • 缺陷
    • 对日志的分析困难

ELK日志分析系统

  • Elasticsearch
  • Logstash
  • Kibana

日志处理步骤

  • 将日志进行集中化管理
  • 将日志格式化( Logstash )并输出到Elasticsearch
  • 对格式化后的数据进行索弓|和存储( Elasticsearch )
  • 前端数据的展示( Kibana )

Elasticsearch介绍

Elasticsearch的概述

  • 提供了一个分布式多用户能力的全文搜索弓|擎

Elasticsearch的概念

  • 接近实时
  • 集群
  • 节点
  • 索引
    • 索引(库)->类型(表)->文档(记录)
  • 分片和副本

Logstash介绍

Logstash介绍

  • 一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
  • 数据输入、数据加工(如过滤,改写等)以及数据输出

LogStash主要组件

  • Shipper
  • Indexer
  • Broker
  • Search and Storage
  • Web Interface

Kibana介绍

Kibana介绍

  • 一个针对Elasticsearch的开源分析及可视化平台
  • 搜索、查看存储在Elasticsearch索弓|中的数据
  • 通过各种图表进行高级数据分析及展示

Kibana主要功能

  • Elasticsearch无缝之 集成
  • 整合数据,复杂数据分析
  • 让更多团队成员受益
  • 接口灵活,分享更容易
  • 配置简单,可视化多数据源
  • 简单数据导出

部署ELK日志分析系统

实验环境

  • node1节点服务器IP地址:192.168.80.128
  • node2节点服务器IP地址:192.168.80.129
  • apache服务器IP地址:192.168.80.800

在node1,node2上安装elasticsearch

[root@node1 ~]# vim /etc/hosts         //配置解析名
192.168.80.128 node1
192.168.80.129 node2
[root@node1 ~]# java -version         //查看是Java是否安装
[root@node1 ~]# mount.cifs //192.168.80.2/LNMP-C7 /mnt/
Password for root@//192.168.80.2/LNMP-C7:  
[root@node1 mnt]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh elasticsearch-5.5.0.rpm         //安装
[root@node1 elk]# systemctl daemon-reload         //重载守护进程
[root@node1 elk]# systemctl enable elasticsearch.service        //开机自动启动
[root@node1 elk]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp elasticsearch.yml elasticsearch.yml.bak      //备份
[root@node1 elasticsearch]# vim elasticsearch.yml        //修改配置文件
cluster.name: my-elk-cluster       //集群名
node.name: node1                   //节点名,第二个节点为node2
path.data: /data/elk_data          //数据存放位置
path.logs: /var/log/elasticsearch/  //日志存放位置
bootstrap.memory_lock: false         //不在启动时锁定内存
network.host: 0.0.0.0                //提供服务绑定的IP地址,为所有地址
http.port: 9200  ##端口号为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]         //集群发现通过单播实现
[root@node1 elasticsearch]# mkdir -p /data/elk_data           //创建数据存放点
[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk_data/     //给权限
[root@node1 elasticsearch]# systemctl start elasticsearch.service        //开启服务
[root@node1 elasticsearch]# netstat -ntap | grep 9200         //查看开启情况
tcp6     0    0 :::9200        :::*          LISTEN      2166/java

技术图片
技术图片

在node1,node2上安装node组件依赖包

[root@node1 elasticsearch]# yum install gcc gcc-c++ make -y       //安装编译工具
[root@node1 elasticsearch]# cd /mnt/elk/
[root@node1 elk]# tar zxvf node-v8.2.1.tar.gz -C /opt/             //解压插件
[root@node1 elk]# cd /opt/node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure                            //配置
[root@node1 node-v8.2.1]# make && make install                   //编译安装

在node1,node2上安装phantomjs前端框架

[root@node1 elk]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/     //解压到/usr/local/src下
[root@node1 elk]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/
[root@node1 bin]# cp phantomjs /usr/local/bin/                //编译系统识别

在node1,node2上安装elasticsearch-head数据可视化

[root@node1 bin]# cd /mnt/elk/
[root@node1 elk]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/       //解压
[root@node1 elk]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm install               //安装

修改配置文件

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml     //末行加入
http.cors.enabled: true                  //开启跨域访问支持,默认为false
http.cors.allow-origin: "*"              //跨域访问允许的域名地址
[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service       //重启
[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &                         //后台运行数据可视化服务
[1] 82515
[root@node1 elasticsearch-head]# netstat -ntap | grep 9100
tcp        0      0 0.0.0.0:9100    0.0.0.0:*      LISTEN      82525/grunt  
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0    0 :::9200              :::*        LISTEN      82981/java

在浏览器上查看健康值状态

技术图片
技术图片

在node1上创建索引

技术图片技术图片

创建索引信息

[root@node2 ~]# curl -XPUT ‘localhost:9200/index-demo/test/1?pretty&pretty‘ -H ‘content-Type: application/json‘ -d ‘"user":"zhangsan","mesg":"hello world"‘

在浏览器中查看

技术图片

在Apache服务器上安装logstash,多elasticsearch进行对接

[root@apache ~]# yum install httpd -y         //安装服务
[root@apache ~]# systemctl start httpd.service        //启动服务
[root@apache ~]# java -version
[root@apache ~]# mount.cifs //192.168.100.8/LNMP-C7 /mnt/       //挂载
Password for root@//192.168.100.8/LNMP-C7:
[root@apache ~]# cd /mnt/elk/
[root@apache elk]# rpm -ivh logstash-5.5.1.rpm        //安装logstash
[root@apache elk]# systemctl start logstash.service 
[root@apache elk]# systemctl enable logstash.service   //设置开机自启
[root@apache elk]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/      //便于系统识别
[root@apache elk]# logstash -e ‘input  stdin  output  stdout ‘        //标准输入输出
The stdin plugin is now waiting for input:
16:58:11.145 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint :port=>9600
www.baidu.com        //输入
2019-12-19T08:58:35.707Z apache www.baidu.com
www.sina.com.cn      //输入
2019-12-19T08:58:42.092Z apache www.sina.com.cn
[root@apache elk]# logstash -e ‘input  stdin  output  stdout codec=>rubydebug  ‘      //使用rubydebug显示详细输出,codec为一种编解码器
The stdin plugin is now waiting for input:
17:03:08.226 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint :port=>9600
www.baidu.com              //格式化的处理

        "@timestamp" => 2019-12-19T09:03:80.267Z,
            "@version" => "1",
                    "host" => "apache",
             "message" => "www.baidu.com"

[root@apache elk]# logstash -e ‘input  stdin  output  elasticsearch  hosts=>["192.168.80.129:9200"]  ‘
##使用logstach将信息写入elasticsearch中
The stdin plugin is now waiting for input:
17:06:46.846 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint :port=>9600
www.baidu.com              //输入信息
www.sina.com.cn

用浏览器查看信息

技术图片
技术图片

将系统日志文件输出到elasticsearch

[root@apache elk]# chmod o+r /var/log/messages            //给其他用户读权限
[root@apache elk]# vim /etc/logstash/conf.d/system.conf     //创建文件
input 
                file
                path => "/var/log/messages"        //输出目录
                type => "system"
                start_position => "beginning"
                

output 
                elasticsearch 
                #输入地址指向node1节点
                hosts => ["192.168.80.129:9200"]
                index => "system-%+YYYY.MM.dd"
                

[root@apache elk]# systemctl restart logstash.service      //重启服务

用数据浏览查看详细信息

技术图片

在node1服务器上安装kibana数据可视化

[root@node1 ~]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm           //安装
[root@node1 elk]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak               //备份
[root@node1 kibana]# vim kibana.yml                     //修改配置文件
server.port: 5601                          //端口号
server.host: "0.0.0.0"                     //监听任意网段
elasticsearch.url: "http://192.168.80.129:9200"             //本机节点地址
kibana.index: ".kibana"                              //索引名称
[root@node1 kibana]# systemctl start kibana.service         //开启服务
[root@node1 kibana]# systemctl enable kibana.service 

浏览器访问kibana

技术图片
技术图片

在apache服务器中对接apache日志文件,进行统计

[root@apache elk]# vim /etc/logstash/conf.d/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.80.129:9200"]
                index => "apache_access-%+YYYY.MM.dd"
                
           
                if [type] == "error" 
                elasticsearch 
                hosts => ["192.168.80.129:9200"]
                index => "apache_error-%+YYYY.MM.dd"
                
        

[root@apache elk]# logstash -f /etc/logstash/conf.d/apache_log.conf        //根据配置文件配置logstach

访问网页信息,查看kibana统计情况

技术图片技术图片

选择management>Index Patterns>create index patterns;创建apache两个日志的信息

技术图片
技术图片
技术图片

震惊全网的elk日志分析系统(齐全详细理论+搭建步骤图释)(代码片段)

ELK一、前言概述与基础理论1.1ELK系统简介1.2ELK日志工作原理1.3Elasticsearch、Logstash、Kibana详细介绍1.3.1Elasticsearch1.3.2Logstash1.3.3Kibana二、ELK日志分析系统搭建2.1实验环境2.2部署Elasticsearch软件(node1和node2都需部署)2.3安装elasti... 查看详情

elk企业级日志分析系统概述及部署(代码片段)

ELK企业级日志分析系统概述及部署一、ELK日志分析系统概述1、ELK简介2、为什么要使用ELK?3、完整日志系统基本特征4、ELK的工作原理5、ELK日志处理步骤二、Elasticsearch概述1、Elasticsearch特性三、LogStash概述1、LogStash主要组件四... 查看详情

elk企业级日志分析系统(代码片段)

ELK企业级日志分析系统一、ELK日志分析系统简介二、使用ELK的原因三、完整日志系统基本特征四、ELK的工作原理五、ELK日志分析系统集群部署5.1ELKElasticsearch集群部署(在Node1、Node2节点上操作)5.1ELKElasticsearch集群部署具... 查看详情

elk企业级日志分析系统(代码片段)

ELK企业级日志分析系统ELK概述ELK简介ELK的作用完整日志系统基本特征ELK的工作原理ELK集群部署ELKElasticsearch集群部署(在Node1、Node2节点上操作)ELKLogstash部署(在Apache节点上操作)ELKKiabana部署(在Node1节点上操... 查看详情

elk企业级日志分析系统(代码片段)

ELK企业级日志分析系统ELK概述ELK简介ELK的作用完整日志系统基本特征ELK的工作原理ELK集群部署ELKElasticsearch集群部署(在Node1、Node2节点上操作)ELKLogstash部署(在Apache节点上操作)ELKKiabana部署(在Node1节点上操... 查看详情

elk日志分析系统(企业级)(代码片段)

目录一.ELK概述1.ELK简介2.使用ELK原因3.完整日志系统基本特征4.ELK的工作原理二.ELK日志分析系统部署节点部署信息1.ELKElasticsearch集群部署(==在Node1、Node2节点上操作==)①环境准备②部署Elasticsearch软件③安装Ela... 查看详情

elk日志分析系统(企业级)(代码片段)

目录一.ELK概述1.ELK简介2.使用ELK原因3.完整日志系统基本特征4.ELK的工作原理二.ELK日志分析系统部署节点部署信息1.ELKElasticsearch集群部署(==在Node1、Node2节点上操作==)①环境准备②部署Elasticsearch软件③安装Ela... 查看详情

日志分析系统elk!(代码片段)

...LKELK基础知识ELK组成ELK处理步骤Elasticsearch核心知识部署ELK日志分析系统配置ES环境部署apache服务器,安装Logstash部署KibanaELK基础知识概述:ELK是一种开源的实时日志分析系统,它能通过日志分析来帮助发现问题,解... 查看详情

日志分析系统elk!(代码片段)

...LKELK基础知识ELK组成ELK处理步骤Elasticsearch核心知识部署ELK日志分析系统配置ES环境部署apache服务器,安装Logstash部署KibanaELK基础知识概述:ELK是一种开源的实时日志分析系统,它能通过日志分析来帮助发现问题,解... 查看详情

elk日志分析系统(代码片段)

ELK日志分析系统一、概述1.简介2.组件二、使用原因三、完整日志系统基本特征四、ELK的工作原理五、ELKElasticsearch集群部署1.环境准备2.部署Elasticsearch软件3.安装Elasticsearch-head插件六、ELKLogstash部署1.更改主机名2.安装Apahce服务࿰... 查看详情

部署elk+kafka+filebeat日志收集分析系统(代码片段)

ELK+Kafka+Filebeat日志系统文章目录ELK+Kafka+Filebeat日志系统1.环境规划2.部署elasticsearch集群2.1.配置es-1节点2.2.配置es-2节点2.3.配置es-3节点2.4.使用es-head插件查看集群状态3.部署kibana4.部署zookeeper4.1.配置zookeeper-1节点4.2.配置zo... 查看详情

elk部署elk+filebeat日志收集分析系统(代码片段)

说明:此安装流程只适用于8.0.0以下的版本1.ElasticSearch部署1.1下载ElasticSearch的wget指令:wgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.4-linux-x86_64.tar.gz1.2解压安装包到指定目录指定解压缩到/usr/ 查看详情

elk服务部署—企业级的日志分析系统(代码片段)

ELK一、概述1.1ELKELK1.2作用1.3完整日志系统基本特征1.4工作原理二、服务部署2.1准备工作2.2环境准备(node)部署Elasticsearch软件安装Elasticsearch-head插件2.3ELKLogstash部署(Apache节点)2.4ELKKiabana部署(Node1)2.5F 查看详情

elk服务部署—企业级的日志分析系统(代码片段)

ELK一、概述1.1ELKELK1.2作用1.3完整日志系统基本特征1.4工作原理二、服务部署2.1准备工作2.2环境准备(node)部署Elasticsearch软件安装Elasticsearch-head插件2.3ELKLogstash部署(Apache节点)2.4ELKKiabana部署(Node1)2.5F 查看详情

elk日志分析概述+实际部署图文超详细步骤(整理了几天)!!!(代码片段)

ELK日志分析系统前言一、ELK日志分析系统1.ELK的组成(Elasticsearch、Logstash、Kibana)2.ELK日志分析系统的处理步骤3.Elasticsearch组件简介(1)接近实时(NRT)(2)集群机制(3)索引(4& 查看详情

日志分析系统elk之elasticsearch(代码片段)

Elasticsearch什么是ELKElasticsearchElasticsearch基础模块elasticsearch应用场景Elasticsearch单节点部署Elasticsearch集群的部署集群简介elasticsearch节点角色集群部署可视化工具cerebro可视化工具elasticsearch-head插件索引、分片和副本Elasticsearch节点优... 查看详情

日志分析系统elk之elasticsearch(代码片段)

Elasticsearch什么是ELKElasticsearchElasticsearch基础模块elasticsearch应用场景Elasticsearch单节点部署Elasticsearch集群的部署集群简介elasticsearch节点角色集群部署可视化工具cerebro可视化工具elasticsearch-head插件索引、分片和副本Elasticsearch节点优... 查看详情

强大的日志查询和统计等需求--->elk企业级日志分析系统(代码片段)

ELK企业级日志分析系统一.ELK概述1.ELK简介2.为什么要使用ELK3.完整日志系统基本特征4.ELK的工作原理二.ELKElasticsearch集群部署(在Node1、Node2节点上操作)三.ELKLogstash部署(在Apache节点上操作)四.ELKKiabana部署(在... 查看详情