ELK日志分析平台的搭建以及beats模式的搭建

来源:互联网 发布:广汽丰田面试经验知乎 编辑:程序博客网 时间:2024/06/02 03:57

ELK组成:    - E:是指Elasticsearch,完成数据的存储和检索    - L:是Logstash,完成数据的采集、过滤及解析    - K:Kibana,以WEB方式展示Beats 是轻量型采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据由于ELK日志是开源软件可在官网直接下载:下载链接:Elasticsearch:https://www.elastic.co/cn/downloads/elasticsearch下载链接:Logstash:https://www.elastic.co/cn/downloads/logstash下载链接:Kibana:https://www.elastic.co/cn/downloads/kibana下载链接:Beats :https://www.elastic.co/cn/downloads/beats一、安装Elasticsearch:           1、安装部署 java-1.8.0-openjdk-devel,elasticsearch                     rpm  -ivh  elasticsearch.rpm           2、修改 hosts 文件,保证所有机器通过名称能 ping 通集群中的其他机器                  禁用防火墙 和 selinux                  禁用防火墙 和 selinux                  禁用防火墙 和 selinux           3、修改配置文件 /etc/elasticsearch/elasticsearch.yml                   cluster.name: my-elk01                   network.host: 0.0.0.0           4、启动服务                 systemctl  start  elasticsearc             5、验证                 通过浏览器可以访问任意节点的 http://ip.xx.xx.xx:9200/                 验证集群是否正常,访问http://ip.xx.xx.xx:9200/_cluster/health?pretty #检查集群健康状况                 健康状况:  "cluster_name" : "my-elk01", #集群名称                                     "status" : "green", # 表示正常插件安装: head插件安装         插件地址:git clone git://github.com/mobz/elasticsearch-head.git         head安装需要的插件:node、npm、grunt         使用  node -v   npm  -v  命令查看软件是否安装、如果安装跳过下面,如果未安装:         node下载地址:http://blog.csdn.net/napoay/article/details/nodejs.org/         npm 下载地址:https://www.npmjs.com         安装head插件:                   npm install –g grunt–cli         解压下载head在elasticsearch-head-master下执行:npm install -g cnpm --registry=https://registry.npm.taobao.org (如果报错复制报错信息百度即可)         修改/config/elasticsearch.yml配置文件:(find  /  -name  elasticsearch.yml)即可找到文件         添加两行配置:                                    http.cors.enabled: true               http.cors.allow-origin: "*"         elasticsearch-head-master/Gruntfile.js,找到下面connect属性,新增 hostname: ‘0.0.0.0’: connect: {        server: {            options: {                hostname: '0.0.0.0',                port: 9100,                base: '.',                keepalive: true                     }                  }                 }    在elasticsearch-head-master/下执行grunt server 正常情况下可以正常启动,(如果异常复制报错信息百度即可)二、.logstash的概念及特点。          概念:logstash是一个数据采集、加工处理以及传输(输出)的工具。         特点:             - 所有类型的数据集中处理             - 不同模式和格式数据的正常化             - 自定义日志格式的迅速扩展             - 为自定义数据源轻松添加插件        rpm -ivh logstash.rpm        测试文件:        /etc/logstash/logstash.conf          input{ stdin{} }           filter{  }          output{ stdout{} }  logstash/bin/logstash  -f /etc/logstash/logstash.conf 指定配置文件启动,  如果输入数据能看到返回证明 logstash 安装正确          开始远程日志传输配置:   /etc/logstash/logstash.conf  input{          beats {          port => "5044"          type => "log"                   }              }          filter{          grok{          match => { "message" => "%{COMBINEDAPACHELOG}"}              }                }          output{          elasticsearch {          hosts => ["10.0.74.144:9200"]          index => "weblog"                        }                }        '''(拓展配置文件如没需求可跳过) /etc/logstash/logstash.conf        logstash 数据处理结构                             | -------------------------logstash---------------------------|         {数据源} -->{ input{数据接收} -- filter{数据处理} -- output{数据发送}  } --> {ES集群}                             |--------------------------logstash---------------------------|        布尔值类型:  ssl_enable => true        字节类型:     bytes => "1MiB"        字符串类型:  name => "xkops"        数值类型:     port => 22        数组:            match => ["datetime","UNIX"]        哈希:            options => {key1 => "value1",key2 => "value2"}        编码解码:     codec => "json"        路径:            file_path => "/tmp/filename"        注释:       #        条件判断:        等于:       ==        不等于:     !=        小于:       <        大于:       >        小于等于:   <=        大于等于:   >=        匹配正则:   =~        不匹配正则: !~        包含:        in        不包含:     not in         与:and        或:or        非与:          nand        非或:xor        复合表达式: ()        取反符合:   !()        logstash-file 插件: 从文件读取,在屏幕输出        file插件字段解释:        codec =>  #可选项,默认是plain,可设置其他编码方式。        discover_interval => #可选项,logstash多久检查一下path下有新文件,默认15s。        exclude => #可选项,排除path下不想监听的文件。        sincedb_path => #可选项,记录文件以及文件读取信息位置的数据文件。~/.sincedb_xxxx        sincedb_write_interval => #可选项,logstash多久写一次sincedb文件,默认15s.        stat_interval => #可选项,logstash多久检查一次被监听文件的变化,默认1s。        start_position => #可选项,logstash从哪个位置读取文件数据,默认从尾部,值为:end。初次导入,设置为:beginning。        path => #必选项,配置文件路径,可定义多个。        tags => #可选项,在数据处理过程中,由具体的插件来添加或者删除的标记。        type => #可选项,自定义处理时间类型。比如nginxlog。        '''    三、kibana安装       概念:数据可视化平台工具        特点:           - 灵活的分析和可视化平台           - 实时总结和流数据的图表           - 为不同的用户显示直观的界面           - 即时分享和嵌入的仪表板      kibana的安装配置。        rpm -ivh kibana.rpm四、Filebeat安装 安装: rpm -ivh  filebeat-5.6.4-x86_64.rpm配置Filebeatvim /etc/filebeat/filebeat.yml       filebeat.prospectors:              - input_type: log             paths:             - /var/log/xxxx.log   # 要收集日志的绝对路径、造一些web日志数据放入xxx.log中测试使用            #- /var/log/*.log            #- c:\programdata\elasticsearch\logs\*             output.logstash:               # The Logstash hosts               hosts: ["localhost:5044"]  #logstash的监听端口            五、重启所有服务    1、systemctl  restart  elasticsearc2、systemctl  restart  logstash3、systemctl  restart  kibana    4、/etc/init.d/filebeat start六、网页测试    http://ip/9100  查看weblog数据库是否创建