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

author author     2023-05-01     499

关键词:

简介

日志服务器

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

技术图片

ELK日志分析系统

Elasticsearch:存储,索引池
Logstash:日志收集器
Kibana:数据可视化

日志处理步骤

1,将日志进行集中化管理
2,将日志格式化(Logstash)并输出到Elasticsearch
3,对格式化后的数据进行索引和存储(Elasticsearch)
4,前端数据的展示(Kibana)

Elasticsearch的概述

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

Elasticsearch的概念

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

Logstash介绍

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

LogStash主要组件

Shipper
Indexer
Broker
Search and Storage
Web Interface

Kibana介绍

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

Kibana主要功能

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

实验环境

技术图片

1、在node1,node2上安装elasticsearch(操作相同,只演示一台)

[root@node1 ~]# vim /etc/hosts  ##配置解析名
192.168.52.133 node1
192.168.52.134 node2
[root@node1 ~]# systemctl stop firewalld.service  ##关闭防火墙
[root@node1 ~]# setenforce 0    ##关闭增强型安全功能
[root@node1 ~]# java -version  ##查看是否支持Java
[root@node1 ~]# mount.cifs //192.168.100.100/tools /mnt/tools/    ##挂载
Password for root@//192.168.100.100/tools:  
[root@node1 ~]# cd /mnt/tools/elk/
[root@node1 elk]# rpm -ivh elasticsearch-5.5.0.rpm   ##安装
警告:elasticsearch-5.5.0.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升级/安装...
   1:elasticsearch-0:5.5.0-1          ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
 sudo systemctl daemon-reload
 sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
 sudo systemctl start elasticsearch.service
[root@node1 elk]# systemctl daemon-reload  ##重载守护进程
[root@node1 elk]# systemctl enable elasticsearch.service   ##开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/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]# 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"]
[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      83358/java      
[root@node1 elasticsearch]#

查看node1节点信息
技术图片

查看node2节点信息
技术图片

2、在浏览器上检查健康和状态

node1健康检查
技术图片
node2健康检查
技术图片
node1状态
技术图片
node2状态
技术图片

3、在node1,node2上安装node组件依赖包(操作相同,只演示一个)

[root@node1 elasticsearch]# yum install gcc gcc-c++ make -y  ##安装编译工具
[root@node1 elasticsearch]# cd /mnt/tools/elk/
[root@node1 elk]# tar xf 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   ##编译安装

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

[root@node1 node-v8.2.1]# cd /mnt/tools/elk/
[root@node1 elk]# tar xf 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/   ##编译系统识别

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

[root@node1 bin]# cd /mnt/tools/elk/
[root@node1 elk]# tar xf elasticsearch-head.tar.gz -C /usr/local/src/  ##解压
[root@node1 elk]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm install  ##安装
npm WARN elasticsearch-head@0.0.0 license should be a valid SPDX license expression
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.11 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.11: wanted "os":"darwin","arch":"any" (current: "os":"linux","arch":"x64")

added 71 packages in 7.262s
[root@node1 elasticsearch-head]# 

6、修改配置文件

[root@node1 elasticsearch-head]# cd ~
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml
#末行插入
http.cors.enabled: true   ##开启跨域访问支持,默认为false
http.cors.allow-origin: "*"    ##跨域访问允许的域名地址
[root@node1 ~]# systemctl restart elasticsearch.service  ##重启

[root@node1 ~]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &   ##后台运行数据可视化服务
[1] 83664
[root@node1 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@node1 elasticsearch-head]# 
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      83358/java          
[root@node1 elasticsearch-head]# netstat -ntap | grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      83674/grunt         
[root@node1 elasticsearch-head]# 

7、在浏览器上连接并查看健康值状态

node1
技术图片
技术图片
node2
技术图片
技术图片

8、在node1上创建索引

技术图片
技术图片

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

  "_index" : "index-demo",
  "_type" : "test",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : 
    "total" : 2,
    "successful" : 2,
    "failed" : 0
  ,
  "created" : true

[root@node1 ~]# 

技术图片

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

[root@apache ~]# systemctl stop firewalld.service 
[root@apache ~]# setenforce 0
[root@apache ~]# yum install httpd -y   ##安装服务
[root@apache ~]# systemctl start httpd.service   ##启动服务
[root@apache ~]# java -version
[root@apache ~]# mount.cifs //192.168.100.100/tools /mnt/tools/   ##挂载
Password for root@//192.168.100.100/tools:  
[root@apache ~]# cd /mnt/tools/elk/
[root@apache elk]# rpm -ivh logstash-5.5.1.rpm   ##安装logstash
警告:logstash-5.5.1.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:logstash-1:5.5.1-1               ################################# [100%]
Using provided startup.options file: /etc/logstash/startup.options
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Successfully created system startup script for Logstash
[root@apache elk]# systemctl start logstash.service    ##开启服务
[root@apache elk]# systemctl enable logstash.service   ##开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.
[root@apache elk]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/  ##便于系统识别
[root@apache elk]# 

10、将系统日志文件输出到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.13.129:9200"]
                index => "system-%+YYYY.MM.dd"
                

[root@apache elk]# systemctl restart logstash.service  ##重启服务
##也可以用数据浏览查看详细信息

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

[root@node1 ~]# cd /mnt/tools/elk/
[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm   ##安装
警告:kibana-5.5.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kibana-5.5.1-1                   ################################# [100%]

[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.13.129:9200"  ##本机节点地址
kibana.index: ".kibana"   ##索引名称
[root@node1 kibana]# systemctl start kibana.service   ##开启服务
[root@node1 kibana]# systemctl enable kibana.service    ##开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.
[root@node1 elk]# 
[root@node1 elk]# netstat -ntap | grep 5601   ##查看端口
tcp        0      0 127.0.0.1:5601          0.0.0.0:*               LISTEN      84837/node          
[root@node1 elk]# 

12、浏览器访问kibana

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

13、在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.13.129:9200"]
                index => "apache_access-%+YYYY.MM.dd"
                
           
                if [type] == "error" 
                elasticsearch 
                hosts => ["192.168.13.129:9200"]
                index => "apache_error-%+YYYY.MM.dd"
                
        

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

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

只有error日志
技术图片
浏览器访问Apache服务
技术图片
生成access日志
技术图片

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

在kibana创建access访问日志
技术图片
在kibana创建error访问日志
技术图片

查看access日志统计情况
技术图片

查看error日志统计情况
技术图片

实验成功!!!

收集分析线上日志数据实战——elk(代码片段)

本文来自网易云社区作者:田躲躲用户行为统计(UserBehaviorStatistics,UBS)一直是互联网产品中必不可少的环节,也俗称埋点。对于产品经理,运营人员来说,埋点当然是越多,覆盖范围越广越好。通过用户行为分析系统可洞悉用户... 查看详情

运维必备——elk日志分析系统(代码片段)

目录一、ELK日志分析系统概述(1)传统日志服务器的优点与缺点和为什么要使用ELK日志分析系统(2)ELK日志分析系统日志的分类(3)ELK日志分析系统的分类——Elasticsearch:——Logstash:——Kibana&#... 查看详情

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

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

日志分析系统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.ip192.168.200.10elasticsearch+kibanaELK-1192.168.200.20elasticsearch+logstashELK-2192.168.200.30elasticsearchELK-3[root@localhost~]#hostnamectlset-hostnameelk-1[ 查看详情

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

目录前言一、ELK概述1.1ELK日志分析系统1.2ELK中日志处理步骤1.3Elasticsearch概述1.4LogStash概述1.5Kibana概述1.6Filebeat完整日志系统基本特征ELK的工作原理:二、部署ELK日志分析系统2.1配置Elasticsearch环境2.2安装elasticsearch-head插件2.3安装Logst... 查看详情

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

ELK日志分析系统前言:一,ELK日志分析系统的简介1、主要组件2、日志处理步骤二、Elasticsearch介绍1、Elasticsearch是什么2、Elasticsearch专业术语(1)接近实时(NRT)(2)集群(cluster)(3)节点&#x... 查看详情

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

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

ELK日志分析系统一.ELK日志分析系统简介1.日志服务器的优缺点2.ELK简介3.Logstash管理包含四种工具4.elk工作原理二.Elasticsearch介绍三.Elasticsearch的基础核心概念:1.接近实时(NRT)2.集群(cluster)3.节点(node... 查看详情

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

ELK日志分析系统一.ELK日志分析系统简介1.日志服务器的优缺点2.ELK简介3.Logstash管理包含四种工具4.elk工作原理二.Elasticsearch介绍三.Elasticsearch的基础核心概念:1.接近实时(NRT)2.集群(cluster)3.节点(node... 查看详情

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企业级日志分析系统概述及部署(代码片段)

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

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

...述ELK简介ElasticSearchLogstashKiabanaFilebeat为什么要使用ELK完整日志系统基本特征ELK的工作原理环境介绍配置步骤配置Elasticsearch环境配置elasticsearch环境(node1、node2)安装elasticsearch-head插件安装logstashELK概述ELK简介ELK平台是一套... 查看详情

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

...述ELK简介ElasticSearchLogstashKiabanaFilebeat为什么要使用ELK完整日志系统基本特征ELK的工作原理环境介绍配置步骤配置Elasticsearch环境配置elasticsearch环境(node1、node2)安装elasticsearch-head插件安装logstashELK概述ELK简介ELK平台是一套... 查看详情