华为云搭建分布式ELK平台

ELK含义

	Elasticsearch : 负责日志检索和存储
	Logstash : 负责日志的收集和分析,处理
	Kibana : 负责日志的可视化

环境准备

	1 es集群 5台 ip:51~55
	2 kibana 1台 ip:56
	3 logstash1台 ip:57

相关安装包与插件

百度云:https://pan.baidu.com/s/1hMUltMKBeOCw6PS8Snl9VQ
提取码:23np

一、 es集群安装

1 设置ip与主机名对应
–配置/etc/hosts

192.168.1.51 es1
192.168.1.52 es2
192.168.1.53 es3
192.168.1.54 es4
192.168.1.55 es5

2 安装jdk
–Elasticsearch 要求至少java7

yum -y install java-1.8.0-openjdk

3 安装ES

yum -y install elasticsearch

4 修改配置文件
–/etc/elasticsearch/elasticsearch.yml

cluster.name: es_cluster #es集群名称
node.name: es1 			 #节点名称(主机名)
network.host: 0.0.0.0    #允许所有主机
discovery.zen.ping.unicast.hosts: ["es-0001","es-0002","es-0003"]   #声明集群里的主机成员,不需要全部写
#主机成员个数:Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):

5 启动服务,开机自启

  systemctl restart elasticsearch
  systemctl enable elasticsearch

6 检测服务是否启动,查看端口

   ss -ntulp | grep 9200
    tcp    LISTEN     0      50     [::]:9200               [::]:*                   users:(("java",pid=1942,fd=195))

   ss -ntulp | grep 9300
   tcp    LISTEN     0      50     [::]:9300               [::]:*                   users:(("java",pid=1942,fd=80))

7 验证集群状态

curl http://192.168.1.51:9200/_cluster/health?pretty(竖直显示)

es集群状态
8 安装插件
–head插件:展现ES集群的拓扑结构,并且可以通过它来索引(Index)和节点(Node)级别的操作
–kkopf插件:提供对ES集群操作的API
–bigdesk插件:集群监控工具,可以汉坎es集群各种状态

cd /usr/share/elasticsearch/bin/
./plugin install file:///tmp/bigdesk-master.zip
./plugin install file:///tmp/elasticsearch-head-master.zip 
./plugin install file:///tmp/elasticsearch-kopf-master.zip 
./plugin list

9 使用POST方式批量导入数据,数据格式位json,url编码使用data-binary导入含有index的json文件

gzip -d logs.jsonl.gz
curl -X POST "http://192.168.1.51:9200/_bulk"  \ 
--data-binary @logs.jsonl

10 访问9200端口,查看是否安装成功(es5上绑定公网IP)
http://139.9.104.239:9200/_plugin/head/
在这里插入图片描述

Kibana服务搭建

1 安装软件包

  yum -y  install  kibana

2 修改配置文件(/opt/kibana/config/kibana.yml)

  server.port: 5601								  #kibana端口
  server.host: "0.0.0.0"                          #允许所有主机
  elasticsearch.url: "http://192.168.1.51:9200"   #ES 集群地址
  kibana.index: ".kibana"                         #索引名称
  kibana.defaultAppId: "discover"                 #默认进去页面
  elasticsearch.pingTimeout: 1500
  elasticsearch.requestTimeout: 30000
  elasticsearch.startupTimeout: 5000

3 启动服务

  systemctl start kibana
  systemctl enable kibana

4 访问
http://139.9.104.239:9200/_plugin/head/
在这里插入图片描述
成功连接ES集群
5 web访问(这里我解绑之前的公网IP,重新绑定在kibana上【节省资源】)

  http://139.9.104.239:5601

web服务器安装filebeat

1 安装filebeat

  yum -y install filebeat

2 修改配置文件

  vim /etc/filebeat/filebeat.yml  
  #注释以下俩行
     elasticsearch
     hosts: ["localhost:9200"]
 
filebeat:
 prospectors:
   -
     paths:
       - /usr/local/nginx/logs/access.log
     input_type: log
     document_type: accesslog
 registry_file: /var/lib/filebeat/registry
output:
 logstash:
   hosts: ["192.168.1.57:5044"]
shipper:
logging:
 files:
   rotateeverybytes: 10485760 # = 10MB

3 启动服务

  systemctl start filebeat
  systemctl enable filebeat

Logstash服务搭建

1 logstash以来Java环境

  yum -y install java-1.8.0-openjdk

2 安装软件包

  yum -y install logstash

3 自定义配置文件
–参考官方手册 官方手册:
http://github.com/logstash-plugins

  vim /etc/logstash/logstash.conf
input{
   beats{
       port => 5044	#filebeat端口
 }
}

filter{
  if [type]=="accesslog"{
       grok {
       match => { "message" => "(?<client_ip>(\d{1,3}\.){3}(\d{1,3})) (?<ident>\S+) (?<auth>\S+) \[(?<time>.*)\] \"(?<verb>\S{3,4}) (?<requst>\S+) (?<proto>[A-Z]+)\/(?<Http_version>[0-9]+\.[0-9]+)\" (?<reponse>\d+) (?<bytes>\d+) \"(?<referer>\S+)\" \"(?<agent>\S+)\"" } #正则表达式获取log日志信息
     }
  }
}

output{
 if [type]=="accesslog"{
   stdout{ codec => "rubydebug" }
   elasticsearch {
       hosts => ["es-0001:9200", "es-0002:9200", "es-0003:9200"]
       index => "weblog"        #logstash索引
       flush_size => 2000		#够2000字节写一次
       idle_flush_time => 10    #空闲10}}
}
  

4 启动验证

  /opt/logstash/bin/logstash -f /etc/logstash/logstash.conf 

5 结果
在这里插入图片描述
如果无数据请多访问几遍web

配置kibana

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值