日期:2014-05-16  浏览次数:20604 次

集中化Linux日志管理系统

?

笔者 工作中 负责 60 台Linux服务器的运维管理工作, 初期 每台机器日志的巡查,是一件相当耗时耗力的工作。后来经过 摸索 ,整理出一个非常适合各种规模的服务器的日志集中化管理,巡查流程,为程序开发人员和运维人员提供单 简单直观 的web界面 巡查所有服务器日志

?

目前这套系统已经投入到我们的生产环境, 实践证明 效果 良好, 大大提高了运维工作中日志检查效率 通过日志, 运维人员就可以 预先发现 各个主机潜在 问题,及时解决之。另一方面,web开发人员,MySQL?DBA等人员也可以从这套系统中受益,迅速发现nginx?,php-fpm,?mysql,?apache的潜在配置问题,从而及时 优化之

?

考虑到集中化日志管理巡查的重要性,笔者愿意将自身的经验分享给大家,同时给出已经编写好(作少量调整,可直接使用)的shell脚本。希望各位朋友在提出宝贵建议,若实施过程中,遇到问题可发邮件至笔者信箱zhangxugg@163.com。

?

这套系统的特点:

1.  部署简单:全部使用常见的软件实现,具有普遍适用性,客户端仅需要使用tftp/crontab部署通用的shell脚本?无须复杂配置即可实现。

2.  功能全面:可管理目前绝大部分系统日志和应用程序日志,如Linx系统日志(messages)、登录日志(secure)、最后登录(lastlog)、crond日志、开机信息(dmesg)、以及MySQL错误日志、?MySQL慢查询日志、nginx错误日志、Apache错误日志(未真正实现)、php-fpm错误日志、php慢日志(执行过慢的php程序的日志)、FTP传输日志。而Linux自带的syslog集中管理,仅能管理系统日志,无太好的实用性。

3. ??可灵活扩展:可根据具体需要,轻松扩展管理其它日志(修改shell脚本即可),如squid日志等等。

4. ??使用web界面,即可浏览所有客户端各种日志

这套系统中对开发人员最为有用的是MySQL的慢查询日志/错误日志、php-fpm慢日志/错误日志,通过这些日志记录,可及时发现程序中的性能问题。

?

本文主要分三个部分,第一部分描述这套集中化日志管理系统的技术原理,第二部分详细描述部署流程,第三部分附加描述了MySQL,?nginx?,?php-fpm的日志记录的配置事宜,具有很实用参考价值。

?

一、