摘要:點(diǎn)擊前往中文地址先決條件簡單安裝下載地址下載或者其他都可以。版本處理方案新建格式日志文件。配置日志會(huì)隨著配置進(jìn)行生成,結(jié)果如下忽略上述日志內(nèi)容,程序看得懂即可配置推送到需要根據(jù)業(yè)務(wù)場景進(jìn)行配置,現(xiàn)在顯示最簡單的配置。
過去咱們開發(fā)中,對日志這個(gè)環(huán)節(jié)其實(shí)并不太重視,直到有一天,應(yīng)用出現(xiàn)異常,這個(gè)時(shí)候才想起來“日志”,但很可惜,為時(shí)已晚。
咱們做運(yùn)維和開發(fā),除了救火,還需要防火,因此一些防范的意識(shí)也是非常重要的。
效果圖 安裝ELK安裝 ELK 是相對簡單的,但是后期也需要對其進(jìn)行優(yōu)化,適當(dāng)考慮運(yùn)維人力,如果覺得個(gè)人可以折騰的不放可以嘗試。
如果已經(jīng)存在 ELK 環(huán)境,可以直接跳過,進(jìn)行框架日志配置環(huán)節(jié)。
點(diǎn)擊前往: 中文地址
sudo add-apt-repository -y ppa:webupd8team/java sudo apt-get update sudo apt-get -y install oracle-java8-installer
下載地址: elasticsearch
下載 zip 或者其他都可以。
解壓壓縮包。執(zhí)行:
運(yùn)行前請配置好系統(tǒng)參數(shù)。有一定要求,如果啟動(dòng)失敗,仔細(xì)留意錯(cuò)誤信息,對應(yīng)調(diào)整即可。
bin/elasticsearch
驗(yàn)證:
curl http://localhost:9200/
下載地址: kibana
設(shè)置 elasticsearch url 地址,也就是剛才的 localhost:9200 (默認(rèn))
運(yùn)行: ./bin/kibana
打開: http://localhost:5601 訪問面板
下載地址: logstash
配置文件: config/logstash.conf
可參照:
input { file { type => "fastd" path => ["log file path"] } } filter { json { source => "message" } } output { # stdout { codec => rubydebug } elasticsearch { action => "index" hosts => "127.0.0.1:9200" index => "fastd" } }
運(yùn)行: bin/logstash -f config/logstash.conf
stdout 作為標(biāo)準(zhǔn)輸出,可以通過 stdout { codec => rubydebug } 對采集數(shù)據(jù)進(jìn)行調(diào)試。
處理 php 應(yīng)用日志 (FastD 3.2新特性)慶幸我們有這么一個(gè)需求,也能將工作經(jīng)驗(yàn)總結(jié)并形成最終的解決方案分享給大家。
!!3.1 版本處理方案
新建格式日志文件。然后往下按照步驟進(jìn)行處理即可(命名空間自定義,添加到日志配置中的第四個(gè)參數(shù)中)。
getName(), get_local_ip(), null, null, self::V1); } }
配置 app.php
[ [ MonologHandlerStreamHandler::class, "info.log", FastDLoggerLogger::INFO, FastDLoggerFormatterStashFormatter::class, ], ], // code ... ];
日志會(huì)隨著配置進(jìn)行生成,結(jié)果如下:
{"@timestamp":"2017-09-12T15:47:37.189080+08:00","@version":1,"host":"10.1.81.60","message":"sprintf(): Too few arguments","type":"fast-d","channel":"fast-d","level":"ERROR","msg":"sprintf(): Too few arguments","code":0,"file":"/Users/janhuang/Documents/htdocs/me/fastd/fastd/vendor/fastd/routing/src/RouteDispatcher.php","line":78,"trace":["#0 [internal function]: FastDApplication->FastD{closure}(2, "sprintf(): Too ...", "/Users/janhuang...", 78, Array)","#1 /Users/janhuang/Documents/htdocs/me/fastd/fastd/vendor/fastd/routing/src/RouteDispatcher.php(78): sprintf("Middleware %s i...")","#2 /Users/janhuang/Documents/htdocs/me/fastd/fastd/vendor/fastd/routing/src/RouteDispatcher.php(60): FastDRoutingRouteDispatcher->callMiddleware(Object(FastDRoutingRoute), Object(FastDHttpServerRequest))","#3 /Users/janhuang/Documents/htdocs/me/fastd/fastd/src/Application.php(142): FastDRoutingRouteDispatcher->dispatch(Object(FastDHttpServerRequest))","#4 /Users/janhuang/Documents/htdocs/me/fastd/fastd/src/Application.php(205): FastDApplication->handleRequest(Object(FastDHttpServerRequest))","#5 /Users/janhuang/Documents/htdocs/me/fastd/fastd/tests/app/web/index.php(15): FastDApplication->run()","#6 {main}"]}
忽略上述日志內(nèi)容,程序看得懂即可
配置 logstash 推送到 elasticsearch.
config/logstash.conf, 需要根據(jù)業(yè)務(wù)場景進(jìn)行配置,現(xiàn)在顯示最簡單的配置。
input { file { type => "fastd" path => ["log file path"] } } filter { json { source => "message" } } output { elasticsearch { action => "index" hosts => "127.0.0.1:9200" index => "fastd" } }
配置無誤后,開啟日志采集
./bin/logstash -f path/to/logstash.conf
每當(dāng)日志刷新新增的時(shí)候,agent 就會(huì)將日志采集推送到 elasticsearch. 如果覺得 ELK 會(huì)有卡頓或者性能問題,可能嘗試結(jié)合 kafka 進(jìn)行優(yōu)化。
打開: http://127.0.0.1:5601/,即可看到剛才 php 應(yīng)用產(chǎn)生的日志。
總結(jié)如果 php 應(yīng)用發(fā)生問題,異常而又無法第一時(shí)間發(fā)現(xiàn)的時(shí)候,日志可能是一個(gè)很好的切入點(diǎn),當(dāng)機(jī)器越來越多,應(yīng)用越來越廣泛的時(shí)候,日志可能會(huì)大量消耗人力,這個(gè)時(shí)候我們不得不去想辦法,一方面解決人力問題,一方面需要提高應(yīng)用質(zhì)量。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/25826.html
摘要:的展示非常炫酷,絕對是運(yùn)維提升逼格的一大利器。另外的可視化功能比強(qiáng)得多,而且以上版本將集成報(bào)警功能。它由寫成,著力于高性能地查詢與存儲(chǔ)時(shí)序型數(shù)據(jù)。被廣泛應(yīng)用于存儲(chǔ)系統(tǒng)的監(jiān)控?cái)?shù)據(jù),行業(yè)的實(shí)時(shí)數(shù)據(jù)等場景。 原有監(jiān)控系統(tǒng) showImg(https://segmentfault.com/img/remote/1460000011082384); 整個(gè)系統(tǒng)以 Graphite (carbon ...
摘要:最佳實(shí)踐一構(gòu)建是一個(gè)專門針對應(yīng)用層而生的一個(gè)應(yīng)用框架,提供良好的中間件,路由以及支持?jǐn)U展運(yùn)行,從而具體良好的性能條件。手動(dòng)創(chuàng)建添加路由地址調(diào)用完成最第一個(gè)路由。緩存也是一個(gè)前置中間件,使用方式與日常操作保持一致。 FastD 最佳實(shí)踐一: 構(gòu)建 API FastD 是一個(gè)專門針對 API 應(yīng)用層而生的一個(gè) PHP 應(yīng)用框架,提供良好的中間件,路由以及支持 swoole 擴(kuò)展運(yùn)行,從而具...
摘要:我們需要將業(yè)務(wù)或服務(wù)放置在網(wǎng)關(guān)背后,由網(wǎng)關(guān)統(tǒng)一處理請求入口,本身由多個(gè)入口的處理變成了一個(gè)入口,由網(wǎng)關(guān)進(jìn)行統(tǒng)一調(diào)度。網(wǎng)關(guān)負(fù)責(zé)來搞這些事情,你只需要知道網(wǎng)關(guān)就好了。 構(gòu)建完成 API 服務(wù),配置中心之后,架構(gòu)圖大致如下: showImg(https://segmentfault.com/img/remote/1460000010676395); 我們?yōu)楹涡枰W(wǎng)關(guān) 引用 別人 的一句話: ...
摘要:過去專門做了一篇文檔來構(gòu)建配置中心,基于的配置中心。環(huán)境要求及構(gòu)建步驟可參考搭建配置中心隨著業(yè)務(wù)增長,部署的機(jī)器可能會(huì)隨著增長,增加配置難度和維護(hù)難度。最終架構(gòu)圖如下無論擴(kuò)展多少個(gè)業(yè)務(wù)應(yīng)用,僅需要一個(gè)配置中心即可完成多處配置修改。 過去專門做了一篇文檔來構(gòu)建配置中心,基于 zookeeper 的配置中心。 環(huán)境要求及構(gòu)建步驟可參考: QConf搭建配置中心 隨著業(yè)務(wù)增長,部署的機(jī)器可能...
摘要:調(diào)整配置文件在選項(xiàng)中,追加即可。有了以上系統(tǒng)常規(guī)監(jiān)控日志集中分析應(yīng)用調(diào)用鏈監(jiān)控,我們的業(yè)務(wù)就可以變得更加透明,清晰,可控。相關(guān)文章最佳實(shí)踐四構(gòu)建系統(tǒng)可視化監(jiān)控最佳實(shí)踐五構(gòu)建日志分析 zipkin是一個(gè)開放源代碼分布式的跟蹤系統(tǒng),由Twitter公司開源,它致力于收集服務(wù)的定時(shí)數(shù)據(jù),以解決微服務(wù)架構(gòu)中的延遲問題,包括數(shù)據(jù)的收集、存儲(chǔ)、查找和展現(xiàn)。它的理論模型來自于Google Dappe...
閱讀 3788·2021-10-14 09:43
閱讀 3383·2021-08-25 09:38
閱讀 675·2019-08-30 15:55
閱讀 1467·2019-08-30 13:05
閱讀 2299·2019-08-29 16:05
閱讀 569·2019-08-29 12:58
閱讀 2868·2019-08-29 12:34
閱讀 3300·2019-08-26 12:15