MySQL error log 输出到syslog
这篇讲的是如何将 MySQL 的错误日志统一纳入系统级日志管理,以提升运维效率。 作者从实际运维的痛点出发:默认情况下,MySQL 将错误日志写在数据目录下的 hostname.err 文件中。这导致日志分散,当服务器增多时,逐一排查非常不便,难以进行集中化的监控与分析。为了解决这个问题,文章详细介绍了利用 MySQL 的 log_error_verbosity 和 log_error 等参数,配合系统服务(如 rsyslog)的配置,将 MySQL 的错误日志重定向输出到 syslog 的具体步骤。 通过这样配置,MySQL 日志便能与其他系统日志(如内核、应用日志)汇聚到同一地方,方便使用 grep、journalctl 等工具统一检索和后续的集中式日志平台对接。这不仅仅是一个简单的日志路径变更,更是构建标准化、可扩展的日志体系的关键一步,为后续的日志分析与告警打下了基础。
控制mysql用户连接数据库数目
这篇讲的是作者处理数据库被并发请求压垮的实战经历。问题起因是程序存在BUG,恶意或正常的并发访问(如多次请求index.php)就能耗尽数据库资源导致服务瘫痪。作者最初尝试使用iptables的connlimit模块来限制访问,但这导致了后台管理等功能出现新问题,治标不治本。 后来作者深入排查,发现MySQL自身就提供了控制用户连接数的关键参数。通过执行`desc mysql.user`命令,可以查看到`max_connections`和`max_user_connections`这两个字段。这两个参数既可以在全局(global)层面设置,也可以针对单个用户的会话(session)进行配置,从而在数据库内部精细地管理连接数。 文章的解决方案是从数据库层面本身出发,利用其内置机制来防止连接资源被滥用。这对于因第三方程序BUG而苦恼的开发者来说,提供了一个更直接、更根本的管控思路。
cacti监控华为交换机不显示端口解决
这篇讲的是Cacti监控华为交换机时遇到的一个显示问题。在流量图表上,端口名称只显示“GigabitEthernet”,而后面的模块号和端口号被截断,导致管理员无法快速识别具体是哪个端口的流量。这在设备端口较多时,会给排查带来很大不便。 问题的根因其实挺巧妙的——Cacti内部有一个“最大域长度”的默认设置,值为15个字符,用于控制数据查询区域显示的最大字符数。而“GigabitEthernet”这个名称本身就超过了这个限制,使得后面的关键编号被无情“吃掉”了。 解决方案很直接:需要调整Cacti的这个配置项,将其最大域长度值调大。只要把这个限制放宽,让华为设备的完整端口名(如GigabitEthernet1/0/1)都能显示出来,图表标题就能恢复到包含具体端口号的完整描述。调整后,流量监控的图表就清晰多了,运维人员可以一目了然地关联到物理端口。