elk日志分析系统

elk介绍

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

ES(nosql非关数据库):存储功能和索引
Logstash(收集日志):到应用服务器上拿取log,并进行格式转换后输出到es中
通过input功能来收集/采集log
filter过滤器:格式化数据
output输出:日志输出到es数据库内
Kibana(展示工具):将es内的数据在浏览器展示出来,通过UI界面展示(可以根据自己的需求对日志进行处理,方便查阅读取)

日志处理过程

Logstash收集AppServer产生的Log,并将log进行集中化管理,将日志格式化(Logstash) 并存放,ElasticSearch集群中,对格式化后的数据进行索引|和存储( Elasticsearch),Kibana则从Es集群中查询数据生成图表,再返回给browsers。

elasticsearch介绍

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfu1web接口。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

logstash介绍

Logstash由JRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVWM)上。不同于分离的代理端( agent)或主机端(server),LogStash可配置单一的代理端(agent)与其它开源软件结合,以实现不同的功能。

kibana介绍

Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard)实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编写代码,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。

搭建elk

搭建elasticsearch

#节点一
#上传elasticsearch至opt目录下
[root@node1 ~]# cd /opt
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm

#加载系统服务
[root@node1 opt]# systemctl daemon-reload 
[root@node1 opt]# systemctl enable elasticsearch.service

#对配置文件做备份后再进行编辑
[root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@node1 opt]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-elk-cluster	#17行取消注释并修改
node.name: node1		#23行取消注释
path.data: /data/elk_data	#33行取消注释并修改数据存放路径
path.logs: /var/log/elasticsearch/	#37行取消注释修改日志存放路径
bootstrap.memory_lock: false	#43行修改为不在启动时锁定内存
network.host: 0.0.0.0		#55行修改服务监听的ip地址
http.port: 9200		#59行取消注释,监听端口为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]	#68行修改节点名,集群的发现通过单播进行
#查看配置信息
[root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node-1
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 opt]# mkdir -p /data/elk_data
[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/

[root@node1 opt]# systemctl start elasticsearch.service 	#由于elasticsearch启动比较慢,所以一开始查看9200端口可以看不到
[root@node1 opt]# netstat -anpt |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      32352/java

#节点二配置
#把软件包上传至opt目录下
[root@node2 ~]# cd /opt
[root@node2 opt]# ls
elasticsearch-5.5.0.rpm  redis-5.0.7  rh
[root@node2 opt]# rpm -ivh elasticsearch-5.5.0.rpm

#对配置文件做备份后再进行编辑
[root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@node1 opt]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: my-elk-cluster	#17行取消注释并修改
node.name: node2		#23行取消注释
path.data: /data/elk_data	#33行取消注释并修改数据存放路径
path.logs: /var/log/elasticsearch/	#37行取消注释修改日志存放路径
bootstrap.memory_lock: false	#43行修改为不在启动时锁定内存
network.host: 0.0.0.0		#55行修改服务监听的ip地址
http.port: 9200		#59行取消注释,监听端口为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]	#68行修改节点名,集群的发现通过单播进行
查看节点信息
[root@node2 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node2
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 opt]# systemctl start elasticsearch.service
[root@node1 opt]# netstat -anpt |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      32352/java

在这里插入图片描述
在这里插入图片描述
查看集群健康信息
在这里插入图片描述
查看集群状态信息
在这里插入图片描述

搭建elasticsearch-head插件管理集群

#在两个节点进行安装
[root@node1 opt]# yum -y install gcc gcc-c++ make
将node-v8.2.1.tar.gz解压到opt目录下
[root@node1 opt]# tar zxvf node-v8.2.1.tar.gz
[root@node1 opt]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure
[root@node1 ~]# make -j3		#make编译时间大概10分钟
[root@node1 ~]# make install

#将elasticsearch-head.tar.gz、phantomjs-2.1.1-linux-x86_64.tar.bz2解压到/usr/local/src/目录下
[root@node1 opt]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
[root@node1 ~]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
[root@node1 ~]# cp phantomjs /usr/local/bin

[root@node1 opt]# tar xzvf elasticsearch-head.tar.gz -C /usr/local/src/
[root@node1 ~]# cd /usr/local/src/elasticsearch-head
[root@node1 elasticsearch-head]# npm install	#使用npm工具进行安装
[root@node1 elasticsearch-head]# cd ~
[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml	#进入配置文件,末尾添加
http.cors.enabled: true				#这两行表示支持跨域支持和域名支持
http.cors.allow-origin: "*"
[root@node1 ~]# systemctl restart elasticsearch
[root@node1 ~]# netstat -anpt |grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      79942/java

[root@node1 ~]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &		#放在后台启动

在节点一上创建索引为index-demo,数据类型为test的数据
[root@node1 elasticsearch-head]# 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
}

访问192.168.218.214:9100
在这里插入图片描述
查看之前创建的数据信息
在这里插入图片描述

搭建logstash和kibana

在httpd服务器上安装
[root@localhost ~]# cd /opt
[root@localhost opt]# rpm -ivh logstash-5.5.1.rpm
[root@localhost opt]# systemctl start logstash.service
[root@localhost opt]# systemctl enable logstash.service
[root@localhost opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/	#创建软连接
[root@localhost opt]# chmod o+r /var/log/messages	#给这个文件添加其他人可读的权限,logstash需要读取这个文件

[root@localhost opt]# vim /etc/logstash/conf.d/system.conf		#这是一个空文件,需要插入内容
input {				#从/var/log/messages中获取数据
        file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
}
output {			#将文件内容输出到elasticsearch上
        elasticsearch {
        hosts => ["192.168.218.214:9200"]
        index => "system-%{+YYYY.MM.dd}"
        }
}


[root@localhost opt]# systemctl restart logstash.service


安装kibana
在节点一进行安装
[root@node1 elasticsearch-head]# 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]# vim kibana.yml
server.port: 5601	#第2行打开kibana的端口
server.host: "0.0.0.0"	#第7行取消注释修改kibana监听端口
elasticsearch.url: "http://192.168.218.214:9200"	#第21行把地址修改为本机ip,用于和elasticsearch建立联系
kibana.index: ".kibana"	#30行取消注释

[root@node1 kibana]# systemctl start kibana.service
[root@node1 kibana]# systemctl enable kibana.service 
[root@node1 kibana]# netstat -anpt |grep 5601
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      82549/node

访问192.168.218.214:9100
在这里插入图片描述
访问192.168.218.214:5601
在这里插入图片描述
在这里插入图片描述
创建完成后点击discover就可以查看系统日志信息了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值