天天看點

zabbix詳細安裝

先配置好LAMP

1、先安裝好mysql(在此略)

2、yum install openssl*

tar -zxvf httpd-2.2.15.tar.gz

cd httpd-2.2.15

./configure --prefix=/usr/local/apache  --enable-modules  --enable-ssl  --with-mysql=/usr/local/mysql/ --enable-module=so

make ; make install

2、yum install curl*

tar -zxvf zlib-1.2.3.tar.gz

./configure --prefix=/usr/local/zlib

make;make install

64位應該還有點問題。我後面重新編譯了此軟體包。(以下為64位安裝)

cd zlib-1.2.3

CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/zlib/

make clean

yum install gcc

tar -zxvf libpng-1.2.31.tar.gz

cd libpng-1.2.31

./configure  --prefix=/usr/local/libpng

tar -zxvf freetype-2.3.5.tar.gz

cd freetype-2.3.5

./configure --prefix=/usr/local/freetype

tar -zxvf jpegsrc.v6b.tar.gz

cd jpeg-6b/

mkdir -pv /usr/local/jpeg/{,bin,lib,include,man/man1,man1}

./configure --prefix=/usr/local/jpeg  --enable-shared --enable-static

64位出現報錯,按以下安裝

cp /usr/share/libtool/config.guess .

cp /usr/share/libtool/config.sub .

yum install gettext

tar -zxvf fontconfig-2.4.2.tar.gz

cd fontconfig-2.4.2

./configure --with-freetype-config=/usr/local/freetype/bin/freetype-config   --with-expat=builtin

yum install fontconfig

tar -zxvf gd-2.0.35.tar.gz

cd gd-2.0.35

 CPPFLAGS="-I/usr/local/freetype/include -I/usr/local/jpeg/include -I/usr/local/libpng/include -I/usr/local/gettext/include" ./configure --prefix=/usr/local/gd2/ --with-zlib=/usr/local/zlib/ --with-png=/usr/local/libpng/ --with-jpeg=/usr/local/jpeg/ --with-freetype=/usr/local/freetype/ --with-gettext=/usr/local/gettext/

tar -zxvf libxml2-2.6.30.tar.gz

cd libxml2-2.6.30

./configure --prefix=/usr/local/libxml2

yum install libxslt

tar -zxvf php-5.2.6.tar.gz

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs  --with-mysql=/usr/local/mysql/ --enable-ftp --enable-sockets  --with-gd=/usr/local/gd2/ --with-jpeg-dir=/usr/local/jpeg/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --enable-bcmath --enable-soap --enable-mbstring --with-gettext=/usr/local/gettext

需要安裝gettext

cp php.ini-dist /usr/local/php/lib/php.ini

#cp /root/php-5.2.6/php.ini-dist /usr/local/php/lib/php.ini

   #vi /usr/local/php/lib/php.ini

   1.将extension=php_mysql.dll前面的#去掉

   2.将腳本逾時的30s(PHP max execution time) 改成300s

   3.将date.timezone ="asia/shanghai"

   注意:/usr/local/apache/conf/httpd.conf加上如下代碼使apache執行PHP

LoadModule php5_module modules/libphp5.so (這段代碼肯定可以在httpd.conf找到,如果找不到則需要重新編譯了)

   AddType application/x-httpd-php .php

   AddType application/x-httpd-php-source .phps

   (這兩行是讓apache知道php的檔案類型)

   DirectoryIndex index.html  改成DirectoryIndex index.html index.php

   讓apache預設的首頁也支援index.php

注意:重新開機apache伺服器,使得其加載php解析

在預設的/usr/local/apache/htdocs下建立info.php(給予777權限可執行權限)

<?php

phpinfo();

?>

yum install libssh

yum install  net-snmp net-snmp-devel

或安裝

yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI php-gd php-xml php-bcmath

tar -zxvf zabbix-1.8.9.tar.gz

cd zabbix-1.8.9

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy  --with-mysql=/usr/local/mysql/bin/mysql_config  --with-net-snmp  --with-libcurl

mysql> create database zabbix character set utf8;

grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

# cat ./create/schema/mysql.sql |mysql -uroot -proot zabbix          

# cat ./create/data/data.sql |mysql -uroot -proot zabbix              

# cat ./create/data/p_w_picpaths_mysql.sql |mysql -uroot -proot zabbix  

添加zabbix服務對應的端口(可以省略,但是官方建議有)

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

mkdir /etc/zabbix

cp misc/conf/*.conf /etc/zabbix/

修改

vi /etc/zabbix/zabbix_server.conf

sed -i 's/^\(DBUser=\).*$/\1zabbix/g' /etc/zabbix/zabbix_server.conf

sed -i 's/^\(.*\)\(DBPassword=\).*$/\zabbix/g' /etc/zabbix/zabbix_server.conf

給Zabbix服務端軟體應用程式做軟連接配接

cd /usr/local/zabbix/bin/

for i in *;do ln -s /usr/local/zabbix/bin/${i} /usr/bin/${i};done

cd /usr/local/zabbix/sbin/

for i in *;do ln -s /usr/local/zabbix/sbin/${i} /usr/sbin/${i};done

添加資料庫Lib檔案位置到/etc/ld.so.conf中,并使其生效

/usr/local/mysql/lib/mysql/加到 /etc/ld.so.conf

ldconfig生效

拷貝相應的web程式到相關WEB服務目錄下

cd /usr/local/src/zabbix-1.8.9

cp -r frontends/php /usr/local/apache/htdocs/zabbix

拷貝必要的zabbix服務端和用戶端啟動腳本到啟動目錄/etc/init.d目錄下,并進行相應修改

cp misc/init.d/redhat/8.0/zabbix_server /etc/init.d/

chmod a+x /etc/init.d/zabbix_server

cp misc/init.d/redhat/8.0/zabbix_agentd /etc/init.d/

chmod a+x /etc/init.d/zabbix_agentd

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_server

sed -i 's/^progdir=.*$/progdir="\/usr\/local\/zabbix\/sbin\/"/g' /etc/init.d/zabbix_agentd

修改PHP配置檔案php.ini内容使其滿足zabbix安裝配置需求

sed -i 's/^\(.*\)date.timezone =.*$/date.timezone = Asia\/Shanghai/g'   /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)post_max_size =.*$/post_max_size = 16M/g'  /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)max_execution_time =.*$/max_execution_time = 300/g' /usr/local/php/lib/php.ini

sed -i 's/^\(.*\)max_input_time =.*$/max_input_time = 300/g' /usr/local/php/lib/php.ini  

在改為中文時圖檔出現亂碼:

以下方法解決。

1.上傳本地系統的C:\WINDOWS\Fonts\simhei.ttf檔案到zabbixweb目錄的zabbix/fonts下.

2.vi zabbix/include/defines.inc.php把所有的DejaVuSans替換成simhei

報錯處理

報Fatal error: Call to undefined function bcscale()802的錯誤,那麼對PHP進行重新編譯。

p_w_picpathcreatefromstring() [<a href='function.p_w_picpathcreatefromstring'>function.p_w_picpathcreatefromstring</a>]: No PNG support in this PHP build [include/maps.inc.php:461]

:“<br /><b>Fatal error</b>:  Call to undefined function  p_w_picpathcreate() in <b>/usr/local/projects/ipcn/zabbix/include/classes/graph.inc.php</b> on line <b>1235</b><br />”。這裡的p_w_picpathcreate()是gd庫中用于建立圖像的方法,是以就從gd庫的狀态查起。寫了個phpinfo()頁,發現加載的擴充子產品配置檔案裡有gd.ini,但是卻沒有顯示gd子產品的資訊。于是在php.ini裡開啟錯誤日志記錄,重新開機了一下lighttpd,檢視error.log,發現了錯誤提示如下:“PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20060613+lfs/gd.so’”。

一開始我還以為是缺少了gd.so,但是檢視了下發現檔案是存在的,可是php無論如何都無法成功加載。于是乎上網搜尋解決方法,最後在一個老外的debian論壇上找到了解決方案。其實很簡單,具體操作如下:

首先執行

find / -name libgd.so*

找到了在“/usr/local/lib/”下有libgd.so、libgd.so.2和libgd.so.2.0.0三個檔案。然後切換到這個目錄下,将這個三個檔案移除。當然了,為防萬一最好建立個檔案夾将它們挪過去,以後需要的話還能恢複。指令如下:

cd /usr/local/lib/

mkdir libgd.bak

mv libgd.so* libgd.bak/

然後再次重新開機lighttpd,php就成功加載了gd子產品了。至于為什麼這樣我還不是很清楚,可能是在加載的時候會先從“/usr/local/lib”裡去讀取.so檔案,然後造成與正常的gd.so的沖突吧。嗯這個還有待研究。

server zabbix_server stop

出現報libmysqlclient.so.15 錯誤

那就直接在/目錄下面查找。然後把這個檔案放置/lib下面。

再試着重新開機即可。

繼續閱讀