zabbix_agentd不知为啥被干掉后重装了zabbix,zabbix用户组id也变了。

重装zabbix后导致zabbix_agentd无法启动,两个问题

问题1:

zabbix_agentd [4796]: cannot attach to existing shared memory: [13] Permission denied
4796:20190213:172151.185 cannot allocate shared memory for collector

查看共享内存段:

[root@10.0.3.122 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x6c01c2b4 327680 498 600 292944 0
0x00000000 32769 root 600 134217728 129 dest

以上几个字段的意思是:键 shmid 拥有者 权限 字节 nattch 状态

其中key为0x6c01c2b4的内存段owner为498,是zabbix用户旧的uid

删除该共享内存即可:

[root@10.0.3.122 ~]# ipcrm -m 327680 #删除共享内存(注意,这里对共享内存段的操作要使用shmid值)
[root@10.0.3.122 ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 32769 root 600 134217728 129 dest

重启zabbix即可

问题2:

zabbix_agentd [13265]: cannot recreate Zabbix semaphores for IPC key 0x7a02188f Semaphore ID 4294967295: [22] Invalid argument

报错提示了key 0x7a02188f

查看KEY为0x7a02188f的信号队列:

[root@10.0.3.122 ~]# ipcs 0x7a02188f

------ Shared Memory Segments --------
key shmid owner perms bytes nattch status ------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 0 root 600 1
0x00000000 32769 root 600 1
0x7a02188f 196610 498 600 14 #问题在这里,owner的uid是旧zabbix用户id
0x7a020002 294915 zabbix 600 14 ------ Message Queues --------
key msqid owner perms used-bytes messages

删除KEY为0x7a02188fde信号量数组

[root@10.0.3.122 ~]# ipcrm -S 0x7a02188f
[root@10.0.3.122 ~]# ipcs 0x7a02188f ------ Shared Memory Segments --------
key shmid owner perms bytes nattch status ------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 0 root 600 1
0x00000000 32769 root 600 1
0x7a020002 294915 zabbix 600 14 ------ Message Queues --------
key msqid owner perms used-bytes messages

重启zabbix即可

以上两个问题原因:

zabbix_agentd异常关闭导致信号量数组和共享内存段的属主还是旧uid,但是每个进程启动的时候其key值是固定的,所以重装zabbix后,它没有权限删除和重新创建信号量数组和共享内存段,从而出现了无法启动的问题

以上问题的解决也是参考网上的博客文档,可能存在不足,后续完善。

问题3:

zabbix_agentd [13172]: cannot create IPC key for path [/etc/zabbix/zabbix_agentd.conf] id [l]: [13] Permission denied
13172:20190214:103932.147 cannot create IPC key for collector

这个问题是zabbx 配置文件的目录没权限导致的,还是之前重装zabbix导致zabbix用户组id改变了

[root@10.0.3.122 ~]# ll /etc/zabbix/
total 32
drwxr-xr-x 2 498 499 4096 Feb 11 15:40 plugins
drwxrwxr-x 2 498 499 4096 Feb 1 11:00 plugins_conf
-rw-r--r-- 1 498 499 5832 Nov 13 05:41 zabbix_agentd.conf
-rw-r--r-- 1 498 499 10423 Jan 28 18:48 zabbix_agentd.conf.rpmnew
drwxr-xr-x 2 498 499 4096 Feb 11 15:40 zabbix_agentd.d
[root@10.0.3.122 ~]# ll /etc/zabbix/ -d
drwxr-x---. 5 498 499 4096 Feb 14 09:42 /etc/zabbix/
[root@10.0.3.122 ~]# chown zabbix:zabbix /etc/zabbix/ -R
[root@10.0.3.122 ~]# ll /etc/zabbix/ -d
drwxr-x---. 5 zabbix zabbix 4096 Feb 14 09:42 /etc/zabbix/
[root@10.0.3.122 ~]# ll /etc/zabbix/
total 32
drwxr-xr-x 2 zabbix zabbix 4096 Feb 11 15:40 plugins
drwxrwxr-x 2 zabbix zabbix 4096 Feb 1 11:00 plugins_conf
-rw-r--r-- 1 zabbix zabbix 5832 Nov 13 05:41 zabbix_agentd.conf
-rw-r--r-- 1 zabbix zabbix 10423 Jan 28 18:48 zabbix_agentd.conf.rpmnew
drwxr-xr-x 2 zabbix zabbix 4096 Feb 11 15:40 zabbix_agentd.d
[root@10.0.3.122 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent: [FAILED]
Starting Zabbix agent: [ OK ]

zabbix_agentd重装后启动时IPC和共享内存段问题的更多相关文章

  1. 进程间通信——IPC之共享内存

        共享内存是三个IPC机制中的一个.它允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在进行的进程之间传递数据的一种非常有效的方式.   大多数的共享内存的实现,都把由不同进程之间共享 ...

  2. Linux IPC之共享内存

    System V共享内存机制: shmget  shmat  shmdt  shmctl 原理及实现: system V IPC机制下的共享内存本质是一段特殊的内存区域,进程间需要共享的数据被放在该共 ...

  3. IPC进程间通信---共享内存

    共享内存 共享内存:共享内存就是分配一块能被其它进程访问的内存.每个共享内存段在内核中维护着一个内部结构shmid_ds, 该结构定义在头文件linux/shm.h中,其结构如下: struct sh ...

  4. Linux IPC之共享内存C 事例

    Linux IPC之共享内存 标签: linuxrandomnull工作 2011-08-25 11:52 4123人阅读 评论(0) 收藏 举报  分类: Linux(3)  读书札记(3)  版权 ...

  5. 【Linux 应用编程】进程管理 - 进程间通信IPC之共享内存 mmap

    IPC(InterProcess Communication,进程间通信)是进程中的重要概念.Linux 进程之间常用的通信方式有: 文件:简单,低效,需要代码控制同步 管道:使用简单,默认阻塞 匿名 ...

  6. 进程间通信IPC之--共享内存

    每个进程各自有不同的用户地址空间,任何一个进 程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲 区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲 ...

  7. 五十、进程间通信——System V IPC 之共享内存

    50.1 共享内存 50.1.1 共享内存的概念 共享内存区域是被多个进程共享的一部分物理内存 多个进程都可把该共享内存映射到自己的虚拟内存空间.所有用户空间的进程若要操作共享内存,都要将其映射到自己 ...

  8. [20191220]关于共享内存段相关问题.txt

    [20191220]关于共享内存段相关问题.txt --//我一直很好奇如果设置内核参数kernel.shmmax = 68719476736足够大,为什么我的测试实例还是建立3个共享内存段.--// ...

  9. 在Oracle 11g中用看Oracle的共享内存段---------IPCS

    很早之前,在一次讲课了,用了命令ipcs,发现oracle的共享内段好小,如下: oracle@mydb ~]$ ipcs -a ------ Shared Memory Segments ----- ...

随机推荐

  1. popwindow+动画

    布局: main: <Button android:id="@+id/btn" android:layout_width="match_parent" a ...

  2. Android总结之json解析(FastJson Gson 对比)[申明:来源于网络]

    Android总结之json解析(FastJson Gson 对比)[申明:来源于网络] 地址:http://blog.csdn.net/u014031072/article/details/5392 ...

  3. 第一次OO阶段性总结

    作业一 在第一次作业发布的时候对这次作业比较掉以轻心,因为之前在暑假的时候上过先导课,对面向对象的编程思想和java的语法都比较熟悉,加上有其他的事物分心,所以到了最后一天才开始着手写代码,轻视作业的 ...

  4. js 讲解

    substring() 取文本中间 split() 分割文本 charcodeat()   utf-8 tolowercase() 小写 正则是一个对象 正则   i  不区分大小写 escape(s ...

  5. linux_grub resue模式恢复

    //20190417 今天中午装linux的电脑崩了…… 一开始还以为是什么硬件问题,搞了半天,是更新的时候吧grub启动项弄坏了 行吧,没人教咱就上网搜,搞一下午搞出来了 ============= ...

  6. ad 线束和网络

    ad 线束和通道复用会遇到网络无法更新的pcb的异常, 就算,我们把网络作用范围调整到页,电源全局仍然会失败,通过查找原因 尽量网络标签不同.稍微更改就可以 比如  sda1,sda1s不要一样

  7. 需要优化代码的leetcode

    1  关于验证字符串的问题: 2

  8. Word图片、表格添加题注

    1.首先为图片.表格添加题注: 2.通过交叉引用,如图**和图片.表的编号相关联起来:

  9. 如何修改运行中的docker容器的端口映射和挂载目录

    在docker run创建并运行容器的时候,可以通过-p指定端口映射规则.但是,我们经常会遇到刚开始忘记设置端口映射或者设置错了需要修改.当docker start运行容器后并没有提供一个-p选项或设 ...

  10. 001-JUnit之断言assert

    一.简介以及pom JUnit4.4引入了Hamcrest框架,Hamcest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活: 使用全新的断言语法:assertThat, ...