ELK日志分析系统

1、开源工具介绍

        Elasticsearch:是个开源分布式实时分析搜索引擎,建立在全文搜索引擎库Apache Lucene基础上,同时隐藏了Apache Lucene的复杂性。核心概念:(接近实时、群集、节点、索引、分片和副本)

        Logstash:是一个完全开源的工具,主要用于日志收集,同时可以对数据处理,并输出给Elasticsearch。

        Kibana:是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供图形化的日志分析Web界面,可以汇总,分析和搜索重要数据日志。主要功能:(Elasticserach无缝之集成、整合数据、复杂数据分析、接口灵活、分析更容易、配置简单、可视化多数据源、简单数据导出)。

2、实验案例

组件包:

elasticsearch-5.5.0.rpm、elasticsearch-head.tar.gz、node-v8.2.1.tar.gz       

phantomjs-2.1.1-linux-x86_64.tar.bz2、logstash-5.5.1.rpm、kibana-5.5.1-x86_64.rpm

设备

IP

备注

node1

192.168.136.10

Node1  elasticsearch

node2

192.168.136.20

Node2  kibana

node3

192.168.136.30

Node3  logstash+httpd

( 初始化配置 )

三台设备都需要安装java运行环境jdk

[root@node1 ~]# yum -y install java


( 安装ElasticSearch )
分别在node1和node2上添加域名信息

[root@node1 ~]#

cat << EOF >> /etc/hosts
> 192.168.136.10 node1
> 192.168.136.20 node2
> EOF


上传安装包elasticserach-5.5.0.rpm至{node1}和{node2}并进行安装配置

[root@node1 ~]# rpm -ivh elasticsearch-5.5.0.rpm

[root@node1 ~]# vim /etc/elasticsearch/elasticsearch.yml 

cluster.name: my-elk-cluster        #群集名称

node.name: node1                         #节点名称,不同节点修改编号(node2修改为node2)

path.data: /data/elk_data               #日志收集目录

path.logs: /data/elk_log                 #日志存放路径

bootstrap.memory_lock: false      #不锁定内存

network.host: 0.0.0.0                      #监听IP

http.port: 9200                                #监听端口

discovery.zen.ping.unicast.hosts: ["node1", "node2"]  #单播实现群集


创建日志收集和存放目录(node1和node2都要配置)

[root@node1 ~]# mkdir -p /data/elk_data && mkdir -p /data/elk_log

[root@node1 ~]# chown -R elasticsearch:elasticsearch /data

启动服务

[root@node1 ~]# systemctl start elasticsearch
[root@node1 ~]# netstat -anpt 
tcp6       0      0 :::9200                 :::*                    LISTEN      7496/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      7496/java   


( node1配置 )

node1部署Elasticearch-head插件;上传安装包node-v8.2.1.tar.gz、elasticsearch-head.tar.gz、phantomjs-2.1.1-linux-x86_64.tar.bz2

[root@node1 ~]# tar zxf node-v8.2.1.tar.gz 
[root@node1 ~]# cd node-v8.2.1
[root@node1 node-v8.2.1]# ./configure && make && make install


安装phantojs组件

[root@node1 ~]# yum -y install bzip2

[root@node1 ~]# tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2

[root@node1 ~]# mv phantomjs-2.1.1-linux-x86_64 /usr/src/phantomjs2.1

[root@node1 ~]# ln -s /usr/src/phantomjs2.1/bin/* /usr/local/bin/


安装elasticserarch-head组件

[root@node1 ~]# tar zxf elasticsearch-head.tar.gz

[root@node1 ~]# cd elasticsearch-head

[root@node1 ~]# npm install

[root@node1 ~]# 

cat << EOF >> /etc/elasticsearch/elasticsearch.yml

http.cors.enabled: true

http.cors.allow-origin: "*"

http.cors.allow-headers: Authorization,Content-Type

EOF

重启服务Elasticsearch

[root@node1 ~]# systemctl restart elasticsearch

[root@node1 ~]# cd elasticsearch-head
[root@node1 elasticsearch-head]# npm run start &


( node3配置 )

在node3上部署httpd+logstash;上传安装包 logstash-5.5.1.rpm

[root@node3 ~]# yum -y install httpd

[root@node3 ~]# rpm -ivh logstash-5.5.1.rpm

[root@node3 ~]# ln -s /usr/share/logstash/bin/logstash /usr/local/sbin/


编辑自定义提交日志配置

[root@node3 ~]# vim /etc/logstash/conf.d/httpd_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.136.10:9200"]

          index => "httpd_access-%{+YYYY.MM.dd}"

        }

     }

        if [type] == "error" {

        elasticsearch {

          hosts => ["192.168.136.10:9200"]

          index => "httpd_error-%{+YYYY.MM.dd}"

        }

     }

}

启动日志传递

[root@node3 ~]# nohup logstash -f /etc/logstash/conf.d/httpd_log.conf &

验证访问:http://192.168.136.10:9100


( node2配置 )

在node2上安装kibana图形化查看工具;上传安装包kibana-5.5.1-x86.rpm

[root@node2 ~]# rpm -ivh kibana-5.5.1-x86_64.rpm

[root@node2 ~]# vim /etc/kibana/kibana.yml

[root@node2 ~]#

cat << EOF >> /etc/kibana/kibana.yml

server.port: 5601

server.host: "0.0.0.0"

elasticsearch.url: "http://192.168.136.10:9200"

kibana.index: ".kibana"

EOF

[root@node2 ~]# systemctl enable kibana --now

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值