赞
踩
目录
真机上打开浏览器输入http://192.168.200.13:9100/
真机上打开浏览器输入http://192.168.200.14:9100/
在打开浏览器输入http://192.168.200.13:9100/ 查看索引信息
安装logstash并做一些日志搜集输出到elasticsearch中
登录192.168.200.15 Apache主机 做对接配置
对接Apache主机的Apache 日志文件(访问的、错误的)
L: Logstash
K: Kibana
优点
缺点
①将日志进行集中化管理
②将日志格式化(Logstash)并输出到Elasticsearch
③对格式化后的数据进行索引和存储
④前端数据的展示(Kibana)
Elasticsearch的核心概念
接近时实(NRT)
集群(cluster)
节点(node)
索引(index)
类型(type)
文档(document)
#索引(库)----》类型(表)------》文档(记录)
什么是分片?
为什么要分片?
什么是副本?
为什么要副本?
①结构名称不同
关系型数据库:数据库–>表–>行—>列
Elasticsearch:索引—>类型—>文档---->字段
②ES分布式,传统数据库遍历式索引
ES支持分片和复制,从而方便水平分割和扩展,复制保证可es的高可用与高吞吐。
在es中,当你创建一个索引(数据库)的时候,你可以指定你想要的分片的数量,每个分片本身也是一个功能完善并且独立的索引(数据库),索引可以被防止到集群中的任何节点上。
分片的优点
- 1、允许你水平分割/扩展你的内容容量
- 2、允许你在分片之上进行分布式的,并行的操作,进而提高性能/吞吐量
- 3、分片的分布,它的文档怎么聚合回搜索请求,完全有Elasticsearch管理
③ES采用倒排索引,传统数据库采用B+树索引
④ES没有用户验证和权限控制
⑤ES没有事务的概念,不支持回滚,误删不能恢复
⑥ES免费,完全开源,传统的数据库部分免费
由三个组件组成:Input、Output、Filter Plugin
**Shipper(日志收集):**负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来。通常远程代理端(agent)只需要运行这个组件即可
**Indexer(日志存储):**负责接收日志并写入到本地文件
**Broker(日志Hub):**负责连接多个Shipper和多个Indexer
**Search and Storage:**允许对事件进行搜索和存储
**Web Interface:**基于Web的展示界面
①Elasticsearch无缝之集成
②整合数据
③让更多团队成员收益
④接口灵活,分享容易
⑤配置简单
⑥可视化多数据源
⑦简单数据导出
**1、处理方式灵活:**Elasticsearch是全文索引,具有强大的搜索能力
**2、配置相对简单,**Kibana的配置非常简单,Eslasticsearch则全部使用Json接口,配置也不复杂,Logstash的配置使用模块的方式,配置也相对简单。
**3、检索性高,**ELK架构通常可以达到百亿数据的查询秒级响应
**4、集群线性扩展,**Elasticsearch本身没有单点的挂念,自动默认集群模式,Elasticsearch和Logstash都可以
5、灵活扩展
6、页面美观。
主机名 | ip地址 | 主要软件 | 系统 |
---|---|---|---|
node1 | 20.0.0.55 | ElasticSearh、Kibana | centos7.5 |
node2 | 20.0.0.56 | ElasticSearh | centos7.5 |
apache | 20.0.0.57 | Logstash、Apache | centos7.5 |
日志分析系统原理
- systemctl disable --now firewalld
- setenforce 0
-
- hostnamectl set-hostname {名字}
- java -version
- openjdk version "1.8.0_181"
- OpenJDK Runtime Environment (build 1.8.0_181-b13)
- OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
- cd /opt
- rpm -ivh elasticsearch-5.5.0.rpm
- systemctl daemon-reload
- systemctl enable elasticsearch.service
- cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
- vi /etc/elasticsearch/elasticsearch.yml
- 17/ cluster.name: my-elk-cluster ####集群名字
- 23/ node.name: node1 ####节点名字
- 33/ path.data: /data/elk_data ####数据存放路径
- 37/ path.logs: /var/log/elasticsearch/ ####日志存放路径
- 43/ bootstrap.memory_lock: false ####不在启动的时候锁定内存(前端缓存。与IOPS-性能测试方式,每秒读写次数相关)
- 55/ network.host: 0.0.0.0 ####提供服务绑定的IP地址,0.0.0.0代表所有地址
- 59/ http.port: 9200 ####侦听端口为9200
- 68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"] ####集群发现通过单播实现
- “单播”
grep -v "^#" /etc/elasticsearch/elasticsearch.yml
- mkdir -p /data/elk_data
- chown elasticsearch:elasticsearch /data/elk_data/
- systemctl start elasticsearch.service
- netstat -antp |grep 9200
查看节点信息 用真机的浏览器打开 http://192.168.200.13:9200 有文件打开 下面是节点的信息
查看节点信息 用真机的浏览器打开 http://192.168.200.14:9200 有文件打开 下面是节点的信息
在真机浏览器打开 http://192.168.200.13:9200/_cluster/state?pretty ###检查群集状态信息
在真机浏览器打开 http://192.168.200.13:9200/_cluster/health?pretty ###检查群集健康情况
上述查看集群的方式,及其不方便,我们可以通过安装elasticsearch-head插件后,来管理集群
- 上传node-v8.2.1.tar.gz到/opt
- yum install gcc gcc-c++ make -y
- 编译安装node组件依赖包##耗时比较长 47分钟
- cd /opt
- tar xzvf node-v8.2.1.tar.gz
- cd node-v8.2.1/
- ./configure
- make -j3
- make install
- 上传软件包到/usr/local/src/
- cd /usr/local/src/
- tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
- cd phantomjs-2.1.1-linux-x86_64/bin
- cp phantomjs /usr/local/bin
- cd /usr/local/src/
- tar xzvf elasticsearch-head.tar.gz
- cd elasticsearch-head/
- npm install
- cd ~
- vim /etc/elasticsearch/elasticsearch.yml ####下面配置文件,插末尾##
- http.cors.enabled: true
- http.cors.allow-origin: “*”
systemctl restart elasticsearch
- cd /usr/local/src/elasticsearch-head/
- npm run start & ####切换到后台运行
- netstat -lnupt |grep 9100
- netstat -lnupt |grep 9200
在Elasticsearch 后面的栏目中输入http://192.168.200.14:9200
在Elasticsearch 后面的栏目中输入http://192.168.200.13:9200
索引为index-demo,类型为test,可以看到成功创建
curl -XPUT ‘localhost:9200/index-demo/test/1?pretty&pretty’ -H ‘content-Type: application/json’ -d ‘{“user”:“zhangsan”,“mesg”:“hello world”}’
点击数据浏览–会发现在node1上创建的索引为index-demo,类型为test, 相关的信息
登录主机192.168.200.15
关闭防火墙关闭核心防护
安装Apahce服务(httpd)
- yum -y install httpd
- systemctl start httpd
安装Java环境
java -version
安装logstash
- 上传logstash-5.5.1.rpm到/opt目录下
- cd /opt
- rpm -ivh logstash-5.5.1.rpm ##安装logstash
- systemctl start logstash.service ##启动logstash
- systemctl enable logstash.service
- ln -s /usr/share/logstash/bin/logstash /usr/local/bin/ ##建立logstash软连接
logstash(Apache)与elasticsearch(node)功能是否正常,做对接测试####
Logstash这个命令测试
字段描述解释:
● -f 通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
● -e 后面跟着字符串 该字符串可以被当做logstash的配置(如果是” ”,则默认使用stdin做为输入、stdout作为输出)
● -t 测试配置文件是否正确,然后退出
输入采用标准输入 输出采用标准输出—登录192.168.32.30 在Apache服务器上
logstash agent
① input
② filter
③ output
logstash -e ‘input { stdin{} } output { stdout{} }’
使用rubydebug显示详细输出,codec为一种编解码器
logstash -e ‘input { stdin{} } output { stdout{ codec=>rubydebug } }’
logstash -e ‘input { stdin{} } output { elasticsearch { hosts=>[“192.168.200.13:9200”] } }’
打开浏览器 输入http://192.168.200.13:9100/ 查看索引信息###
多出 logstash-2022.10.10
点击数浏览查看响应的内容
Logstash配置文件主要由三部分组成:input、output、filter(根据需要)
- chmod o+r /var/log/messages
- ll /var/log/messages
systemctl restart logstash.service
打开浏览器 输入http://192.168.200.13:9100/ 查看索引信息
多出 system
在node1主机安装kibana
- 上传kibana-5.5.1-x86_64.rpm 到/usr/local/src目录
- cd /usr/local/src/
- rpm -ivh kibana-5.5.1-x86_64.rpm
- cd /etc/kibana/
- cp kibana.yml kibana.yml.bak
- vim kibana.yml
- 2/ server.port: 5601 #### kibana打开的端口
- 7/ server.host: “0.0.0.0” ####kibana侦听的地址
- 21/ elasticsearch.url: “http://192.168.226.128:9200” ###和elasticsearch建立联系
- 30/ kibana.index: “.kibana” ####在elasticsearch中添加.kibana索引
- systemctl start kibana.service ###启动kibana服务
- systemctl enable kibana.service ###开机启动kibana服务
使用浏览器输入192.168.200.13:5601
- 首次登录创建一个索引 名字:system-* ##这是对接系统日志文件
- Index name or pattern ###下面输入system-*
然后点最左上角的Discover按钮 会发现system-*信息
然后点下面的host旁边的add 会发现右面的图只有 Time 和host 选项了 这个比较友好
- cd /etc/logstash/conf.d/
- touch apache_log.conf
- vim apache_log.conf
- input {
- file{
- path => "/etc/httpd/logs/access_log"
- type => "access"
- start_position => "beginning"
- }
- file{
- path => "/etc/httpd/logs/error_log"
- type => "error"
- start_position => "beginning"
- }
- }
- output {
- if [type] == "access" {
- elasticsearch {
- hosts => ["192.168.200.13:9200"]
- index => "apache_access-%{+YYYY.MM.dd}"
- }
- }
- if [type] == "error" {
- elasticsearch {
- hosts => ["192.168.200.13:9200"]
- index => "apache_error-%{+YYYY.MM.dd}"
- }
- }
- }

/usr/share/logstash/bin/logstash -f apache_log.conf
打开输入http://192.168.200.15
打开浏览器 输入http://192.168.200.13:9100/ 查看索引信息###
能发现
apache_error-2019.04.16 apache_access-2019.04.16
打开浏览器 输入http://192.168.200.13:5601
点击左下角有个management选项—index patterns—create index pattern
----分别创建apache_error-* 和 apache_access-* 的索引
写的很烂,感谢观看~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。