aix6.1安装部署zabbix代理报错处理 Member libiconv.so.2 is not found in archive

本秂侑毒 提交于 2020-08-13 11:14:02

1、一般官网的二进制包下下来就能用,但是有时候一些系统环境不匹配,依赖的包需要单独安装

2、连接aix 版本 aix6.1

			Connection established.
			To escape to local shell, press 'Ctrl+Alt+]'.

			WARNING! The remote SSH server rejected X11 forwarding request.
			5 unsuccessful login attempts since last login.
			Last unsuccessful login: Tue Jun 16 11:05:51  2020 on ssh from 8.5.5.161
			Last login: Thu Jun  4 15:58:07  2020 on /dev/pts/0 from 9.5.7.188
			*******************************************************************************
			*                                                                             *
			*                                                                             *
			*  Welcome to AIX Version 6.1!                                                *
			*                                                                             *
			*                                                                             *
			*  Please see the README file in /usr/lpp/bos for information pertinent to    *
			*  this release of the AIX Operating System.                                  *
			*                                                                             *
			*                                                                             *
			*******************************************************************************

3、检查是否安装zabbix代理
            lpar4#ps -ef|grep zabbix
                root  9633922 33554630   0 14:43:02  pts/0  0:00 grep zabbix

4、创建用户            

            lpar4#mkgroup zabbix
            lpar4#mkuser pgrp='zabbix' groups='zabbix' zabbix

5、上传agent 解压安装包

			lpar4#pwd
			/home/zabbix
		#上传包
			lpar4#ls
			.profile                                   zabbix_agent-4.0.1-aix-6.1-powerpc.tar.gz
		#解压安装包
			lpar4#gunzip zabbix_agent-4.0.1-aix-6.1-powerpc.tar.gz 
			lpar4#ls
			.profile                                zabbix_agent-4.0.1-aix-6.1-powerpc.tar
			lpar4#tar xvf zabbix_agent-4.0.1-aix-6.1-powerpc.tar 
			x bin
			x bin/zabbix_get, 243570 bytes, 476 media blocks.
			x bin/zabbix_sender, 284580 bytes, 556 media blocks.
			x conf
			x conf/zabbix_agentd
			x conf/zabbix_agentd/userparameter_mysql.conf, 1531 bytes, 3 media blocks.
			x conf/zabbix_agentd/userparameter_examples.conf, 1359 bytes, 3 media blocks.
			x conf/zabbix_agentd.conf, 10630 bytes, 21 media blocks.
			x sbin
			x sbin/zabbix_agentd, 1147603 bytes, 2242 media blocks.
			lpar4#ls
			.profile                                conf                                    zabbix_agent-4.0.1-aix-6.1-powerpc.tar
			bin                                     sbin
		#进入conf文件修改目录
			lpar4#cd conf
			lpar4#ls
			zabbix_agentd       zabbix_agentd.conf
			lpar4#vi zabbix_agentd.conf 
		#修改如下 用的自动注册
			lpar4#cat zabbix_agentd.conf |grep -v "^#"|grep -v "^$"
			LogFile=/tmp/zabbix_agentd.log
			Server=9.1.8.198
			ServerActive=9.1.8.198
			HostnameItem=system.hostname
			HostMetadata=aix20200604

6、#启动zabbix报错如下

			lpar4#/home/zabbix/sbin/zabbix_agentd -c /home/zabbix/conf/zabbix_agentd.conf 
			exec(): 0509-036 Cannot load program /home/zabbix/sbin/zabbix_agentd because of the following errors:
					0509-150   Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded.
					0509-152   Member libiconv.so.2 is not found in archive 

7、#解决办法

rpm -ivh gettext-0.19.8.1-5.aix6.1.ppc.rpm --nodeps
rpm -ivh libffi-devel-3.2.1-3.aix6.1.ppc.rpm --nodeps
rpm -ivh libiconv-1.14-2.aix6.1.ppc.rpm

8、部分配置

		#查看安装的文件
			lpar4# rpm -ql libiconv
		#备份
			lpar4#mv /usr/lib/libiconv.a /usr/lib/libiconv.a.20200622
		#拷贝
			cp /usr/linux/lib/libiconv.a /usr/lib/
		#启动
			lpar4#/home/zabbix/sbin/zabbix_agentd -c /home/zabbix/conf/zabbix_agentd.conf
			lpar4#ps -ef|grep zabbix
				root  6094952 33554630   0 14:56:39  pts/0  0:00 grep zabbix
			  zabbix  9371858 24182952   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
			  zabbix 16121900 24182952   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
			  zabbix 24182952        1   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd -c /home/zabbix/conf/zabbix_agentd.conf
			  zabbix 29949958 24182952   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
			  zabbix 36307026 24182952   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
			  zabbix 40632378 24182952   0 14:56:32      -  0:00 /home/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
		#添加开机自启动
			lpar4#mkitab zabbix_agentd:2:once:/home/zabbix/sbin/zabbix_agentd -c /home/zabbix/conf/zabbix_agentd.conf
		#查看日志
			lpar4# tail -f /tmp/zabbix_agentd.log 
			24182952:20200622:145632.323 TLS support:            NO
			24182952:20200622:145632.323 **************************
			24182952:20200622:145632.323 using configuration file: /home/zabbix/conf/zabbix_agentd.conf
			24182952:20200622:145632.324 agent #0 started [main process]
			40632378:20200622:145632.325 agent #1 started [collector]
			29949958:20200622:145632.327 agent #2 started [listener #1]
			16121900:20200622:145632.329 agent #3 started [listener #2]
			36307026:20200622:145632.330 agent #4 started [listener #3]
			9371858:20200622:145632.332 agent #5 started [active checks #1]

9、设置开机自启动

lpar4#mkitab zabbix_agentd:2:respawn:"/home/zabbix/sbin/zabbix_agentd -c /home/zabbix/conf/zabbix_agentd.conf" #增加

lpar4#lsitab -a #列出记录
----------------------------
第一章 AIX开机启动过程介绍
----------------------------
    不从最开始说起了,只说从AIX kernel被装载到内存开始。
     1、AIX系统存储在BLV的kernel在内存中创建/(root),/usr/和/var文件系统。
        要注意,这里所说的文件系统,包括kernel在启动过程中都是存储在RAM(内存)中的。
        他们没有权限访问BLV之外的任何内容。
     2、文件系统被装载到RAM之后,kernel开始执行init进程,这个时候init进程开始接管系统启动进程。
     3、AIX kernel把init进程的PID设为1,这个进程是作为parent,root进程存在的,是AIX系统中运行的其他所有进程的父进程.当init进程被装载并在启动过程运行,init调用rc.boot.
     4、rc.boot文件在AIX系统启动过程中有三个重要的作用。
       (1)、第一部分是rc.boot初始化了系统的硬件,使其为系统的启动做好准备。通过系统设置命令cfgmgr,一小部分系统启动需要的驱动被配置。
       (2)、第二部分是文件系统/,/usr,/var和页面空间被装载。在这些文件系统被装载以后,init被硬盘上的PID为1的init进程所替代,同时RAM被清空。
       (3)、第三部分和最后部分,rc.boot,实际的init进程是从硬盘上运行的。
              当init被执行后,/etc/inittab文件被堵去,同时里面的每一条都被执行。
              在这个过程中,/tmp文件系统正被装载到硬盘上。
              现在,系统正在启动的最后过程中,cfgmgr命令再一次运行把剩下的在第一部分没有被rc.boot运行的驱动运行起来。
     5、init进程被执行以后,下一步就是init会打开/etc/inittab,并且执行里面的内容。

----------------------------------------------
第二章 AIX启动的相关命令知识
----------------------------------------------
1、确认当前系统的运行级别
                                 在系统维护或者切换系统运行级别之前,你也许需要检查当前系统的运行级别。
           cat /etc/.init.state 
                                                     lsitab init 

2、显示系统运行级别的更改纪录
                                 提示:确保bosext2.acct.obj 代码安装在你的系统上。
                                       (1)  以root身份登陆系统.
                                       (2)执行/usr/lib/acct/fwtmp </var/adm/wtmp |grep run-level
                                           得到类似的结果:
                                               run-level 2  0 1 0062 0123 697081013 Sun Feb  2 19:36:53 CST 1992
                                               run-level 2  0 1 0062 0123 697092441 Sun Feb  2 22:47:21 CST 1992
                                               run-level 4  0 1 0062 0123 698180044 Sat Feb 15 12:54:04 CST 1992

3、改变系统运行级别基础知识
   当系统第一次启动之后,系统按照/etc/inittab文件的内容,进入默认的系统运行级别,直到系统管理员发出改变系统级别的命令。
   下面是系统定义的系统运行级别:
   0-9     当init命令改变系统运行级别为0-9时,将会杀掉当前系统级别下正在运行的所有进程,并进入新的系统运行级别。
   0-1     为未来的操作系统保留
   2       默认运行级别
   3-9     可以根据用户的需求进行自定义
   a,b,c   当init命令接收到运行a,b或者c的时候,init命令不杀死任何当前运行的进程,只是启动新运行级别内定义的新进程。
   Q,q     init命令将会重新检查/etc/inittab文件
   S、s    维护模式
   M、m    维护模式

4、改变系统运行级别
   (1)、检查/etc/inittab文件,确认你想改变的系统运行级别。
   (2)、使用wall命令通知所有用户你将改变
   (3)、使用smit telinit快速改变系统运行级别
   (4)、使用init n或者telinit n命令改变系统运行级别,其中n为系统运行级别。

5、改变/etc/inittab文件
   在有些情况下,你需要增加、改变、列出、删除/etc/inittab文件中的记录。/etc/inittab文件定义了哪些进程在哪个系统运行级别里运行。
   当你运行init命令的时候,它将读取/etc/inittab文件。每一条记录定义了一个进程在一个进程的运行。
   (1)、/etc/inittab文件参数
         Identifier          定义了唯一的标识(1到14个字符)。
         Run Level           定义了进程所在的运行级别(1到20个字符)。

         Action              定义了init命令将为此条进程执行的操作,包括:respawn,wait,once,boot,bootwait,powerfail,powerwait,off,hold,ondemand,initdefault和sysinit.
                respawn      如果进程不存在,Start这个进程,不等待它的结束,继续扫描inittab文件。如果这个进程结束了,restart它。
                wait         Start这个进程,并且等待它的结束。
                once         Start这个进程,并且不等待它的结束。如果这个进程结束,不restart它。
                boot         仅在系统重启时执行。
                bootwait     当服务第一次从单用户变为多用户时执行
                powerfail    仅当如果init收到一条power错误时执行命令
                powerwait    仅当如果init收到一条power错误时执行命令,同时一直等待进程的结束,然后才继续扫描inittab文件。             
                off          如果进程正在运行,发出SIGTERM信号,然后在20秒内执行SIGKILL
                ondemand     这个参数等同于respawn,但是只在a,b,c级别运行。
                initdefault  只有当init初始化执行,才扫描内容。
                sysinit      在登陆前,在init得到权限控制之前执行内容。
         Command             包含需要执行的shell命令。
   (2)、下面的命令可以支持对/etc/inittab文件进行操作。
         chitab              改变/etc/inittab文件的记录。
         lsitab              列出/etc/inittab文件的记录。
         mkitab              往/etc/inittab文件里增加记录。
         rmitab              从/etc/inittab文件里删除记录。
   (3)、命令举例
         增加纪录
             往/etc/inittab文件里增加一条记录,执行
                   mkitab Identifier:Run Level:Action:Command
             例如:tty002:2:respawn:/usr/sbin/getty /dev/tty2
         改变记录
             改变/etc/inittab文件里的一条记录,执行
                   chitab Identifier:Run Level:Action:Command
             例如:将上例的运行级别从2改为2和3,chitab tty002:23:respawn:/usr/sbin/getty /dev/tty2
         列出记录
             列出/etc/inittab文件中的所有记录
                   lsitab -a
             列出某个指定的记录
lsitab Identifier
             例如:lsitab tty2
          删除记录
             rmitab Identifier
             例如:rmitab tty2

6、执行运行级别脚本
   运行级别脚本允许用户在更改运行级别时启动和停止所选择的应用程序。以 K 开头的脚本是停止脚本,以 S 开头的脚本是启动脚本。
   这些脚本保存于它们所从属的运行级别的特定子目录中,每个子目录的格式为 rcn.d,其中 n 表示运行级别:
            /etc/rc.d/rc2.d
            /etc/rc.d/rc3.d
            /etc/rc.d/rc4.d
            /etc/rc.d/rc5.d
            /etc/rc.d/rc6.d
            /etc/rc.d/rc7.d
            /etc/rc.d/rc8.d
            /etc/rc.d/rc9.d 
---------------------------------------
第三章 开机自动运行程序
---------------------------------------
       开机启动程序的方法有很多,我只谈谈思路,然后给出一些解决方法。
       从第一章AIX系统启动过程,我们知道AIX系统在启动过程中,会扫描inittab文件的内容,并执行它。
              1、那么,我们可以通过直接修改inittab文件,使系统在开机重启时运行我们的命令。
              2、也可以通过inittab文件里指向的脚本(rc.local、rc.d组,后面会详细介绍)。
                    间接使系统在开机重启时运行我们的命令。
              3、其他方法:如使用crontab的定时任务功能,间接启动脚本,
                   这种方法不是开机后马上运行,要看crontab里设置的时间间隔的长短而定。
      
一、通过rc.local启动(最简单的方法)
      rc.local是inittab里的一个脚本指向,通过运行lsitab -a|grep rc.local ,我们可以得到rc.local:2:once:/etc/rc.local > /dev/console 2>&1

      1、 mkitab -i rcnfs "rc.local:2:once:/etc/rc.local > /dev/console 2>&1"   #如果inittab文件里没有关于rc.local的信息,可以通过此命令创建脚本。
            注意系统运行级别要与你想要运行的系统运行级别一致,这里系统运行级别是2。
      2、touch /etc/rc.local #新建rc.local文件
      3、chmod 700 /etc/rc.local #设置执行权限
      4、把执行脚本放到/etc/rc.local里之后,AIX系统在重新启动时,就会运行/etc/rc.local里的脚本了。

 

1. 自动启动定制的软件
在系统引导时, init进程顺序检测/etc/inittab文件, 决定在引导过程中进行什么样的操作.如果应用, 进程或其它的用户操作需要在系统引导过程中进行, 则要在/etc/inittab文件中加入相应的条目.通常的做法是创建一个名为rc.local的脚本文件, 将所有要在系统引导过程中启动的用户应用写入该脚本文件中. 该脚本文件可以在/etc/inittab文件中被调用, 通常是在所有系统应用和服务启动后, 在用户登录被允许之前被调用. 位置通常是在主控登录的条目前.
下面是一个例子:
  rc.local:2:wait:/etc/rc.local > /dev/console 2>&1
在上面的条目中, init将在执行余下的条目之前等待该脚本程序的完成.如果进程, 应用或命令需要通过特定的用户运行, 则可在运行的命令中加入su命令.
如: su myuser "-c /usr/bin/myapp"
建议在脚本程序中加入应用开始启动和完成启动的输出提示.
如:
  #!/bin/ksh  
  echo "Starting User Applications...."  
  echo "Starting Application XYZ"  
  su myuser "-c /usr/bin/myapp"  
  echo "Startup of User Applications completed"  
2. 自动停止定制的软件
shutdown命令用于关闭AIX系统. 在此操作中会关闭所有AIX子系统及文件系统.如果名为/etc/rc.shutdown的脚本程序存在, 系统会首先执行该脚本程序中的命令. 在该脚本程序中可以加入关闭用户应用的命令. 建议在脚本程序中加入应用停止运行和完成停止运行的输出提示.
如:
  #!/bin/ksh  
  echo "Stopping User Applications...."  
  echo "Stopping Application XYZ"  
  [ commands to stop application ]  
  echo "Shutdown of User Applications completed"


二、通过/etc/rc.d脚本启动(需要编写start\stop脚本)
      /etc/rc.d是inittab里的一组脚本指向,通过运行lsitab -a|grep rc.d,我们得到
           l2:2:wait:/etc/rc.d/rc 2
           l3:3:wait:/etc/rc.d/rc 3
           l4:4:wait:/etc/rc.d/rc 4
           l5:5:wait:/etc/rc.d/rc 5
           l6:6:wait:/etc/rc.d/rc 6
           l7:7:wait:/etc/rc.d/rc 7
           l8:8:wait:/etc/rc.d/rc 8
           l9:9:wait:/etc/rc.d/rc 9
      1、cd /etc/rc.d/       #进入/etc/rc.d目录
      2、cd /samples       #进入/etc/rc.d/samples 目录,可以得到K70lpd、README.txt、S70lpd三个文件。
           这里只是简单的模仿K70lpd和S70lpd,更高级的方法,留给大家自己研究了。
           下面,我们分别创建自己的启动和结束脚本。
                 例如:
# more K69oa
#!/bin/ksh
##################################################
# name: K69oa
# purpose: sample script that start or stop oa.
#转载请注明From:http://hi.baidu.com/空气人儿
##################################################

case "$1" in
start )
        WebSphere/AppServer/bin/startServer.sh server1
        IBMHttpServer/bin/apachectl start
        ;;
stop )
        WebSphere/AppServer/bin/stopServer.sh server1
        IBMHttpServer/bin/apachectl stop
        ;;
* )
        echo "Usage: $0 (start | stop)"
        exit 1
esac


# more S69oa
#!/bin/ksh
##################################################
# name: S69oa
# purpose: sample script that start or stop oa.
#转载请注明From:http://hi.baidu.com/空气人儿
##################################################

case "$1" in
start )
        WebSphere/AppServer/bin/startServer.sh server1
        IBMHttpServer/bin/apachectl start
        ;;
stop )
        WebSphere/AppServer/bin/stopServer.sh server1
        IBMHttpServer/bin/apachectl stop
        ;;
* )
        echo "Usage: $0 (start | stop)"
        exit 1
esac
     
       3、chmod 700 这两个脚本
       4、把这两个脚本放到/etc/rc.d/rc2 下。
       5、使用shutdown -rF重新启动机器时,会自动运行放在/etc/rc.d/rc2下的S69oa脚本中的stop部分;
            系统重启之后,系统会自动运行放在/etc/rc.d/rc2下的S69oa脚本中的start部分。

三、自定义启动脚本(与方法一基本相同,自己研究吧)

 

https://www.cnblogs.com/zmlctt/p/3770814.html

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!