溫州二井建設(shè)有限公司網(wǎng)站免費(fèi)刷seo
? ? ? 1次訂單量突增問題,導(dǎo)致了有幾個(gè)數(shù)據(jù)沒有錄庫,但是確有支付的記錄,啥玩意,還能有這個(gè)操作,組內(nèi)安排問題定位,解決,一看打出來的日志,只有支付有,生成訂單這邊沒有,就相當(dāng)于是倆眼一抹黑。 處理方案,銷售確定有下訂單后先按照支付的日志,把訂單信息維護(hù)上。
? ? ? 搞在線日志和核心業(yè)務(wù)監(jiān)控,這看linux的日志還是挺費(fèi)事的。
如果我們是在springboot的每個(gè)服務(wù)下面都配置了
?1. 不影響程序和不給程序更多的帶寬消耗,就沒有在xml中直接配置日志同步給es
采用的是本地服務(wù)生成日志后,通過FileBeat去監(jiān)聽指定log文件有變化,就同步數(shù)據(jù)到es中。
這里就要對(duì)所有服務(wù)提供log日志模板:
參考:
log.info("業(yè)務(wù)標(biāo)識(shí) |? ?業(yè)務(wù)操作? |? 主要記錄日志內(nèi)容 : {}", 變化的參數(shù))方式輸出。
log.error("業(yè)務(wù)標(biāo)識(shí) |? ?業(yè)務(wù)操作? |? 主要錯(cuò)誤日志內(nèi)容 : {}", 變化的參數(shù))方式輸出。
?搭建??elasticsearch /?filebeat /?logstash/?kibana服務(wù)
先安裝docker 和docker-compose
version: "2.2"
services:es:image: elasticsearch:7.8.0container_name: elasticsearch ports:- "9200:9200"- "9300:9300"environment:discovery.type: single-node##es的密碼ELASTIC_PASSWORD: changemeES_JAVA_OPTS: "-Xmx512m -Xms256m"volumes:- /mydata/elasticsearch/:/usr/share/elasticsearch/data- /opt/elk/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml- /opt/elk/elasticsearch/plugins:/usr/share/elasticsearch/pluginsls:image: logstash:7.8.0container_name: logstashports:- "5000:5000/tcp"- "5000:5000/udp"- "9600:9600"environment:discovery.type: single-nodeES_JAVA_OPTS: "-Xmx512m -Xms256m"volumes:- /opt/elk/logstach/pipeline:/usr/share/logstash/pipeline- /opt/elk/logstach/logstash.yml:/usr/share/logstash/config/logstash.yml- /opt/elk/logstach/jars:/usr/share/logstash/logstash-core/lib/jars/depends_on:- eskb:image: kibana:7.8.0container_name: kibanaports:- "5601:5601"volumes:- /opt/elk/kibana/kibana.yml:/usr/share/kibana/config/kibana.ymldepends_on:- es
在運(yùn)行docker-compose.yml?
?
?
?然后就是elasticsearch的配置??elasticsearch.yml
## Default Elasticsearch configuration from Elasticsearch base image.
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.license.self_generated.type: trial
xpack.security.enabled: true
xpack.monitoring.collection.enabled: true
logstash.yml? 文件配置
## Default Logstash configuration from Logstash base image.
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://ip:9200" ]
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: 賬號(hào)
xpack.monitoring.elasticsearch.password: 密碼
filebeat.yml? 文件配置
filebeat.inputs:
- type: logenabled: truepaths: - /home/log-info.log # 文件位置
setup.ilm.enabled: false
setup.template.settings:index.number_of_shards: 1output.elasticsearch:hosts: 'ip:9200'username: "賬號(hào)"password: "密碼"indices:- index: 'springboot-%{+yyyy.MM.dd}' # 對(duì)應(yīng)的索引
kibana.yml文件
##Default kibana configuration from Kibana base image.
server.name: kibana
server.host: 0.0.0.0
i18n.locale: "zh-CN"
server.basePath: "/kibana"
elasticsearch.hosts: [ "http://ip:9200" ]
xpack.security.enabled: true
monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: 賬號(hào)
elasticsearch.password: 密碼
登入kibana ,可以查看索引數(shù)據(jù),查看日志,功能比較強(qiáng)大,需要點(diǎn)時(shí)間研究。
?搭建好:
我要加一個(gè)服務(wù)到在線日志系統(tǒng) 流程
以A 服務(wù)為例子
原來看log-info? ? TAIL -F LOG-INO.LOG
_index : a-log-error-* 查看所有a服務(wù)error日志
_index : a-* ?查看所有a服務(wù)info日志
- 到filebeat目錄下修改filebeat.yml 參照已經(jīng)完成的
?
?在配置完filebeat.yml都要重新執(zhí)行filebeat容器
docker run -d --name=filebeat ?--restart=always
-v對(duì)應(yīng)文件映射
elastic/filebeat:7.8.0
最終實(shí)現(xiàn)現(xiàn)在看,根據(jù)時(shí)間查看
后面可以配置告警功能,優(yōu)化日志展示格式。