1樓:clearair
我使用了ngx_lua + syslog-ng + elk .
使用ngx_lua可以收集到請求資料與響應資料。
而且可以在最後的log階段執行記錄資料到syslog-ng裡面,這個階段nginx已經響應完資訊了,所以你處理是不會影響這次請求速度的(當然 ngx_lua執行還是有一些消耗的)。
最後就是elk收集syslog-ng的日誌了。
當然了,非常龐大的量 nginx之前也是需要做負載的吧。
2樓:架構師 Neeke
SeasLog作為PHP內建的日誌客戶端,通過配置rsyslog(TCP或UDP)埠將日誌傳送出去;rsyslog可以對接多種儲存,比如ELK。
由於SeasLog可以啟用Buffer、日誌傳送遵守RFC5424規範、重用鏈結等特性,可以使日誌傳送具備良好的效能。
這裡有完整配置手冊:
SeasLog的文件手冊:SeasX/SeasLog如何配置SeasLog的收集:SeasX/SeasLogPHP日誌規範:SeasX/SeasLog
3樓:
講講我們目前用的系統日誌方案。
目前我機器有幾百台,都是容器化(docker)的,寫本地是不行的。第一機器多,第二機器不是固定的。而且機器多應該是要關注整個集群的狀況,而不是關注兩台機器。
兩年前我們是這麼搞的,用elk,所有伺服器都通過rsyslog發到一台日誌伺服器,然後日誌伺服器通過logstash寫到es。
沒過幾個月,就一大堆問題了,日誌伺服器單點,而且logstash因為髒日誌會經常掛,而且es不能做監控。
後來有個同學引進了graylog,因為這個每天划水的他拿了季度之星。30臺graylog集群,graylog替代了日誌伺服器,替代了logstash,最終落地到es。我的服務都是非同步給graylog發訊息。
目前每秒有50000條日誌寫入,對接了幾個大業務的日誌。
當然目前還有問題,就是用來做日誌分析的es,不夠健壯,我有兩次因為查的資料不是熱資料,讓es掛了。
這個是系統日誌方案,僅供參考。
業務日誌,就是那些大資料的架構方案了,很成熟,kafka/storm/hadoop。
4樓:
每次都推送無異於自發性增大IO開銷,其實記錄在本地log就行,rsync定時同步到日誌伺服器(我這是每十分鐘)。開發人員就上這個日誌存放的伺服器去查就可以。比如每個模組有5臺機子,在日誌伺服器上就以01 02 03 這樣分好檔案存放,其餘目錄相同。
使用的技術,無非就是PHP寫入檔案操作,rsync,好像沒別的了。
5樓:卡拉迦迪斯
1. 不明白為什麼問 php高工這個…… 感覺像是架構方面的問題了。
2. 這題目很奇怪啊…… 【1.處理大量請求,2.請求日誌,3.集群自己發請求】
這還有什麼可設計的啊……
nginx接收請求唄,扛不住就上佇列唄 …… 還能咋滴???
佇列也扛不住? 按伺服器/請求劃分佇列, 推到多個佇列裡唄 ??
還扛不住?? 針對伺服器/請求劃分的佇列,再想辦法搞個計數(或者乾脆隨機數),
然後再根據這個數字,劃分到多個佇列裡……
現在有乙個web服務集群,複雜處理龐大的使用者請求,現在急需為此集群新增乙個日誌服務,web服務中的每次請求都會向此日誌服務傳送內容,現在請你設計這個服務,寫出設計思路,所使用的技術,模組劃分等。
如果只傳送一次,那就是記錄請求日誌。內容固定,型別單一。
向X服務傳送內容,說明傳送方不用管;就設計接收方即可。
乙個日誌服務,個人理解,就是接收資料,展示資料兩部分。並且資料需要儲存
儲存快取
memcache/redis
固定儲存
檔案/mongo/mysql/elasticsearch
接收端[複雜龐大]說明資料量大,接收需要考慮效能問題
提公升同時處理能力
處理完成部分後,即返回結果,後續繼續執行
先寫入快取再入庫
常規優化
降低同時處理數量
多程序佇列
多伺服器集群
展示端我的思考邏輯,大概就是這個思路了吧……
@漂洋散人 提到的 【consul集群】不太了解,看了下,好像是個微服務的管理工具。
6樓:丁敬飛
我覺得這個可能就是答案,ELK。https://
blog.csdn.net/wenlixing
110/article/details/56277603
7樓:蔡俊傑
web那邊居然主動推日誌……有必要?峰值來時等著雪崩吧。
有答案說了,用ELK。web那邊別主動推日誌,有什麼事先落地去本地日誌檔案,最靠譜,然後聚合走ELK全家桶。其實E和K跟這個問題沒太大關係,你這問題就是日誌上報聚合,看一下logstash你就理解了,跑個task非同步去做這事,日誌不是web主動推的,web把日誌打在本地檔案就好,大家互相不影響。
高併發系統設計大體都是乙個思路,如果沒有強實時需求,都是多開條task,能非同步就非同步,web請求內儘量減少一些on the fly的狀態依賴,各子系統通過訊息佇列,或者簡單的檔案,進行狀態同步。
8樓:
當下最流行的解決方案就是ELK.
量不大, 就是單純的ELK. 量大一般還會加個Kafka
ELK多種架構及優劣 - CSDN部落格
怎麼樣才算PHP工程師,PHP高階工程師?
一般上了一定規模的公司都會對員工做乙個職稱評級。你所說的phper應該算是初級或者中級,這這個級別的話一般就是一些日常的工作,說白點就是乙個coder,可能懂一點個方面的東西能做事。你說的高階我理解可能就是維護公司的架構。能為coder們指方向的。明確的標準都由公司說了算。我覺得,只要你把平常所學的...
測試工程師面試題,你都遇到過哪些呢?
刀鋒說測試 作為乙個成功指導上千名學員走上軟體測試崗位的我來說。遇到的面試題不說上萬,也至少有成千道!總結歷史輔導的題目發現 一上來就是問你,測試用例設計方法有哪些?你知道什麼是等價類劃分,什麼是邊界值,什麼是場景法?早期甚至連自動化的知識都懶得問你。為什麼?因為測試工程師早期就是簡單的寫testc...
如何評價Unity高階遊戲開發工程師認證?
完全就是笑話,乙個三天一改三年全變的軟體,你跟我說工程師認證?他們公司自己就找不出乙個每次考試都能打滿分的人出來。別的不說,就現在手機上流行的這一大坨各種gpu壓縮影象格式,今年你考了這個,沒準2年後ES4.0出來,壓縮格式統一,一大堆都扔了,有個蛋蛋用。 Light zhang 所有軟體開發方面的...