• ELK日志分析系统 


    ELK日志分析系统
    --------------------------------------------------------
    Elasticsearch 端口9200
    实验环境:
         IP地址  主机名               备注
    192.168.200.67         elk-node1       (至少)2G内存
    192.168.200.68         elk-node2      (至少)2G内存
    192.168.200.69         apache             1G内存
    ------------------------------------------------------------------------
    ELK环境的搭建:
    创建多台Elasticsearch节点的目的是存放数据的多个副本,在实际生产环境中,节点的数量可能更多,在本实验中,Elasticsearch 和kibana 集中部署在node1节点上,也可以采用分布式部署,即Logstash、Elasticsearch 、kibana 分别部署在不同服务器上。
    在公司里面,像一些直播公司、地图公司较常用。
    -------------------------------------------------------------------
    环境准备
    所有机器关闭防火墙安全机制
    iptables -F
    setenforce 0
    systemctl stop firewalld
    【1】在2个ELK节点上配置名称解析,通过本地/etc/hosts文件实现
    --------
    67 主机 ELK-node1 配置
    hostname elk-node1
    bash
    vim /etc/hostname
    elk-node1
    vim /etc/hosts
    192.168.200.67 elik-node1
    192.168.200.68 elik-node2
    保存退出
    ---------
    68主机 ELK-node2 配置
    hostname elk-node2
    bash
    vim /etc/hostname
    elk-node2
    vim /etc/hosts
    192.168.200.67 elik-node1
    192.168.200.68 elik-node2
    保存退出
    ---------
    【2】配置2台elk-node 的Java环境
    java -version   //系统自带的环境也可以。
    【3】安装elasticsearch 软件
          【3.1】elasticsearch 可以通过yum安装、源码安装都可以,这里通过rpm包进行安装,2个elk-node节点都要安装
    -------67主机操作------
    rpm -ivh elasticsearch-5.5.0.rpm
    -------68主机操作------
    rpm -ivh elasticsearch-5.5.0.rpm
    ----------------
           【3.2】通过执行命令配置系统服务并设置自动开机启动,2个node都要做 ,并且更改主配置文件
    -------67主机操作------
    systemctl daemon-reload
    systemctl enable elasticsearch.service
    vim /etc/elasticsearch/elasticsearch.yml
     17 cluster.name: my-elk-cluster       #集群名字,名字相同才会分到相同集群
     23 node.name: elk-node1       #节点名字
     33 path.data: /data/elk_data      #数据存放路径
     37 path.logs: /var/log/elasticsearch   #日志存放路径
     43 bootstrap.memory_lock: false       #不在启动时锁定内存
     55 network.host: 0.0.0.0          #提供服务绑定的IP地址,0.0.0.0代表所有
     59 http.port: 9200             #指定监听端口
     68 discovery.zen.ping.unicast.hosts: ["elk-node1", "elk-node2"]  #集群中的实例名
    ##注意(末行添加的内容node1与node2此处不同)
     http.cors.enabled: true         #开启跨区域传送
     http.cors.allow-origin: "*"        #跨区域访问允许的域名地址
    保存退出
    -------68主机操作------
    systemctl daemon-reload
    systemctl enable elasticsearch.service
    vim /etc/elasticsearch/elasticsearch.yml
     17 cluster.name: my-elk-cluster
     23 node.name: elk-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: ["elk-node1", "elk-node2"]
    保存退出
    【4】2台node建数据存放路径并授权
    -------67主机操作------
    mkdir -p /data/elik_data
    chown elasticsearch:elasticsearch /data/elk_data/
    -------68主机操作------
    mkdir -p /data/elik_data
    chown elasticsearch:elasticsearch /data/elk_data/
    【5】2个node节点,启动 elasticsearch并查看是否成功开启。
    -------67主机操作------
    systemctl start elasticsearch.service
    netstat -antp |grep 9200
    #首次启动如果确定步骤,未错的情况下,但是没有端口,等待一会再过滤试一下
    netstat -antp |grep 9200
    -------68主机操作------
    systemctl start elasticsearch.service
    netstat -antp |grep 9200
    elasticsearch默认的对外服务的HTTP端口是9200,节点之间交互的TCP端口是9300
    【6】通过浏览器去访问节点,可以看到节点信息
    192.168.200.67:9200
    192.168.200.68:9200
    【7】查看集群健康情况 可以看到status为green绿色
    http://192.168.200.67:9200/_cluster/health?pretty
    http://192.168.200.68:9200/_cluster/state?pretty
    【8】以上信息查看集群状态不直观,安装elasticsearch-head 插件,以便方便管理集群 源码安装会很慢,这里是二进制安装
       【8.1】安装elasticsearch-head插件(是基于Chrome V8引擎的JavaScript运行环境) ,需要作为独立服务进行安装,需要一个npm命令  2个节点都要进行操作
    -------67主机操作------
    tar xf node-v8.2.1-linux-x64.tar.gz -C /usr/local/
    ln -s /usr/local/node-v8.2.1-linux-x64/bin/node /usr/bin/node
    ln -s /usr/local/node-v8.2.1-linux-x64/bin/npm /usr/local/bin
    node -v   
    v8.2.1    #能够查看版本
    npm -v
    5.3.0    #能够查看版本
    -------68主机操作------
    tar xf node-v8.2.1-linux-x64.tar.gz -C /usr/local/
    ln -s /usr/local/node-v8.2.1-linux-x64/bin/node /usr/bin/node
    ln -s /usr/local/node-v8.2.1-linux-x64/bin/npm /usr/local/bin
    node -v   
    v8.2.1    #能够查看版本
    npm -v
    5.3.0    #能够查看版本
    ------------------
       【8.2】安装elasticsearch-head 作为独立节点并后台启动,
    这将启动运行在9100上的本地web服务器,该端口服务于elasticsearch-head
    -------67主机操作------
    tar xf elasticsearch-head.tar.gz -C /data/elk_data/   #在之前安装elasticsearch时修改配置文件的数据的位置
    cd /data/elk_data/
    chown -R elasticsearch:elasticsearch elasticsearch-head/
    cd /data/elk_data/elasticsearch-head/
    npm install
    #报错为正常现象,忽略即可
    cd _site/
    pwd
    cp app.js{,.bak}
    vim app.js
    4329      this.base_uri=this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.200.67:9200";   ##更改为自身的ip
    保存退出
    npm run start &
    systemctl start elasticsearch.service
    netstat -anpt |grep 9100
    -------68主机操作------
    tar xf elasticsearch-head.tar.gz -C /data/elk_data/   #在之前安装elasticsearch时修改配置文件的数据的位置
    cd /data/elk_data/
    chown -R elasticsearch:elasticsearch elasticsearch-head/
    cd /data/elk_data/elasticsearch-head/
    npm install
    #报错为正常现象,忽略即可
    cd _site/
    pwd
    cp app.js{,.bak}
    vim app.js
    4329       this.base_uri=this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.200.68:9200";   ##更改为自身的ip
    保存退出
    npm run start &
    systemctl start elasticsearch.service
    netstat -anpt |grep 9100
       【8.3】浏览器测试
    http://192.168.200.67:9100
    http://192.168.200.68:9100
        【8.4】为浏览器测试页面插入一个测试索引,索引为index-demo,类型为test ,可以看到成功创建,在一台机器上创建即可,一般工作中不用我们来编写,开发会做成的
    -------67主机操作------
    curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Content-Type:application/json' -d '{ "user": "zhangsan","mesg":"hello world" }'
        【8.5】刷新浏览器页面就可以看到了
    http://192.168.200.67:9100
    【9】安装logstash
    logstash一般部署在需要监控其日志的服务器中,在本实验中,logstash部署在apache服务器上,用于搜集apache服务器的日志信息并发送到elasticsearch中,在正式部署之前,先在node1上部署logstash,logstash也需要java环境。
    【9.1】在elk-node1上安装
    -------67主机操作------
    rpm -ivh logstash-5.5.1rpm
    systemctl start logstash.service
    ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
    【9.2】logstash命令使用
    logstash使用管道的方式进行日志的搜集处理和输出,有点类似linux系统的管道命令  xxx|ccc|ddd ,xxx执行完了会执行ccc,然后执行ddd
    在logstash中,包括了3个阶段
    输入input
    -f:通过这个命令可以指定Logstash的配置文件,根据配置文件配置logstash
    -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“”则默认使用 stdin作为输入,stdout作为输出)
    -t:测试配置文件是否正确,然后退出
    -------67主机操作------
    logstash -e 'input { stdin{} } output { stdout{} }'
    ###出现警告信息不用管,#出现9600时表示成功,上面出错信息可以忽略  ,在进行输入
    www.baidu.com
    www.sina.com.cn
    最后CTRL+C 退出
    ------------
    logstash -e 'input { stdin{} } output { student{ codec=>rubydebug} }'
    #出现9600时表示成功,在进行输入
    www.baidu.com
    www.sina.com.cn
    -------67主机操作------
    logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.200.67:9200"]} }'
    #在里面输入3行
    www.baidu.com
    www.sina.com.cn
    www.google.com
    【10】在浏览器中检测
    192.168.200.67:9100  
    //查看是否有www.baidu.com
    www.sina.com.cn
    www.google.com访问信息
    【11】logstash 配置文件使用
    logstash配置文件基本上由三部分组成,input、output以及用户需要才添加的filter,因此标准的配置文件格式如下:
    input{..}.
    filter{...}
    output{...}
    在每个部分中,也可以指定多个访问方式,例如我想要指定两个日志来源文件,则可以这样写:
    input{
    file{path =>"/var/log/messages"type =>"syslog"}
    file{path =>"/var/log/apache/access.log"type =>"apache"}
    }
    【12】配置收集系统日志
    将system.conf放到/etc/logstash/conf.d/目录中,logstash启动时便会加载
    -------67主机操作------
    cd /etc/logstash/conf.d
    vim system.conf
    input {
     file {
         path => "/var/log/messages"
              type => "system"
         start_position => "beginning"
      }
    }
    output {
     elasticsearch {
      hosts => ["192.168.200.67:9200"]
      index => "system-%{+YYYY.MM.dd}"
     }
    }
    保存退出
    systemctl restart logstash
    cd
    /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf     //加载文件
    【13】在浏览器中进行查看
    192.168.200.67:9100 //查看索引
    【14】安装kibana
    -------67主机操作------
    rpm -ivh kibana-5.5.1-x86_64.rpm
    systemctl enable kibana.service
    vim /etc/kibana/kibana.yml
    2 server.port: 5601
    7 server.host: "0.0.0.0"
    21 elasticsearch.url: "http://192.168.200.67:9200"
    30 kibana.index: ".kibana"
    保存退出
    systemctl start kibana.service
    netstat -lnpt | grep 5601
    【15】在浏览器中进行访问
    192.168.200.67:9100 //查看索引
    http://192.168.200.67:5601  //看到kibana日志分析结果
    -------------------------
    【16】apache访问日志
    -------在主机69操作-------------
     注意:谁被采集日志就需要安装logstash
    iptables -F
    setenforce 0
    systemctl stop firewalld
    hostname apache
    bash
    yum -y install httpd
    java -version
    rpm -ivh logstash-5.5.1.rpm
    systemctl enable logstash.service
    systemctl start httpd.service
    cd  /etc/logstash/conf.d/
    vim apache_log.conf
    input {
     file {
           path => "/var/log/httpd/access_log"   #指定apache的访问日志位置
               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.200.67:9200"]
      index => "apache_access-%{+YYYY.MM.dd}"
            }
       }
        if [type] == "error" {
       elasticsearch {
      hosts => ["192.168.200.67:9200"]
      index => "apache_error-%{+YYYY.MM.dd}"
           }
       }
          }
    保存退出
    /usr/share/logstash/bin/logstash -f apache_log.conf
    ##等出现9600
    在浏览器中访问apache
    192.168.200.69
    在看192.168.200.67:9200就会发现多了一个apache的访问日志
    在kibana中为apache添加索引

    ------------------实验完成!!!!!!!!-------------
     
     
  • 相关阅读:
    Memcache 内存分配策略和性能(使用)状态检查
    C# 中字符串转换成日期
    Task及Mvc的异步控制器 使用探索
    MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等
    从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十三║Vue实战:Vuex 其实很简单
    从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十一║Vue实战:开发环境搭建【详细版】
    vue-router 快速入门
    Vue.js——60分钟快速入门
    五小步让VS Code支持AngularJS智能提示
    AngularJS----服务,表单,模块
  • 原文地址:https://www.cnblogs.com/elin989898/p/12011113.html
Copyright © 2020-2023  润新知