Les méthodes auxquelles je peux penser jusqu'à présent :
Awk analyse le journal + la sommation conditionnelle et met à jour la base de données.
Mais lorsque la taille du journal est importante, l’efficacité en sera affectée.
Existe-t-il un moyen plus simple ?
Bienvenue pour essayer notre module http_accounting, disponible dans la liste des modules tiers sur le site officiel de nginx~
Parlons de notre plan, le débit est de 1,9kw
1. La réception enregistre le journal de transmission via <img src="/tj.html"/>
2.
ningx
enregistre le journal d'accès detj.html
séparémentningx
单独记录tj.html
的访问日志3.
syslog
定时 1分钟分割一次4.
cronjob
定时1
分钟 处理分析分割好的日志现在我们采用的是1分钟更新一次
3.mysql
数据库,正在打算将当天的数据存储方式放到redis上,而将历史记录放到mongodb
syslog
doit être divisé une fois toutes les minutes🎜 🎜4.cronjob
planifie1
minutes pour traiter et analyser les journaux fractionnés🎜 🎜Maintenant, nous utilisons la base de donnéesmysql
pour être mise à jour une fois par minute. Nous prévoyons de stocker les données de la journée sur redis et les enregistrements historiques surmongodb
🎜.Tant que la bûche est coupée régulièrement, les fichiers traités à chaque fois ne seront pas très volumineux.
Ensuite, j'écris un petit programme pour faire des statistiques, qui est plus efficace.
Si vous avez des exigences de requête plus flexibles, vous pouvez également enregistrer les informations du journal dans la base de données, établir un index basé sur l'heure et les champs nécessaires et interroger directement avec SQL.