介绍
架构
目标
- 在CentOS7中搭建ELK分布式日志管理;
- 熟悉ElasticSearch 集群配置;
- 熟悉Logstash+FileBeat数据采集配置;
- 熟悉Kibana可视化管理配置;
环境
- VMware
- CentOS7
- Jdk 1.8
- elasticsearch-7.13.3-linux-x86_64.tar.gz
- kibana-7.13.3-linux-x86_64.tar.gz
- logstash-7.13.3-linux-x86_64.tar.gz
- filebeat-7.13.3-linux-x86_64.tar.gz
分析
- 虚拟机节点
ElasticSearch 集群构建
节点 说明 192.168.157.120 ES集群1 192.168.157.121 ES集群2 Logstash + FileBeat 日志采集节点
节点 说明 192.168.157.130 日志节点 192.168.157.131 日志节点 192.168.157.132 日志节点 Kibana 可视化管理
节点 说明 192.168.157.122:5601 可视化地址
约定
- 下载存放目录:/mysoft
- 安装顺序:ElasticSearch -> Kibana -> Logstash + filebeat
ElasticSearch 约定
模块 内容 软件安装位置 /usr/local/elasticsearch 集群端口 9200 集群节点 192.168.157.122 192.168.157.122 集群名称 ES 数据文件存放目录 /usr/local/elasticsearch/data 日志文件存放目录 /usr/local/elasticsearch/logs 用户(非root) elastic 密码(非root) elastic Kibana 约定
模块 内容 软件安装位置 /usr/local/Kibana 本机端口 5601 本机地址 192.168.157.122 ES集群节点 ["http://192.168.157.120:9200","http://192.168.157.121:9200"] 用户(非root) kibana 密码(非root) kibana Logstash +fileBeat 约定
模块 内容 Logstash安装位置 /usr/local/elk/logstash FileBeat安装位置 /usr/local/elk/fileBeat 部署节点 192.168.157.121(这里配置一个收集点) 发送ES节点 ["http://192.168.157.120:9200","http://192.168.157.121:9200"]
ElasticSearch 安装
- 通用操作
- 进入目录
cm /mysoft
- 解压包
tar zxvf elasticsearch-7.13.3-linux-x86_64.tar.gz
- 移动并修改名称
mv elasticsearch-7.13.3 /usr/local/elasticsearch
- jdk问题处理
vi /usr/local/elasticsearch/bin/elasticsearch-env
用户与授权
# 创建用户 useradd elastic # 设置密码 passwd elastic # 赋予用户权限 chown -R elastic:elastic /usr/local/elasticsearch/
配置ES节点-1
#设置集群名称(集群名称,节点之间要保持一致) cluster.name: my-application #设置节点名称(节点名称,集群内要唯一 例:node-1 ,node-2) node.name: node-1 # elasticsearch数据文件存放目录 path.data: /usr/local/elasticsearch/data # elasticsearch日志文件存放目录 path.logs: /usr/local/elasticsearch/logs #对所有IP开放 network.host: 0.0.0.0 # HTTP端口号 http.port: 9200 # ES集群地址 discovery.seed_hosts: ["192.168.157.120", "192.168.157.121"] # ES集群节点 cluster.initial_master_nodes: ["node-1", "node-2"] #跨域配置 #action.destructive_requires_name: true
配置ES节点-2
#设置集群名称(集群名称,节点之间要保持一致) cluster.name: my-application #设置节点名称(节点名称,集群内要唯一 例:node-1 ,node-2) node.name: node-2 # elasticsearch数据文件存放目录 path.data: /usr/local/elasticsearch/data # elasticsearch日志文件存放目录 path.logs: /usr/local/elasticsearch/logs #对所有IP开放 network.host: 0.0.0.0 # HTTP端口号 http.port: 9200 # ES集群地址 discovery.seed_hosts: ["192.168.157.120", "192.168.157.121"] # ES集群节点 cluster.initial_master_nodes: ["node-1", "node-2"] #跨域配置 #action.destructive_requires_name: true
启动ES集群
# 切换用户 su elastic # 要使用 授权用户 elastic 启动 su elastic -l -c "/usr/local/elasticsearch/bin/elasticsearch" # 调试启动 su elastic -l -c "/usr/local/elasticsearch/bin/elasticsearch -d" #后台启动
- 查看状态
netstat -nltp查看端口号
单节点测试
# 分别访问集群节点 http://192.168.157.120:9200/ http://192.168.157.121:9200/
可以看到如下信息,表示单节点安装成功
集群节点测试
# 访问地址 查看集群节点状态 集群列表:http://192.168.157.120:9200/_cat/nodes?v 集群状态:http://192.168.157.120:9200/_cluster/health
可以看到如下信息,表示集群配置安装成功
kibana 安装
安装
cm /mysoft tar zxvf kibana-7.13.3-linux-x86_64.tar.gz mv kibana-7.13.3 /usr/local/kibana
用户与授权
# 创建用户 useradd kibana # 设置密码 passwd kibana # 赋予用户权限 chown -R kibana:kibana /usr/local/kibana/
配置
cd /usr/local/kibana/config/kibana.yml # 配置本机ip server.host: "192.168.157.122" # 配置es集群url elasticsearch.hosts: ["http://192.168.157.120:9200","http://192.168.157.121:9200"]
启动
su kibana #切换用户 cd /usr/local/kibana ./bin/kibana
访问
地址:http://192.168.157.122:5601/app/home/
logstash 安装
安装
cm /mysoft tar zxvf logstash-7.13.3-linux-x86_64.tar.gz mv logstash-7.13.3 /usr/local/logstash
启动
cd /usr/local/logstash ./bin/logstash
配置
案例:配置收集本机elasticsearch日志,然后推给ES。 input { file { # path 可以用/var/log/*.log,/var/log/**/*.log,如果是/var/log则是/var/log/*.log path => "/usr/local/elasticsearch/logs/my-application.log" # 以JSON格式读取日志 codec => "json" # type 通用选项. 用于激活过滤器 type => "elasticsearch" # start_position 选择logstash开始读取文件的位置,begining或者end。 start_position => "beginning" #从文件开始处读写 } } # output plugin 输出插件,将事件发送到特定目标。 output{ elasticsearch { # elasticseach host配置 hosts => ["http://192.168.157.120:9200"] #对日志进行索引归档 index => "es-%{+YYYY.MM.dd}" } # 输出进行格式化,采用Ruby库来解析日志 stdout{codec => rubydebug} }
综合测试
访问kibana可视化
地址:http://192.168.157.122:5601/app/home/
- 测试收集的ES日志
- 配置索引
- 查看ES日志详情
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。