亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

定制zabbix的rpm包---spec文件的書寫

標簽:
MySQL


 定制zabbix的rpm包

#

%define zabbix_group zabbix 

%define zabbix_user zabbix 

 

Name:           zabbix   

Version:    2.0.4 

Release:    1%{?dist}.zbx 

Summary:    zabbix monitor 

Vendor:         [email protected] 

 

Group:          System Environment/Daemons   

License:    GPL 

URL:        http://www.zabbix.com 

Source0:    http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.4/zabbix-2.0.4.tar.gz 

Source1:        zabbix_custom.tar.gz 

Source2:        zabbix-web.conf 

#BuildRoot: %{_tmppath}/%{name}-%{version} 

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root 

 

BuildRequires:  gcc 

BuildRequires:  make 

 

Requires(pre):gcc 

Requires(post):chkconfig     

Provides:Monitor 

 

%description 

 Zabbix is the ultimate open source availability and performance monitoring solution. Zabbix offers advanced monitoring, alerting, and visualization features today which are missing in other monitoring systems, even some of the best commercial ones 

 

%package server 

Summary:server version of zabbix 

Group: System Environment/Daemons 

Requires(post):      /sbin/chkconfig 

Requires(preun):     /sbin/chkconfig 

Requires(preun):     /sbin/service 

Requires(postun):    /sbin/service 

 

%description server 

Zabbix server common files 

 

%package agentd 

Summary:             Zabbix Agent 

Group:               Applications/Internet 

Requires(pre):       shadow-utils 

Requires(post):      /sbin/chkconfig 

Requires(preun):     /sbin/chkconfig 

Requires(preun):     /sbin/service 

Requires(postun):    /sbin/service 

 

%description agentd 

The Zabbix client agent, to be installed on monitored systems. 

 

 

%package proxy 

Summary:             Zabbix Proxy 

Group:               Applications/Internet 

Requires(pre):       shadow-utils 

Requires(post):      /sbin/chkconfig 

Requires(preun):     /sbin/chkconfig 

Requires(preun):     /sbin/service 

Requires(postun):    /sbin/service 

Requires:            fping 

 

%description proxy 

The Zabbix proxy 

 

 

%package web 

Summary:             Zabbix Web 

Group:               Applications/Internet 

BuildArch:           noarch 

Requires(pre):       shadow-utils 

Requires(post):      /sbin/chkconfig 

Requires(preun):     /sbin/chkconfig 

Requires(preun):     /sbin/service 

Requires(postun):    /sbin/service 

Requires:            dejavu-sans-fonts 

 

%description web 

The Zabbix web 

 

 

%prep 

%setup -q 

 

%build 

common_flags=" 

     --enable-dependency-tracking 

     --enable-proxy   

     --enable-agent  

     --enable-ipv6 

     --with-net-snmp 

     --with-libcurl 

     --disable-java 

     --sysconfdir=%{_sysconfdir}/zabbix 

     --datadir=%{_sharedstatedir} 

     " 

%configure $common_flags --enable-server --with-mysql  --with-cc-opt="%{optflags} $(pcre-config --cflags)" 

make %{?_smp_mflags} 

 

 

#./configure --prefix=/usr/local --sysconfdir=/etc/zabbix --libdir=/usr/lib --mandir=/usr/share/man   --enable-proxy  --enable-agent --with-sqlite3 

#make %{?_smp_mflags} 

 

 

%install 

%{__rm} -rf $RPM_BUILD_ROOT 

[ "%{buildroot}" != "/" ] && %{__rm} -rf %{buildroot} 

#%{__make} DESTDIR=%{buildroot} install 

 

%{__install} -d %{buildroot}%{_sbindir} 

%{__install} -d %{buildroot}%{_sysconfdir}/rc.d/init.d 

%{__install} -d %{buildroot}%{_datadir}/%{name} 

%{__install} -d %{buildroot}%{_sysconfdir}/%{name}/scripts 

%{__install} -d %{buildroot}%{_sysconfdir}/%{name}/zabbix_agentd.conf.d 

%{__install} -d %{buildroot}%{_mandir}/man1/ 

%{__install} -d %{buildroot}%{_mandir}/man8/ 

%{__install} -d %{buildroot}%{_localstatedir}/log/%{name} 

%{__install} -d %{buildroot}%{_localstatedir}/run/%{name} 

%{__install} -d %{buildroot}%{_sysconfdir}/%{name}/externalscripts 

%{__install} -d %{buildroot}%{_sysconfdir}/%{name}/alertscripts 

%{__install} -d %{buildroot}%{_datadir}/%{name} 

 

%{__make} DESTDIR=$RPM_BUILD_ROOT install 

 

 

#%{__mkdir} -p $RPM_BUILD_ROOT%{_initrddir} 

%{__install} -m 755 misc/init.d/fedora/core/zabbix_agentd   $RPM_BUILD_ROOT%{_initrddir}/zabbix_agentd 

%{__install} -m 755 misc/init.d/fedora/core/zabbix_server   $RPM_BUILD_ROOT%{_initrddir}/zabbix_server 

%{__install} -m 755 misc/init.d/fedora/core/zabbix_server    $RPM_BUILD_ROOT%{_initrddir}/zabbix_proxy 

%{__mv}  frontends/php $RPM_BUILD_ROOT/%{_datadir}/zabbix 

%{__sed} -i "s@BINARY_NAME=zabbix_server@BINARY_NAME=zabbix_proxy@g" $RPM_BUILD_ROOT%{_initrddir}/zabbix_proxy 

%{__sed} -i "s@BASEDIR=/usr/local@BASEDIR=/usr@g" $RPM_BUILD_ROOT%{_initrddir}/zabbix_server 

%{__sed} -i "s@BASEDIR=/usr/local@BASEDIR=/usr@g" $RPM_BUILD_ROOT%{_initrddir}/zabbix_agentd 

%{__sed} -i "s@BASEDIR=/usr/local@BASEDIR=/usr@g" $RPM_BUILD_ROOT%{_initrddir}/zabbix_proxy 

 

install -m 0755 -p src/zabbix_server/zabbix_server $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0755 -p src/zabbix_proxy/zabbix_proxy $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0755 -p src/zabbix_get/zabbix_get $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0755 -p src/zabbix_sender/zabbix_sender $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0755 -p src/zabbix_agent/zabbix_agent $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0755 -p src/zabbix_agent/zabbix_agentd $RPM_BUILD_ROOT%{_sbindir}/ 

install -m 0644 -p conf/zabbix_server.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ 

install -m 0644 -p conf/zabbix_agent.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ 

install -m 0644 -p conf/zabbix_agentd.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ 

install -m 0644 -p conf/zabbix_proxy.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ 

install -m 0644 -p man/zabbix_agentd.man  $RPM_BUILD_ROOT%{_mandir}/man8/zabbix_agentd.8 

install -m 0644 -p man/zabbix_server.man $RPM_BUILD_ROOT%{_mandir}//man8/zabbix_server.8 

install -m 0644 -p man/zabbix_proxy.man  $RPM_BUILD_ROOT%{_mandir}/man8/zabbix_proxy.8 

install -m 0644 -p man/zabbix_get.man    $RPM_BUILD_ROOT%{_mandir}/man1/zabbix_get.1 

install -m 0644 -p man/zabbix_sender.man $RPM_BUILD_ROOT%{_mandir}/man1/zabbix_sender.1 

 

%{__tar} xf %{SOURCE1} -C $RPM_BUILD_ROOT%{_sysconfdir}/%{name} 

install -m 0644 -p %{SOURCE2}  $RPM_BUILD_ROOT/%{_datadir}/%{name} 

install -d $RPM_BUILD_ROOT/%{_datadir}/%{name}/database/mysql/ 

install -m 0644 -p database/mysql/*  $RPM_BUILD_ROOT/%{_datadir}/%{name}/database/mysql/ 

sed -i \ 

    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{name}/zabbix_agentd.pid|g' \ 

    -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{name}/zabbix_agentd.log|g' \ 

    -e '/# UnsafeUserParameters=0/aUnsafeUserParameters=1\n' \ 

    -e '/# Include.*zabbix_agentd.conf.d\//aInclude=\/etc\/zabbix\/zabbix_agentd.conf.d\/\n' \ 

    -e 's|# LogFileSize=.*|LogFileSize=0|g' \ 

    -e 's|/usr/local|/usr|g' \ 

     $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/zabbix_agentd.conf 

 

sed -i \ 

    -e 's|/usr/local|/usr|g' \ 

    -e '/# UnsafeUserParameters=0/aUnsafeUserParameters=1\n' \ 

    -e 's@# Include=/usr/etc/zabbix_agentd.conf.d@Include=/etc/zabbix/zabbix_agentd.conf.d@g' \ 

     $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/zabbix_agent.conf 

 

sed -i \ 

    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{name}/zabbix_server.pid|g' \ 

    -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{name}/zabbix_server.log|g' \ 

    -e 's|# LogFileSize=.*|LogFileSize=0|g' \ 

    -e 's|^DBUser=root|DBUser=zabbix|g' \ 

    -e '/# DBPassword=/aDBPassword=zabbix\n' \ 

    -e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_sharedstatedir}/mysql/mysql.sock|g' \ 

    -e 's|# ExternalScripts=\${datadir}/zabbix/externalscripts|ExternalScripts=%{_sysconfdir}/%{name}/externalscripts|' \ 

    -e 's|/usr/local|/usr|g' \ 

     $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/zabbix_server.conf 

 

sed -i \ 

    -e 's|# PidFile=.*|PidFile=%{_localstatedir}/run/%{name}/zabbix_proxy.pid|g' \ 

    -e 's|^LogFile=.*|LogFile=%{_localstatedir}/log/%{name}/zabbix_proxy.log|g' \ 

    -e 's|# LogFileSize=.*|LogFileSize=0|g' \ 

    -e 's|^DBUser=root|DBUser=zabbix|g' \ 

    -e '/# DBPassword=/aDBPassword=zabbix\n' \ 

    -e 's|# DBSocket=/tmp/mysql.sock|DBSocket=%{_sharedstatedir}/mysql/mysql.sock|g' \ 

    -e 's|# ExternalScripts=\${datadir}/zabbix/externalscripts|ExternalScripts=%{_sysconfdir}/%{name}/externalscripts|' \ 

    -e 's|/usr/local|/usr|g' \ 

     $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/zabbix_proxy.conf 

 

%clean 

%{__rm} -rf $RPM_BUILD_ROOT 

 

 

%files server 

%defattr(-,root,root,-) 

%doc 

%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{name} 

%attr(0775,root,zabbix)   %dir %{_localstatedir}/run/%{name} 

%config(noreplace)  %{_sysconfdir}/%{name}/zabbix_server.conf 

%config(noreplace)  %{_sysconfdir}/%{name}/scripts 

%{_sbindir}/zabbix_sender 

%{_sbindir}/zabbix_server 

%{_sbindir}/zabbix_get 

 

%{_initrddir}/zabbix_server 

 

%config(noreplace) %{_sysconfdir}/%{name}/externalscripts 

%config(noreplace) %{_sysconfdir}/%{name}/alertscripts 

 

%{_mandir}/man8/zabbix_server.8* 

%{_mandir}/man1/zabbix_get.1* 

%{_mandir}/man1/zabbix_sender.1* 

 

%files agentd 

%defattr(-,root,root,-) 

%doc 

%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{name} 

%attr(0775,root,zabbix) %dir %{_localstatedir}/run/%{name} 

%attr(0775,root,zabbix) %dir %{_sysconfdir}/%{name}/zabbix_agentd.conf.d 

%config(noreplace)  %{_sysconfdir}/%{name}/zabbix_agent.conf 

%config(noreplace)  %{_sysconfdir}/%{name}/zabbix_agentd.conf 

%config(noreplace)  %{_sysconfdir}/%{name}/scripts 

%{_sbindir}/zabbix_sender 

%{_sbindir}/zabbix_agent 

%{_sbindir}/zabbix_agentd 

%{_sbindir}/zabbix_get 

%attr(0755,root,zabbix) %{_sysconfdir}/%{name}/scripts/* 

%attr(0755,root,zabbix) %{_sysconfdir}/%{name}/zabbix_agentd.conf.d/* 

 

%{_initrddir}/zabbix_agentd 

 

#%{_localstatedir}/run/%{name} 

#%{_localstatedir}/log/%{name} 

%config(noreplace) %{_sysconfdir}/%{name}/zabbix_agentd.conf.d 

 

%{_mandir}/man8/zabbix_agentd.8* 

%{_mandir}/man1/zabbix_get.1* 

%{_mandir}/man1/zabbix_sender.1* 

 

 

%files proxy 

%defattr(-,root,root,-) 

%doc 

%attr(0755,zabbix,zabbix) %dir %{_localstatedir}/log/%{name} 

%attr(0775,root,zabbix)   %dir %{_localstatedir}/run/%{name} 

%config(noreplace)  %{_sysconfdir}/%{name}/zabbix_proxy.conf 

%config(noreplace)  %{_sysconfdir}/%{name}/scripts 

%{_sbindir}/zabbix_proxy 

%{_initrddir}/zabbix_proxy 

%{_mandir}/man8/zabbix_proxy.8* 

#%{_localstatedir}/run/%{name} 

#%{_localstatedir}/log/%{name} 

%config(noreplace) %{_sysconfdir}/%{name}/externalscripts 

%config(noreplace) %{_sysconfdir}/%{name}/alertscripts 

 

%files web 

%defattr(-,root,root,-) 

%config(noreplace) %{_datadir}/%{name}/* 

 

%post server 

if [ $1 -eq 1 ]; then 

/sbin/chkconfig zabbix_server on 

fi 

 

%post agentd 

if [ $1 -eq 1 ]; then 

sed -i "s@Hostname=Zabbix server@Hostname=$HOSTNAME@g" /etc/zabbix/zabbix_agentd.conf 

getent group zabbix >/dev/null || groupadd -r  zabbix 

getent passwd zabbix >/dev/null || useradd -r -g zabbix -d %{_sharedstatedir}/zabbix -s   /sbin/nologin  -c "zabbix user" zabbix 

/sbin/chkconfig zabbix_agentd on 

/sbin/service zabbix_agentd start 

chown root:zabbix /bin/netstat 

chmod 4755 /bin/netstat 

fi 

 

%post proxy 

if [ $1 -eq 1 ]; then 

/sbin/chkconfig zabbix_proxy on 

fi 

 

%post web 

mv %{_datadir}/%{name}/php/* %{_datadir}/%{name} 

rm -rf %{_datadir}/%{name}/php 

 

[ -d "/etc/http/conf.d" ] &&  cp %{_datadir}/%{name}/conf/zabbix-web.conf /etc/http/conf.d &&chown -R apache.apache  %{_datadir}/%{name} && cat <<EOF 

-------------------------------------------------------- 

   you installed Apache Server,the zabbix-web.conf configuration file in /etc/http/conf.d 

-------------------------------------------------------- 

EOF 

[ -d "/etc/http/conf.d" ] || cat <<EOF 

------------------------------------------------------------------------------------------- 

   you should configure Web Server,the web file in %{_datadir}/%{name} 

------------------------------------------------------------------------------------------- 

EOF 

#then 

#mv %{_datadir}/%{name} /var/www/html/  

 cat <<EOF 

--------------------------------------------------------------------------------------------- 

   Author:itnihao    Mail:[email protected]    Blog: http://itnihao.blog.51cto.com 

   you can configure web server on directory /usr/share/zabbix 

   if your web server is Apache,you can use the /etc/httpd/conf.d/zabbix-web.conf file to  

   start your web server,and others you must configure your web server 

   to running the server and web, you will install packages; 

   yum  install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath mysql-connector-odbc mysql-devel libdbi-dbd-mysql net-snmp-devel curl-devel 

    #setting /etc/php.ini for zabbix 

    sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g"        /etc/php.ini 

    sed -i "s#max_execution_time = 30#max_execution_time = 300#g"       /etc/php.ini 

    sed -i "s#post_max_size = 8M#post_max_size = 32M#g"                 /etc/php.ini 

    sed -i "s#max_input_time = 60#max_input_time = 300#g"               /etc/php.ini 

    sed -i "s#memory_limit = 128M#memory_limit = 128M#g"                /etc/php.ini 

    sed -i "/;mbstring.func_overload = 0/ambstring.func_overload = 2\n" /etc/php.ini 

    #config apache 

    sed -i "s/DirectoryIndex index.html index.html.var/DirectoryIndex index.php index.html index.html.var/g" /etc/httpd/conf/httpd.conf 

    sed -i "s/ServerTokens OS/ServerTokens Prod/g"  /etc/httpd/conf/httpd.conf 

    #create mysql database to zabbix 

    service mysqld start 

    chkconfig mysqld on 

    mysqladmin -u root password  'mysqlpass' 

    mysql -uroot -pmysqlpass -e "create database zabbix character set utf8" 

    mysql -uroot -pmysqlpass -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'" 

    mysql -uroot -pmysqlpass -e "flush privileges" 

 

    #source zabbix database 

    cd /usr/share/zabbix 

    mysql -uzabbix -pzabbix zabbix < ./database/mysql/schema.sql 

    mysql -uzabbix -pzabbix zabbix < ./database/mysql/images.sql 

    mysql -uzabbix -pzabbix zabbix < ./database/mysql/data.sql 

---------------------------------------------------------------------------------------------- 

EOF 

#fi 

 

 

%pre server 

#add zabbix to services 

grep zabbix /etc/services 

[ "$?" != 0 ] && cat >> /etc/services <<EOF 

zabbix-agent    10050/tcp               #Zabbix Agent 

zabbix-agent    10050/udp               #Zabbix Agent  

zabbix-trapper  10051/tcp               #Zabbix Trapper  

zabbix-trapper  10051/udp               #Zabbix Trapper 

EOF 

# Add the "zabbix" user 

getent group zabbix >/dev/null || groupadd -r  zabbix 

getent passwd zabbix >/dev/null || useradd -r -g zabbix -d %{_sharedstatedir}/zabbix -s   /sbin/nologin  -c "zabbix user" zabbix 

 

%pre agentd 

#add zabbix to services 

grep zabbix /etc/services 

[ "$?" != 0 ] && cat >> /etc/services <<EOF 

zabbix-agent    10050/tcp               #Zabbix Agent 

zabbix-agent    10050/udp               #Zabbix Agent  

zabbix-trapper  10051/tcp               #Zabbix Trapper  

zabbix-trapper  10051/udp               #Zabbix Trapper 

EOF 

# Add the "zabbix" user 

getent group zabbix >/dev/null || groupadd -r  zabbix 

getent passwd zabbix >/dev/null || useradd -r -g zabbix -d %{_sharedstatedir}/zabbix -s   /sbin/nologin  -c "zabbix user" zabbix 

 

 

%preun server 

if [ "$1" = 0 ] 

then 

  /sbin/service zabbix_server stop >/dev/null 2>&1 

  /sbin/chkconfig --del zabbix_server 

fi 

 

%preun proxy 

if [ "$1" = 0 ] 

then 

  /sbin/service zabbix_proxy stop >/dev/null 2>&1 

  /sbin/chkconfig --del zabbix_proxy 

fi 

 

%preun agentd 

if [ "$1" = 0 ] 

then 

  /sbin/service zabbix_agentd stop >/dev/null 2>&1 

  /sbin/chkconfig --del zabbix_agentd 

fi 

 

%changelog 

* Fri Jan 25 2013  First version is build ok <[email protected]

- 2.0.4 

待续

©著作权归作者所有:来自51CTO博客作者吴兆松的原创作品,如需转载,请注明出处,否则将追究法律责任

rpmzabbixspec文件zabbix监控


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消