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 配置Filebeat vim /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 elasticsearc 2、systemctl restart logstash 3、systemctl restart kibana 4、/etc/init.d/filebeat start 六、网页测试 http://ip/9100 查看weblog数据库是否创建