Web Server

Nothing is impossible to a willing heart.

Web Server

记一次Nginx格式问题导致的Logstash解析失败

今天22点下班到家,还没进门就收到短信告警,一台Logstash磁盘占用量超过了90%,这挺奇怪的,5年多了从来没有Logstash的磁盘告警。   赶紧发完版,琢磨了一下这台logstash服务器,一台普通的、用于收集nginx日志的服务器。   分析一下文件系统,发现是logstash的运行日志满了,打开一看,充斥着这样的记录: [2024-07-24T23:18:08,695][WARN ][logstash.filters.json ][main][bcdfb34f2fa4b1a3031d77b9d92cd7465a03438a14c6513f2c87d0a46c305ee7] Error parsing json ... , :exception=>#<LogStash::Json::ParserError: Unrecognized character escape 'x' (code 120) at [Source: (byte[])"{"@timestamp&

  • 闻骏
    闻骏
Web Server

使用Tengine实现会话保持

使用Tengine实现会话保持 一般情况下,nginx实现会话保持的机制是$ip_hash,即根据请求的源地址实现代理请求至特定的后端服务器上。 但这样的模式有限制: 第一,nginx必须是在请求入口的第一层,一旦nginx之前有F5或者squid之类的入口设备,那nginx获取的永远是F5和squid的ip,即无法根据源IP代理至特定的后端上。 第二,即使使用MAP函数以其他header为源数据hash,对于类似企业公共出口IP的请求,也只能认为它们是同一个请求人,这样的划分是比较粗狂的。 通用解决方案: Cookie插入模式: 在Cookie插入模式下,负载均衡设备将负责插入cookie,后端服务器无需作出任何修改。 Cookie插入模式原理: 当客户进行第一次请求时,客户HTTP请求(不带cookie)进入负载均衡设备, 负载均衡设备根据负载平衡算法策略选择后端一台服务器,并将请求发送至该服务器。 后端服务器进行HTTP回复(不带cookie)被发回负载均衡设备,然后负载均衡设备插入cookie,将HTTP回复返回到客户端。 当客户请求再次发生时,客户HTTP请求(带有上次负载均衡设备插入的cookie)进入负载均衡设备,然后负载均衡设备读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器。 后端服务器进行请求回复,由于服务器并不写入cookie,

  • 闻骏
    闻骏
Web Server

Tomcat:consider increasing the maximum size of the cache

缓存不足 在启动一些较大的项目,比如jenkins时,会发现访问缓慢,并且报错: the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache 这是由于tomcat分配的缓存不够导致。 解决办法: 修改tomcat目录下conf/context.xml文件,在content中添加如下内容: <Resources cachingAllowed="true" cacheMaxSize="100000"

  • 闻骏
    闻骏
达美乐比萨运维: Dean.Wen Kenshi.Zhang Makly.Zhang Furong.zhou