连仕彤博客zabbix-agent启动报错No space left on device

前因

在一次机房突然断电之后,登陆到zabbix系统中查看,发现有一台agent没有连接到,登陆到agent机器查看发现zabbix-agent服务无法启动,查看zabbix-agent日志看到如下报错信息。

....
zabbix_agentd [836]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [839]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [842]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [846]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [856]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [860]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [864]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [867]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [871]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [897]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [907]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [911]: cannot open log: cannot create semaphore set: [28] No space left on device
zabbix_agentd [916]: cannot open log: cannot create semaphore set: [28] No space left on device
....

解决方法

经过大量的排查,怀疑是kernel.sem(共享内存信号量)参数设置过小,查看kernel.sem参数设置。可以通过ipcs -lm命令查看目前系统共享内存的参数限制。

[root@qiniu zabbix]#  cat /proc/sys/kernel/sem
250	32000	32	128
kernel.sem 4个参数的意义
 
250       SEMMSL    max semaphores per array     信号集容纳最大信号数量   
32000     SEMMNS    max semaphores system wide   所有信号的最大数量
32        SEMOPM    max ops per semop call       调用单个信号集中最大信号数量
128       SEMMNI    max number of arrays         信号集的最大值

然后尝试将kernel.sem参数设置的大一点。

[root@qiniu zabbix]# vim /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.file-max=65535
kernel.sem = 500  64000  64  256  //kernel.sem这个可以根据需求在适当的调大一些。
[root@qiniu zabbix]# sysctl -p  //使之设置生效

重启zabbix-agent之后发现No space left on device报错已经没有了。

注: 1.SELINUX需要关闭,否则zabbix-agent是无法启动的。 2.参考文档:CSDN 3.参考文档:imaojia

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏主机笔记

Windows2012搭建我的世界(Minecraft)服务器超简单

有台qq云的服务器一直在挂机没事干,使用Windows2012系统搭建我的世界服务端,傻瓜式安装简单快速,亲测试可以玩。 0.安装环境 服务器配置:2核2G1M...

1.4K10
来自专栏JavaWeb

使用Spring profile 多环境配置管理

3648
来自专栏追不上乌龟的兔子

微服务实现 - Netflix技术栈

你好。今天我将讨论并解释如何实现基于微服务的系统。有很多用于实现微服务的工具和技术。我今天关注的是Netflix技术栈和SpringBoot。目前微服务是业内热...

1771
来自专栏JackeyGao的博客

Python 高级并发

就是直接用『原子操作』(atomic operation)所实现的并发。这种并发是给程序库的编写者用的, 而应用程序开发者则不需要它,因为这种写法很容易出错,而...

1281
来自专栏漏斗社区

业务逻辑漏洞探索之越权漏洞

越权,顾名思义,就是超出了权限或权力范围。多数WEB应用都具备权限划分和控制,但是如果权限控制功能设计存在缺陷,那么攻击者就可以通过这些缺陷来访问未经授权的功能...

1673
来自专栏后端技术探索

新浪微博平台服务部署及Web框架

平台作为整个微博架构的基础功能服务层,对外以Http接口的方式提供服务。接口遵守RESTful规范。接口示例如下:

2052
来自专栏安恒信息

安全漏洞公告

1 IBM WebSphere Portal WEB内容管理程序信息泄露漏洞 IBM WebSphere Portal WEB内容管理程序信息泄露漏洞发布时...

29712
来自专栏JetpropelledSnake

Python Web学习笔记之并发和并行的区别和实现

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支...

2277
来自专栏Java职业技术分享

java-编程开发

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是...

960
来自专栏喵了个咪的博客空间

phalapi-进阶篇1(Api,Domain,和Model)

#phalapi-进阶篇1(Api,Domain,和Model)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个...

3737

扫码关注云+社区

领取腾讯云代金券