ELK日志分析

简介

在这里插入图片描述
·日志服务器
提高安全性
集中存放日志
缺陷:对日志分析困难

日志处理步骤

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

Elasticsearch介绍

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

核心概念

接近实时
集群
节点
索引
索引→表→文档
分片和副本

logstash介绍

一款强大数据处理工具
可实现数据传输、格式处理、格式化输出
数据输入、数据加工以及数据输出

主要组件

shipper
lndexer
broker
search and storage
web lnterface

Kibana介绍

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

主要功能

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

部署Elasticsearch

首先配置开局环境,并把需要的压缩包拖入opt下

修改节点名称
[root@localhost opt]# hostnamectl set-hostname node1
[root@localhost opt]# su
[root@node1 opt]# 
[root@node2 opt]# 
rpm包解压
[root@localhost opt]# rpm -ivh elasticsearch-5.5.0.rpm 
重载启动参数,设置为开机自启
[root@localhost opt]# systemctl daemon-reload
[root@localhost opt]# systemctl enable elasticsearch.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.

修改elasticsearch配置文件修改前先备份有一个良好的习惯

备份
[root@localhost opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
修改配置文件
[root@localhost opt]# vim /etc/elasticsearch/elasticsearch.yml
进入set nu显示行数
17 cluster.name: my-elk-cluster  ##17行修改集群名称
23 node.name: node1  ##23行修改节点名称
33 path.data: /data/elk_data  ##修改文件存储目录
37 path.logs: /var/log/elasticsearch/  ##修改日志文件位置
43 bootstrap.memory_lock: false  ##内存加速,不允许交换给swap
55 network.host: 0.0.0.0  ##监听所有端口
59 http.port: 9200  ##监听地址
68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]  ##非广播集群改成节点名称
wq保存
上面保存的文件目录没有,创建路径存放位置
[root@node1 opt]# mkdir -p /data/elk_data
这边会自动给你创建管理账户,要给这个管理账户授权管理elk_data
[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/
[root@node1 opt]# ll /data/
总用量 0
drwxr-xr-x 2 elasticsearch elasticsearch 6 10月 28 14:59 elk_data
之后开启服务查看有没有9200端口(需等待一小会)
[root@node1 opt]# systemctl start elasticsearch.service 
[root@node1 elk_data]# netstat -anpt|grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      3145/java  

浏览器打开20.0.0.41:9200/_cluster/health?pretty查看集群好没好

在这里插入图片描述
服务启动成功接下来把node包上传进去然后把环境安装一下

[root@node2 opt]# yum -y install gcc gcc-c++ make
然后tar zxvf node包cd进入node包./config之后make -j3编译安装
tar  zxvf node-v8.2.1.tar.gz 
cd node-v8.2.1/
./configure
make -j3
make install

之后就是安装前端框架phantomjs
把包拖入opt中

tar解压包然后进入解压完的然后把命令cp到系统能识别的bin中
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node1 opt]# cd phantomjs-2.1.1-linux-x86_64/bin
[root@node1 bin]# cp phantomjs /usr/local/bin

安装可视化

tar zxvf elasticsearch-head.tar.gz 
cd elasticsearch-head/
npm install
修改配置文件
[root@node1 ~]# vi /etc/elasticsearch/elasticsearch.yml
末尾插入
http.cors.enabled:true   ##开启跨域访问支持默认false
http.cors.allow-origin:"*"  ##跨域访问允许的域名地址
重启服务
systemctl restart elasticsearch.service 
然后启动elasticsearch-head服务器
root@node1 ~]# cd /opt
[root@node1 opt]# cd elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &
[1] 49037
[root@node1 elasticsearch-head]# 
> elasticsearch-head@0.0.0 start /opt/elasticsearch-head
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect w.eb server on http://localhost:9100
端口是9100
然后过滤一下9100看看有没有
[root@node1 elasticsearch-head]# netstat -lnupt|grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      49047/grunt  

然后登录20.0.0.41就出现了在这里插入图片描述
要想显示集群
在这里插入图片描述
然后41的命令行输入

curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

这段插入创建了一个test类型的文件然后就建立了一个索引我门刷新一下页面
在这里插入图片描述
之后安装logstash日志数据抓取

在创建一台主机查看java环境安装并安装apache服务并把logstash的opt目录下并rpm解压

yum -y install httpd
systemctl strart httpd
[root@apache conf.d]# 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)
没有就yum -y install java
cd /opt
[root@apache conf.d]# rpm -ivh logstash-5.5.1.rpm ##解压
[root@apache conf.d]# systemctl start logstash.service ##开启日志抓取服务
[root@apache conf.d]# systemctl enable logstash.service ##开机自启
[root@apache conf.d]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/  ##做一个软连接把logstash的命令放入全局的local/bin下能让系统识别
[root@apache conf.d]# logstash -e 'input { stdin{} } output { stdout{} }'  ##在本机测试
15:00:39.521 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
会出先success

接下来要配置logstash配置文件
由三部分组成 input、output、filter
首先messages需要给一个能读的权限

chmod o+r /var/log/messages
[root@apache conf.d]# ll /var/log/messages 
-rw----r--. 1 root root 873107 10月 29 15:01 /var/log/messages
然后配置配置文件

```bash
input {
        file{
         path => "/var/log/messages"  ##路径
         type => "system"  ##分标签
         start_position => "beginning"  ##从开头加载
         }
        }
output {
        elasticsearch {   ##输出到es 
         hosts => ["20.0.0.41:9200"]   ##指向node1或node2
         index => "system-%{+YYYY.MM.dd}"  ##索引名称格式
         }
        }
wq保存
因为修改的配置文件需要刷新一下systemctl restart logstash.service
接下来去刷新20.0.0.41:9100就会看见多了一个文件

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201029150925504.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80ODE5MDg4Nw==,size_16,color_FFFFFF,t_70#pic_center

最后就是配置可视化kibana在node1上面安装网段指向自己
包拖入opt

解压
[root@node1 kibana]# rpm -ivh kibana-5.5.1-x86_64.rpm 
修改配置文件之前先备份养好良好的习惯
[root@node1 kibana]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
[root@node1 kibana]# vi kibana.yml
2 server.port: 5601  ##端口开放5601
7 server.host: "0.0.0.0" ##修改网段允许所有
21 elasticsearch.url: "http://20.0.0.41:9200"  ##es地址
30 kibana.index: ".kibana"  ##添加kibana索引

然后去网页打开20.0.0.41:5601
输入有的名称没有的会提示没有这个索引在这里插入图片描述
然后点第一个就可以可视化的看见信息了在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值