楼主入行之初最讨厌编译安装了,有什么东西直接yum安装,但是有些东西需要自己定制以符合需求。找过很多打RPM包软件,使用起来繁琐,后来找到一个简洁的制作工具,一行命令就可以搞定RPM包---FPM
1、fpm工具安装
yum -y install ruby rubygems ruby-devel
# 添加淘宝的Ruby仓库
gem sources -a https://ruby.taobao.org/
# 移除原生的Ruby仓库
gem sources --remove http://rubygems.org/
# 安装fpm
gem install fpm
- 可能会遇到问题
ERROR: Error installing fpm:
ruby-xz requires Ruby version >= 1.9.3.
- 解决方法
1.更新ruby
2: 安装旧版本的fpm(建议采用)
gem install fpm -v 1.4.0
安装成功
2、zabbix agent编译
# 去zabbix官网下载最新源码包
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.7/zabbix-2.4.7.tar.gz
# 解压
tar zxvf zabbix-2.4.7.tar.gz
# 进入源码目录
cd /usr/local/src/zabbix-2.4.7/
# 指定配置参数
./configure --prefix=/usr/local/zabbix --enable-agent
# 编译
make&&make install
3、zabbix agent配置
- 创建定制目录
mkdir -p /usr/local/zabbix/scripts
mkdir -p /usr/local/zabbix/tmp
- 启动脚本
#复制启动脚本
cp /usr/local/src/zabbix-2.4.7/misc/init.d/fedora/core/zabbix_agentd /usr/local/zabbix/bin/zabbix_agentd
#修改启动脚本路径
vim /usr/local/zabbix/bin/zabbix_agentd
BASEDIR=/usr/local/zabbix
- 配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
####日志####
PidFile=/usr/local/zabbix/tmp/zabbix_agentd.pid
LogFile=/usr/local/zabbix/tmp/zabbix_agentd.log
####自定义脚本####
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
####被动模式####
Server=
####主动模式####
ServerActive=
####参数####
StartAgents=5
Hostname=Zabbix agent
HostMetadata=Linux
RefreshActiveChecks=60
####数据缓冲####
BufferSend=10
BufferSize=1000
MaxLinesPerSecond=200
Timeout=15
- 创建安装后脚本
vim /usr/local/src/install
#!/bin/bash
useradd zabbix -s /sbin/nologin
chown -R zabbix:zabbix /usr/local/zabbix
\cp /usr/local/zabbix/bin/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
chmod +x /etc/rc.d/init.d/zabbix_agentd
chkconfig zabbix_agentd on
sed -i "s/^Hostname=Zabbix agent/Hostname=`hostname`/g" /usr/local/zabbix/etc/zabbix_agentd.conf
- 和卸载后脚本
vim /usr/local/src/install/remove
#!/bin/bash
pkill -9 zabbix_agentd
userdel -r zabbix
groupdel zabbix
rm -rf /etc/rc.d/init.d/zabbix_agentd
chkconfig --del zabbix_agentd
rm -rf /usr/local/zabbix
- 安装后的目录效果图
.
├── bin
│ ├── zabbix_agentd
│ ├── zabbix_get
│ └── zabbix_sender
├── etc
│ ├── zabbix_agent.conf
│ ├── zabbix_agent.conf.d
│ ├── zabbix_agentd.conf
│ └── zabbix_agentd.conf.d
├── lib
├── sbin
│ ├── zabbix_agent
│ └── zabbix_agentd
├── scripts
├── share
│ └── man
│ ├── man1
│ │ ├── zabbix_get.1
│ │ └── zabbix_sender.1
│ └── man8
│ └── zabbix_agentd.8
└── tmp
4、打RPM包
FPM常用参数:
-s:指定源类型
-t:指定目标类型,即想要制作为什么包
-n:指定包的名字
-v:指定包的版本号
-C:指定打包的相对路径
--no-rpm-sign 指定安装目录
假如-C / --no-rpm-sign /usr/local/zabbix 而打包机器的数据包路径是/usr/local/zabbix 那安装这个rpm包后,在本地的数据就是/usr/local/zabbix。
如果是-C /usr/local/zabbix --no-rpm-sign 那么必须吧数据包放到/usr/local/zabbix/usr/local/zabbix 下,否安装全部安装在/根目录下
-d:指定依赖于哪些包
-f:第二次包时目录下如果有同名安装包存在,则覆盖它
-p:输出的安装包的目录,不想放在当前目录下就需要指定
--post-install:软件包安装完成之后所要运行的脚本;同--offer-install
--pre-install:软件包安装完成之前所要运行的脚本;同--before-install
--post-uninstall:软件包卸载完成之后所要运行的脚本;同--offer-remove
--pre-uninstall:软件包卸载完成之前所要运行的脚本;同—before-remove
--description:软件包描述
详情:fpm -h
fpm -f -s dir -t rpm -n zabbix-agent --epoch 0 -v 2.4.7 -C / -p /tmp/ --verbose --category 'Applications/Internet' --description 'Zabbix Agent' --url 'http://www.zabbix.com/' --license 'BSD' -m 'zabbix' --post-install /usr/local/src/install --post-uninstall /usr/local/src/remove --no-rpm-sign /usr/local/zabbix
成功打包
5、安装卸载
#安装
rpm ivh zabbix-agent-2.4.7-1.x86_64.rpm
#卸载
rpm -e zabbix-agent-2.4.7-1.x86_64
网友评论