zabbix启动 cannot recreate Zabbix semaphores for IPC 问题

来源:互联网 发布:淘宝图片不清晰 编辑:程序博客网 时间:2024/04/28 18:58

今天在lunix环境下启动zabbix出现如下问题

 cannot recreate Zabbix semaphores for IPC key 0x7a0344c5 Semaphore ID -1: [22] Invalid argument



解决方法

切换到用户root下 执行 

 ipcrm -S 0x7a0344c5

再次启动zabbix成功


还有一个清理命令


ipcs -s | awk ' $3 == "507" {print $2, $3}' | awk '{ print $1}' | while read i; do ipcrm sem $i; done

You should check ipcs and kill those with below given command, where it may vary, as awk $3 is username in the given senario



附上zabbix安装指导


1.安装方式:

rpm或者编译都可,rpm可以直接用yum安装.
rpm安装的话,根据文件名进行选择即可.
编译的话,不同参数对应不同的组件.

编译安装zabbix:

同时安装server和agent,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2

如果仅安装server,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl

如果仅安装proxy,并支持将数据放入mysql数据中,可使用类似如下配置命令:
./configure --prefix=/usr/local/zabbix --prefix=/usr --enable-proxy --with-net-snmp --with-mysql --with-ssh2

如果仅安装agent,可使用类似如下配置命令:
./configure --prefix=/usr/local/zabbix --enable-agent

这里选择的方式是非proxy
#./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-ssh2
可能会出的问题:
ssh2 lib找不到,则安装libssh2,并--with-ssh2=指定安装位置,地址:http://www.libssh2.org/
# make
# make install

添加zabbix系统账户

#groupadd zabbix

#useradd -g zabbix -m zabbix 

#chown -R root.zabbix /usr/local/zabbix

添加服务端口(可要可不要,官方说建议要)

#vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

配置文件软连接(可要可不要,按照习惯要)

ln -/usr/local/zabbix/etc /etc/zabbix
修改各项配置文件

#vim /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBName=zabbix
DBUser=zabbixer
DBPassword=123456     #指定zabbix数据库密码
ListenIP=192.168.10.197    #服务器IP地址

复制网站文件到虚拟主机目录,当然修改虚拟主机的配置也是必须的.(这里贴出apache的,至于nginx,这里就不贴出来了)

#cp -rp /usr/local/src/zabbix-***/frontends/php /var/www/zabbix
#cd /var/www
#chown -R zabbix.zabbix zabbix
#vim /usr/local/apache/conf/httpd.conf
group zabbix
user zabbix
#vim /usr/local/apache/conf/extra/httpd-vhost.conf
<VirtualHost 10.88.5.124:80>
    ServerAdmin aaa103439@hotmail.com
    DocumentRoot "/var/www/zabbix"
    ServerName 10.88.5.124
    ErrorLog "logs/zabbix-error_log"
    CustomLog "logs/zabbix-access_log" common
<Directory "/var/www/zabbix"> 
     Options None
     DirectoryIndex index.php 
      AllowOverride Options FileInfo 
     Require all granted
</Directory>
</VirtualHost>

复制启动脚本,zabbix的启动脚本位于源码包中,路径如下:
# ls /usr/local/src/zabbix-2.2.3/misc/init.d/
aix  debian  fedora  freebsd  gentoo  README  suse  tru64  ubuntu
ls fedora/core/
zabbix_agentd  zabbix_server
#cp * /etc/init.d/
#chkconfig --add zabbix_agentd
#chkconfig --add zabbix_server
#chkconfig zabbix_agentd on
#chkconfig zabbix_server on
修改脚本,因为脚本里的bin程序和配置文件路径均不对,好吧,也不能说不对,不过和我的不一样...所以得改下,但是版本不同,可能里面的内容不同,不过修改的内容都差不多,只不过变量不一样.这里贴出我的zabbix_server
# Variables 变量区域
# Edit these to match your system settings

    # Zabbix-Directory
    BASEDIR=/usr/local/zabbix

    # Binary File
    BINARY_NAME=zabbix_server

    # Full Binary File Call
    FULLPATH=$BASEDIR/sbin/$BINARY_NAME

    # PID file
    PIDFILE=/tmp/$BINARY_NAME.pid

    # Establish args
    ERROR=0
    STOPPING=0
#启动区域
start() {
    if [ $RUNNING -eq 1 ]
        then
        echo "$0 $ARG: $BINARY_NAME (pid $PID) already running"
    else
        action $"Starting $BINARY_NAME: " $FULLPATH -c /etc/zabbix/zabbix_server.conf
        touch /var/lock/subsys/$BINARY_NAME
    fi
}
红色区域就是我修改的,分别是一个zabbix根路径和启动时所调用的配置文件.
至于zabbix_agentd,修改方式一样.

数据库端-->
创建数据库:server和proxy的运行都依赖于数据库,agent则不需要。

以MySQL数据库为例:
#生成用户名和密码;
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL ON zabbix.* TO zabbixer@'%' IDENTIFIED BY '123456';
#生成proxy数据库
shell> mysql -u<username> -p<password> zabbix < schema.sql
#生成server数据库
shell> mysql -u<username> -p<password> zabbix < images.sql
shell> mysql -u<username> -p<password> zabbix < data.sql
以上数据库的导入需要严格按照顺序执行,否则无法导入
数据库文件位于zabbix-server-mysql包中,其安装后的位置:/usr/share/doc/zabbix-server-mysql-***/create/

server端和web端在一起-->
server端的默认端口是10051
agent端的默认端口是10050
启动过程中可能会出现诸多问题,这里列出我所出现的:
zabbix_server [56305]: cannot recreate Zabbix semaphores for IPC key 0x7a016e62 Semaphore ID 4294967295: [22] Invalid argument
删除对应的IPC KEY,如:ipcrm -S 0x7a016e62
zabbix_server [56363]: cannot attach to existing shared memory: [13] Permission denied
查看selinux是否关闭
配置文件一直不生效
查看是否有其他配置文件,默认zabbix优先使用/usr/local/etc/zabbix_server.conf,如果发现配置文件调用的不对,可以通过zabbix_server -c 配置文件来调用自己所选择的配置文件.
配置完成,可以启动
service zabbix-server start

访问页面http://localhost/zabbix(如果是rpm安装),如果是编译安装,则路径按照自己httpd中定义的来写.
安装过程中可能会出现各种组件的支持问题.主要有以下:
1.php的参数不对,这个根据网页上显示的修改php.ini即可.如:php时区 Aisa/ShangHai
2.gd库不支持,包括gd库下的png,jpeg,freetype等.这个需要下载gd,libpng,jpeg,freetype.具体操作如下:
#编译安装libpng,jpeg,freetype,这三个包安装无需特殊参数,指定一下路径即可,有人说需要加入--enable-shared,但是我没开,gd依然可以用.
#编译安装gd,加入--with-png-dir=/path/libpng    --with-jpeg-dir=/path/jpeg    --with-freetype-dir=/path/freetype
#如果gd编译后,显示这几个库都是YES,则说明OK.
#将gd加入到php中.如果你的php已经是安装过的,那么需要单独编译gd,操作如下:(路径自己根据情况修改)
#cd /usr/local/src/php-***/ext/gd
#/usr/local/php/bin/phpize
#./configure --with-gd=/usr/local/gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-php-config=/usr/local/php/bin/php-config
#make && make install
编译安装完,会有一个路径,将其路径复制,假设路径是pathA
#vim /usr/local/php/php.ini
[gd]
extension = pathA/gd.so
#重启apache或fpm-php
3.其他库不支持,如上编译安装即可.


被监控端:
配置:zabbix-agentd.conf
#vim /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid #进程PID
LogFile=/tmp/zabbix_agentd.log #日志保存位置
EnableRemoteCommands=1 #允许执行远程命令
Server= #agent端的ip
Hostname=zabbix server #必须与zabbix创建的host监控项目中的name标签相同
配置完成,可以启动
service zabbix-agentd start
agentd端口时10050

windows端的安装
1. 配置zabbix_agentd.conf文件,需要修改的地方分别为:Server,Hostname,LogFile;
其中Server是zabbix服务器的IP地址,Hostname是本地的主机名,LogFile为zabbix_agentd.log文件的位置,用于记录事件.
2. 进入cmd环境,C:\zabbix\bin\win32>zabbix_agentd.exe --config c:\zabbix\conf\zabbix_agentd.win.conf -i
3. 在"运行"输入 "services.msc",在里面找到"ZABBIX AGENT",并启动服务。 

至此就完成了ZABBIX windows agent的安装和配置。 



配置监控项目基本流程:
1.设定主机
2.设定监控项Configuration-->Hosts-->Items-->create items
多个Items可以定义为Application组
监控项需要定义key,来确保项目唯一性.另,key可以接收参数.
3.配置Graph,可以将多个监控项的图表合并在一起.
4.Screen可以将多个Graph整合在一个屏幕上.
5.配置触发器
6.配置动作Action


来自为知笔记(Wiz)

0 0