ELK日志分析系统

一、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日志分析系统

项目需求分析:
需要两台服务器分别作为elasticsearch服务端和elasticsearch负载端【这台上面要部署logstash服务】
服务端IP地址是:192.168.60.80
负载端IP地址是:192.168.60.90
在部署这个项目的时候会用到主机名,容易忽略

【1】elasticsearch部署
(1)修改服务端和负载端的主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
(2)添加本地解析并关闭防火防护【//以下配置服务端和负载端配置一样】
vim /etc/hosts     
192.168.60.80 node1
192.168.60.90 node2

systemctl stop firewalld
setenforce 0
(3)安装elasticsearch-5.5.0软件【这个需要上传软件包】并加载
rpm -ivh elasticsearch-5.5.0.rpm
systemctl daemon-reload
systemctl enable elasticsearch
(4)修改elasticsearch配置文件
cp /etc/elasticsearch/elasticsearch.yml  /etc/elasticsearch/elasticsearch.yml.bak 
vim /etc/elasticsearch/elasticsearch.yml
17:cluster.name: my-elk-cluster
23:node.name: node1 | node2【在负载端中使用的主机名是node2】
33:path.data: /data/elk_data    【数据文件路径需要手动创建】
37:path.logs: /var/log/elasticsearch  【日志文件存放路径】
43:bootstrap.memory_lock: false   【不在启动的时候锁定内存】
55:network.host: 0.0.0.0                  【任意网段服务】
59:http.port: 9200
68:discovery.zen.ping.unicast.hosts: ["node1", "node2"]    【集群通过单播发现】
(5)创建数据存放路径、修改属主属组和启动
mkdir -p /data/elk_data
chown elasticsearch:elasticsearch /data/elk_data
systemctl start elasticsearch【多启动几次】
netstat -natp | grep 9200
(6)编译安装node软件包
tar zxvf node-v8.2.1.tar.gz
cd node-v8.2.1
yum install -y gcc gcc-c++
./configure
make -j3  【时间较长】
make install
(7)安装phantomjs
yum install -y bzip2【最小化没由bzip2】
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
cp /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin
(8)安装elasticsearch_head
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src
cd /usr/local/src/elasticsearch-head/
npm install
vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
npm run start &【注意启动时候的路径是/usr/local/src/elasticsearch-head/,因为启动时候需要package.json】
netstat -natp | grep 9100
systemctl restart elasticsearch【等待一会时间】
netstat -natp | grep 9200
(9)在浏览器上面访问192.168.60.80:9100就会出现node节点界面
(10)添加数据
先在索引界面中添加新索引index-demon
curl -XPUT '192.168.60.80:9200/index-demon/test/1?pretty&pretty' -H 'content-Type:application/json' -d '{"user":"zhangsan"}'
再次刷新查看
【2】logstash部署
systemctl stop firewalld
setenforce 0
yum install -y httpd
systemctl start httpd
yum install -y java
java -version
rpm -ivh logstash-5.5.1.rpm
ln -s /usr/share/logstash/bin/logstash /usr/local/bin
/usr/share/logstash/bin/system-install /etc/logstash/startup.options systemd【最小化没有自动加载安装systemd管理程序】
/bin/systemctl start logstash.service
cd /etc/logstash/conf.d
vim apache-log.conf
input {
  file{
    path => "/var/log/httpd/access_log"
    type => "access"
    start_position => "beginning"
  }
  file{
    path => "/var/log/httpd/error_log"
    type => "error"
    start_position => "beginning"
  }
}

output {
 if [type] == "access" {
  elasticsearch{
    hosts => ["192.168.60.80:9200"]
    index => "apache_access-%{+YYYY.MM.dd}"
  }
 }
 if [type] == "error" {
  elasticsearch{
    hosts => ["192.168.60.80:9200"]
    index => "apache_error-%{+YYYY.MM.dd}"
  }
 }

}
 logstash -f apache-log.conf   加载配置文件

【3】kibana部署
systemctl stop firewalld
setenforce 0
rpm -ivh kibana-5.5.1-x86_64.rpm
cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
vim /etc/kibana/kibana.yml
2:server.port: 5601
7:server.host: "0.0.0.0"
21:elasticsearch.url: "http://192.168.60.80:9200"
30:kibana.index: ".kibana"

systemctl start kibana.service 
netstat -natp | grep 5601

【4】在浏览器上面访问192.168.60.80:9100会出现负载均衡节点界面和Apache日志索引
访问192.168.60.60:5601会出现kibana日志分析展示界面

【5】补充知识
(1)logstash命令的使用
-f      通过这个选项可以指定logstash的配置文件
-e     后面跟着字符串,该字符串可以被当做logstash的配置【默认使用stdin作为输入,stdout作为输出】
-t     测试配置文件是否正确,然后退出
(2)标准的输入输出
logstash -e 'input { stdin{} } output { stdout{} }'
####连接成功会出现successfully,下面就要直接输入#######
www.baidu.com   
(3)使用rubydebug显示详细输出,codec是一种解码器
logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
####连接成功会出现successfully,下面就要直接输入#######
www.baidu.com   
######唯一的区别是展示出现的结构不同#########
(4)使用logstash将信息写入elasticsearch中
logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.60.80:9200"] } }'
####连接成功会出现successfully,下面就要直接输入#######
www.baidu.com
www.kgc.com
www.tast.com   
########在浏览器上面输入192.168.60.80:9100查看索引信息#######
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值