一、需求
简单、安全、轻量级、不耗费资源、最好能时时查看日志(需求不大)。
二、选型
方法 | 工具 |
---|---|
日志系统 | Rsyslog,Fluented,ELK,Loki、Logio、SLS |
定时同步 | Scp、Rsync |
文件共享 | SFTP、VSFTP、NFS共享、NAS |
可视化 | Jenkins + Ansible + Shell Or Python Web |
三、分析
1、日志系统
- 如果是中大型系统,不缺资源,不缺经费,那么就可以采用开源的日志系统或者采用阿里云SLS日志系统。
- 可以根据日志规模,应用规模来进行选型,简单的就用Rsyslog、Logio,复杂的就用Fluented、ELK、LoKi。
- 如果使用的是云主机而且不差钱,可以使用阿里云日志系统SLS,还是很好用的,功能也很强大。
2、定时同步
- 如果对实时性要求不高,我们可以Scp或者Rsync脚本定时远程同步,问题就在于间隔时间的确定和来自不同机器的名字相同的文件的区分。
- 可以在每台日志服务器上搭建rsync服务端,进行推送,但如果日志分散的话,需要安装多个服务端,不建议。
3、文件共享
- 可以使用NFS或者NAS,将一块磁盘挂载到所有机器上,然后使用软连接来访问不同的日志。
- 还可以使用基于SSH服务端的SFTP服务,进行权限控制后,将日志目录挂载到用户目录进行日志的下载。
4、可视化
可视化web界面可以使用Jenkins+Ansible+Shell来实现,也可以自己写Python网页来实现,具体实现有待研究。
四、结论
作为一个初创公司的小型系统,由于资源缺乏,日志查询需求不是频繁,也不太需要查看实时日志,故采用SFTP + mount的形式来满足开发查询日志的需求。不额外安装软件,不占用系统资源,配置简单,就很Nice。
五、注意
- 硬链接不能跨分区,硬连接不能链接目录,只能链接文件。
- FTP不支持软连接。
- Mount可以挂载本机的文件目录。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 lxwno.1@163.com