BLS接入Kibana
BLS接入Kibana步骤
1. 安装kibana
1.1 Helm部署
1.1.1 前提条件
确保云容器服务Kubernetes集群中有以下组件:
- csi-provisioner
- CoreDNS
- Nginx Ingress Controller
1.1.2 操作步骤
(1)创建命名空间(Namespace)
1# 创建namespace
2kubectl create namespace bls-kibana
(2)创建并编辑values.yaml文件,内容如下,请根据实际情况修改,其中bls各区域服务地址见服务域名
1kibana:
2 ingress:
3 # 根据实际安装的ingress controller修改 默认为空,不配置ingress
4 # 根据k8s集群->运维管理->组件管理下搜ingress,查看已安装的ingress控制台确定该值
5 # Nginx Ingress Controller 设置为nginx,目前只支持nginx类型
6 className: "nginx"
7 # 可以为空,如果需要通过域名访问kibana,可以设置该值
8 domain: ""
9
10elasticsearch:
11 # 请根据实际情况修改es的密码,同时也是kibana对应账号为elastic的密码
12 password: "changeme"
13 data:
14 # 云厂商,支持ali和baidu 如果为空,表示不持久化数据,会导致elasticsearch重启后之前的数据丢失
15 cloudVendor: baidu
16
17bls:
18 // 百度云帐号访问密钥
19 ak: ***********************
20 // 百度云帐号访问密钥
21 sk: ***********************
22 // 百度云帐号ID
23 userid: ***********************
24 // bls地址
25 endpoint: http://bls-log.yq.baidubce.com
(3)执行以下命令,使用Helm部署
1# 下载bls-kibana的chart包
2wget -O bls-kibana-1.0.0.tgz https://helm-online.bj.bcebos.com/bls-kibana/bls-kibana-1.0.0.tgz
3# 部署bls-kibana
4helm install bls-kibana bls-kibana-1.0.0.tgz -f values.yaml --namespace bls-kibana
(4)部署完成后,在浏览器中输入http://${ingress地址}, 进入Kibana的页面
1.2 Docker部署
1.2.1 部署Elasticsearch
(1) 在服务器上执行如下命令,部署Elasticsearch
1// 从百度云下载elasticsearch镜像
2sudo docker pull registry.baidubce.com/bce_bls/elasticsearch:8.12.0
3// Elasticsearch数据的存储目录, 请根据实际情况修改。
4sudo mkdir /data
5// 配置权限。
6sudo chmod 777 /data
7// 启动es
8sudo docker run -d --name bls-elasticsearch -p 9200:9200 \
9 -e "discovery.type=single-node" \
10 -e "ES_JAVA_OPTS=-Xms1G -Xmx1G" \
11 -e xpack.security.enabled=false \
12 -v /data:/usr/share/elasticsearch/data \
13 registry.baidubce.com/bce_bls/elasticsearch:8.12.0
(2)部署完成后,请执行如下命令验证Elasticsearch是否部署成功。如果使用公网IP,必须在服务器的安全组规则中添加9200端口
1curl http://${Elasticsearch所在机器的IP地址}:9200
如果返回结果是包含如下的JSON格式数据,则表示Elasticsearch已经成功部署
1.2.2 部署Proxy
(1)在服务器上执行如下命令,部署bls-es-proxy服务
1// 从百度云下载bls-es-proxy镜像
2sudo docker pull registry.baidubce.com/bce_bls/bls-es-proxy:latest
3
4// ES_ENDPOINT es的地址
5// BLS_ENDPOINT bls地址
6// AK 百度云帐号访问密钥
7// SK 百度云帐号访问密钥
8// USER_ID 百度云帐号ID
9sudo docker run -d --name bls-es-proxy \
10 -e ES_ENDPOINT=${Elasticsearch所在机器的IP地址}:9200 \
11 -e BLS_ENDPOINT=${bls日志服务域名} \
12 -e AK=${baiduyunAccessId} \
13 -e SK=${baiduyunAccessKey} \
14 -e USER_ID=${baiduyunAccessKey} \
15 -p 8077:8077 \
16 registry.baidubce.com/bce_bls/bls-es-proxy:latest
(2)部署完成后,请执行如下命令验证bls-es-proxy是否部署成功。如果使用公网IP,必须在服务器的安全组规则中添加8077端口。
1curl http://${bls-es-proxy所在机器的IP地址}:8077
如果返回结果是包含如下的JSON格式数据,则表示bls-es-proxy已经成功部署
1.2.3 部署Kibana
见如下示例,部署Kibana。本文以Kibana 8.12.0版本为例。
1// 从百度云下载kibana镜像
2sudo docker pull registry.baidubce.com/bce_bls/kibana:8.12.0
3
4// ELASTICSEARCH_HOSTS proxy代理的地址
5sudo docker run -d --name bls-kibana \
6 -e ELASTICSEARCH_HOSTS=http://${Proxy所在机器的IP地址}:8077 \
7 -p 5601:5601 \
8 registry.baidubce.com/bce_bls/kibana:8.12.0
部署完成后,在浏览器中输入http://${部署Kibana的IP地址}:5601 进入Kibana页面。如果使用公网IP,必须在服务器的安全组规则中添加9200端口
1.3 物理机部署
1.3.1 下载并安装Elasticsearch
(1)到elasticsearch官网下载elasticsearch安装包(需要8.x版本以上),比如:elasticsearch-8.12.0-linux-x86_64.tar.gz,然后解压安装包:
1tar -zxvf elasticsearch-8.12.0-linux-x86_64.tar.gz
(2)修改config下面的elasticsearch.yml,在最后加入xpack.security.enabled: false,禁用security模块
(3)启动elasticsearch服务
1./bin/elasticsearch -d
1.3.2 找BLS值班获取代理地址
找BLS的值班同学,提供用户帐号ID和es地址信息,BLS的值班同学会提供代理地址,比如:
1http://localhost:8077/xxx
1.3.3 下载并安装Kibana
(1)到elasticsearch官网下载Kibaba安装包,需要和elasticsearch版本一只,比如:kibana-8.12.0-linux-x86_64.tar.gz;然后解压安装包:
1tar -zxvf kibana-8.12.0-linux-x86_64.tar.gz
(2)修改config下面的kibana.yml,将elasticsearch.hosts修改为1.3.2中BLS同学提供的地址
(3)启动kibana服务
1nohup ./bin/kibana &
2.访问Kibana
2.1使用浏览器访问Kibana服务
在浏览器输入:http://localhost:30601/ 在左侧导航栏中,选择Analytics->Discover
重要:使用Kibana和Elasticsearch兼容接口分析日志服务数据时,目前只支持使用Discover和Dashboards这两个模块。
2.2创建数据视图
(1)如果是首次使用,会出现如下界面,可以Dismiss帮助,然后选择创建数据视图
然后给数据视图设置名称,选择对应的BLS日志集,如果default默认日志组下的日志集,直接输入日志集内容右侧选择具体日志集,如果不是default默认日志组,需用$分割BLS日志组和日志集名称,设置好之后保存数据视图到kibana中
重要:这里需要使用全名称,不能使用*通配符模式,时间字段需要保持默认的@timestamp字段
(2)后续再次添加数据视图,可点击Analytics->Discover->数据视图下拉框->创建数据视图,进行创建
2.3使用视图
在页面左上角选择目标视图,在页面右上角选择时间范围,查询日志数据。
3.查询案例
(1)指定字段查询比全文检索查询查询效率更高,推荐指定字段查询
1level: "info"
如下全文检索查询语句可能在某些情况下被翻译成sql字段,concat后再匹配,导致查询效率低下
1"info"
(2)使用精准的匹配比使用*通配查询效率更高
1method:"POST"
如下查询语句使用*通配是不友好的,因为会触发全文扫描,在数据量大的情况下,响应时间会增加。
1method:"PO*"