源碼安裝zabbix3.0.4

1. 環境準備

1.1 系統環境及軟件:

Red Hat Enterprise Linux Server release 6.4 (Santiago)mysql-5.6.34
php-5.6.15.tar.gz

mysql-5.0.41.tar.gz

zabbix-3.0.4.tar.gz

libmcrypt-2.5.8.tar.gz

1.2 關閉iptablesSELINUX

# service iptables stop

# chkconfig iptables off

# setenforce 0

# vi /etc/sysconfig/selinux

SELINUX=disabled

zabbix3.0.4對環境的要求 :
MySQL 5.1
以上最好是 5.6或者更高的版本
PHP 5.4或者更高的版本

1.3 修改主機名及hosts
hostname zabbix-server.com

vi /etc/hosts#增加如下

192.168.70.161 zabbix-server.com

 

1.4 LAMP安裝

安裝Apahce, PHP, MySQL以及php連接mysql庫組件。

1.4.1 yum安裝httpd

#yum -y install httpd httpd-devel

chkconfig--level 2345 httpd on

servicehttpd start

1.4.2 源碼安裝mysql-5.0.41.tar.gz

安裝編譯源碼所需的工具和庫

yuminstall \

make \

gcc \

gcc-c++ \

ncurses-devel\

cmake

新增mysql用戶組:

groupadd mysql  

新增mysql用戶:

useradd  -g mysql mysql  -s/sbin/nologin

chmod 755 /home/mysql/

新建MySQL所需要的目錄

新建mysql安裝目錄:

mkdir -p /usr/local/mysql  

新建mysql數據庫數據文件目錄:

mkdir -p /data/mysqldb 

編譯安裝:

tar -zxvf mysql-5.0.41.tar.gz

cd mysql-5.0.41

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

注:重新運行配置,需要刪除CMakeCache.txt文件

rm -f CMakeCache.txt

make

makeinstall

修改mysql安裝目錄

chown-R mysql:mysql /usr/local/mysql
修改mysql數據庫文件目錄
chown -R mysql:mysql/data/mysqldb 

初始化配置

進入安裝路徑

# cd /usr/local/mysql

進入安裝路徑,執行初始化配置腳本,創建系統自帶的數據庫和表

# ./bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysqldb--user=mysql

注:在啓動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf"

注意:若在/etc目錄下會存在一個my.cnf,需要將此文件更名爲其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啓動。

在使用"yumupdate"更新系統後,需要檢查下/etc目錄下是否會多出一個my.cnf,如果多出,將它重命名成別的。否則,MySQL將使用這個配置文件啓動,可能造成無法正常啓動等問題。

複製mysql服務啓動配置文件

# mv/etc/my.cnf /etc/my.cnf.bak

# cp /root/mysql-5.0.41/support-files/my-huge.cnf/etc/my.cnf

vi /etc/my.cnf#在[client]和[mysqld]下加上如下行(登錄mysql中文不亂嗎):

default-character-set=utf8

啓動MySQL

添加服務,拷貝服務腳本到init.d目錄,並設置開機啓動

# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

vi/etc/init.d/mysqld#修改如下內容

basedir=/usr/local/mysql

datadir=/data/mysqldb

設置開機啓動

chkconfigmysqld on

servicemysqld start

配置用戶

MySQL啓動成功後,root默認沒有密碼,我們需要設置root密碼。

設置之前,我們需要先設置PATH,否則不能直接調用mysql

修改/etc/profile文件,在文件末尾添加

PATH=/usr/local/mysql/bin:$PATH

exportPATH

讓配置立即生效

source/etc/profile

修改數據庫的root密碼:

mysql -uroot 

 

mysql> SET PASSWORD = PASSWORD('123abc');

或是

                            spacer.gif

# mysqladmin -uroot -p password 123abc

Enter password:        這裏直接回車

Warning: Using a password on the commandline interface can be insecure.

 

若要設置root用戶可以遠程訪問,執行

 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIEDBY 'password' WITH GRANT OPTION;

 

root用戶的密碼,可以和本地不同。

spacer.gif

 

配置防火牆

防火牆的3306端口默認沒有開啓,若要遠程訪問,需要開啓這個端口

打開/etc/sysconfig/iptables文件,在“-A INPUT –m state --state NEW –m tcp–p –dport 22 –j ACCEPT”,下添加:

-A INPUT -m state --state NEW -m tcp -p-dport 3306 -j ACCEPT

然後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:

 serviceiptables restart 

1.4.3編譯安裝php-5.6.15.tar.gz

Yum安裝依賴:

yuminstall -y gcc \

gcc-c++\

autoconf\

libjpeg\

libjpeg-devel\

libpng\

libpng-devel\

freetype\

freetype-devel\

libpng\

libpng-devel\

libxml2\

libxml2-devel\

zlib \

zlib-devel\

glibc \

glibc-devel\

glib2 \

glib2-devel\

bzip2 \

bzip2-devel\

ncurses\

curl \

openssl-devel\

db4-devel\

libXpm-devel\

libX11-devel\

gmp-devel\

readline-devel\

libxslt-devel\

expat-devel\

xmlrpc-c\

libcurl\

libcurl-devel

安裝加密擴展庫,先安裝Libmcrypt

spacer.gif

tar-zxvf libmcrypt-2.5.8.tar.gz

cdlibmcrypt-2.5.8

./configure

 make

makeinstall

安裝php-5.6.15.tar.gz

[root@localhost ~]# tar -zxvf php-5.6.15.tar.gz

cd php-5.6.15

./configure\

--prefix=/usr/local/php\

--with-config-file-path=/etc\

--with-apxs2=/usr/sbin/apxs\

--with-mysql=/usr/local/mysql\

--with-mysqli=/usr/local/mysql/bin/mysql_config\

--enable-inline-optimization\

--enable-fpm\

--enable-soap\

--with-libxml-dir\

--with-xmlrpc\

--with-openssl\

--with-mcrypt\

--with-mhash\

--with-pcre-regex\

--with-sqlite3\

--with-zlib\

--enable-bcmath\

--with-iconv\

--with-bz2\

--enable-calendar\

--with-curl\

--with-cdb\

--enable-dom\

--enable-exif\

--enable-fileinfo\

--enable-filter\

--with-pcre-dir\

--enable-ftp\

--with-gd\

--with-openssl-dir\

--with-jpeg-dir\

--with-png-dir\

--with-zlib-dir  \

--with-freetype-dir\

--enable-gd-native-ttf\

--with-gettext\

--with-gmp\

--with-mhash\

--enable-json\

--enable-mbstring\

--disable-mbregex\

--disable-mbregex-backtrack\

--with-libmbfl\

--with-onig\

--enable-pdo\

--with-pdo-mysql\

--with-zlib-dir\

--with-pdo-sqlite\

--with-readline\

--enable-session\

--enable-shmop\

--enable-simplexml\

--enable-sockets\

--enable-sysvmsg\

--enable-sysvsem\

--enable-sysvshm\

--enable-wddx\

--with-libxml-dir  \

--with-xsl\

--enable-zip\

--enable-mysqlnd-compression-support\

--with-pear

spacer.gif

其中--with-apxs2是用來生成Apache的PHP模塊libphp5.so的,不需要可以去掉.

make
make install

php配置

php.ini是php運行核心配置文件

php-fpm.conf是php-fpm進程服務的配置文件

spacer.gif

 # cd php-5.6.28

# cp php.ini-production /etc/php.ini

# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf

# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

# chmod +x /etc/init.d/php-fpm

fpm測試php配置

#/usr/local/php/sbin/php-fpm -t

[14-Oct-201710:13:46] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test issuccessful 

添加到server裏管理啓動:

# chkconfig --add php-fpm

# chkconfig php-fpm on

# service php-fpm start

Starting php-fpm  done

netstat–anpt

tcp       0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      10847/php-fpm

修改PHP默認端口:

vi/usr/local/php/etc/php-fpm.conf

listen = 127.0.0.1:8000

#servicephp-fpm restart

#netstat –anpt

tcp       0      0 127.0.0.1:8000              0.0.0.0:*                   LISTEN      20527/php-fpm

1.4.4配置apache訪問PHP

配置 httpd.conf apache支持PHP

# vi /etc/httpd/conf/httpd.conf

找到 AddType application/x-gzip .gz.tgz 在其下添加如下內

AddType application/x-httpd-php .php

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

DirectoryIndex index.php index.html   //設置首頁默認順序

LoadModulephp5_module       /usr/lib64/httpd/modules/libphp5.so  這個模塊會在編譯的自動生成加入進去

1.4.5測試頁面:

vi /var/www/html/test.php

<?php

phpinfo();

?>

 http://192.168.70.161/test.php

2. 安裝zabbix

2.1 server: 192.168.70.161)服務端及客戶端

2.1.1 安裝zabbix所需的組件

yum -y install curllibcurl-devel net-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql mysql-devel gccgcc++ make libxml2 libxml2-devel 

2.1.2 創建zabbix用戶組與用戶:

# groupaddzabbix

# useradd -gzabbix -s /sbin/nologin zabbix

2.1.3 安裝server 及agentd:

#[root@localhost ~]# tar -xzvf zabbix-3.0.4.tar.gz

# cdzabbix-3.0.4

# ./configure--prefix=/usr/local/zabbix-server --enable-server --with-mysql --with-net-snmp --with-libcurl--with-libxml2 --enable-agent --enable-ipv6

注:--enable-server表明安裝server,--enable-agent表明安裝agent

make && make install

2.1.4 創建數據庫和授權用戶

說明:數據文件導入的順序不能變,也可以在命令行使用mysql命令導入數據文件

[root@localhost zabbix-3.0.4]#service mysqld start

[root@localhost zabbix-3.0.4]# mysql -uroot -p

 

mysql> createdatabase zabbix character set utf8;

 

mysql> grantall on zabbix.* to zabbix@'%' identified by '123456';

 

mysql> flushprivileges;

spacer.gif

 

 

2.1.5導入數據庫sql腳本:

# cd zabbix-3.0.4

在解壓的zabbix目錄下,將database/mysql目錄下三個sql文件導入到zabbix數據庫裏。(下面用的是zabbix用戶來導入文件,這個用戶在數據庫是默認存在的)

# mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql

 

# mysql -uzabbix -p123456 zabbix <database/mysql/images.sql

 

# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql

2.1.6修改server配置文件並啓動

mkdir -p /var/www/zabbix

cd zabbix-3.0.4

cp -R frontends/php   /var/www/zabbix

chmod 777/var/www/zabbix/php/conf

vi/usr/local/zabbix-server/etc/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

DBHost=192.168.70.161

DBName=zabbix

DBUser=zabbix

DBPassword=123456

創建日誌文件存放位置:
mkdir/var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix

啓動zabbix服務:

ln -s/usr/local/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
/usr/local/zabbix-server/sbin/zabbix_server

2.1.7修改agentd配置文件並啓動

vi/usr/local/zabbix-server/etc/zabbix_agentd.conf

LogFile=/var/log/zabbix/zabbix_agentd.log

EnableRemoteCommands=1

LogRemoteCommands=1

Server=127.0.0.1

ServerActive=127.0.0.1

Hostname=192.168.70.161

啓動zabbix服務:


/usr/local/zabbix-server/sbin/zabbix_agentd

2.1.8server來管理啓動zabbix  server服務:

# cdzabbix-3.0.4

# cpmisc/init.d/fedora/core/zabbix_server /etc/init.d/

# chkconfig --addzabbix_server

# chkconfig zabbix_server on

創建軟鏈接:

ln -s/usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/

啓動服務:

vi /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix-server

service zabbix_server start

2.1.9server來管理啓動zabbix  agentd服務:

# cdzabbix-3.0.4

# cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/

# chkconfig --addzabbix_agentd

# chkconfig zabbix_agentd on

創建軟鏈接:

ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/

啓動服務:

vi /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix-server

service  zabbix_agentd start

2.2 agent:  192.168.70.160)客戶端

2.2.1安裝zabbix所需的組件

yum -y install curllibcurl-devel net-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql mysql-devel gccgcc++ make libxml2 libxml2-devel 

2.2.2 創建zabbix用戶組與用戶:

# groupadd zabbix

# useradd -g zabbix -s /sbin/nologin zabbix

2.2.3安裝zabbix-3.0.4.tar.gz agentd

#[root@localhost ~]# tar -xzvf zabbix-3.0.4.tar.gz

# cdzabbix-3.0.4

# ./configure --prefix=/usr/local/zabbix-agent  --enable-agent

make && make install

2.2.4修改agentd配置文件並啓動

# vi /usr/local/zabbix-agent/etc/zabbix_agentd.conf

LogFile=/var/log/zabbix/zabbix_agentd.log

EnableRemoteCommands=1

LogRemoteCommands=1

Server=192.168.70.161

ServerActive=192.168.70.161

Hostname=192.168.70.160

2.2.5  server來管理啓動zabbix服務:

# cd zabbix-3.0.4

# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

# chkconfig --add zabbix_agentd

# chkconfig zabbix_agentd on

創建軟鏈接:

# ln -s /usr/local/zabbix/sbin/zabbix_agentd  /usr/local/sbin/

啓動服務:

vi /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix-agent

service zabbix_agentd start

2.3 配置zabbix web頁面(server)

vi /etc/httpd/conf.d/zabbix.conf

# Zabbix monitoring systemphp web frontend

#Alias/zabbix/usr/share/zabbix

Alias /zabbix/var/www/zabbix/php

<Directory "/var/www/zabbix/php">

    Options FollowSymLinks

       AllowOverride None

       Order allow,deny

       Allow from all

    #Require all granted

    <IfModule mod_php5.c>

        php_value max_execution_time 300

        php_value memory_limit 128M

        php_value post_max_size 16M

        php_value upload_max_filesize 2M

        php_value max_input_time 300

        php_value always_populate_raw_post_data-1

        # php_value date.timezone Europe/Riga

        php_value date.timezone Asia/Shanghai

    </IfModule>

</Directory>

注:其中php_value date.timezone Asia/Shanghai主要是定義php的時區。

ln -s /usr/local/zabbix-server/sbin/zabbix_server/usr/sbin/zabbix_server

zabbix_server -V

ln -s /usr/local/zabbix-server/sbin/zabbix_agentd  /usr/sbin/zabbix_agentd

替換監控圖像上系統默認的字體(默認字體不支持中文,如果不替換,圖像上會顯示亂碼)在Windows系統中的C:\Windows\Fonts目錄中複製出一箇中文字體文件,例如simhei.ttf (黑體 常規)把字體文件simkai.ttf上傳到zabbix站點根目錄下/var/www/zabbix/php/fonts文件夾中,並備份默認的字體文件。

#cd /var/www/zabbix/php/fonts

#mv DejaVuSans.ttf DejaVuSans.ttf.bak

修改simkai.ttf名稱爲DejaVusSans.ttf

#mv simhei.ttf DejaVuSans.ttf

最後重啓apache,zabbix服務,如下:

service  httpd restart

servicezabbix_server restart

然後訪問http://192.168.70.161/zabbix/setup.php這個地址,如下進行安裝:

0352d3f603f50890a773185a0874edea.png-wh_

2eeec70aeb6ddfef74054de866feeab4.png-wh_

3ff457ea5da75b90a2202ea6abe72520.png-wh_

7fa1bd1ab01b4979bb940a9939c7489c.png-wh_

45c45ef0418c8ee75472575de1d7056b.png-wh_




完成後即可登錄:zabbix默認的用戶名和密碼是Admin/zabbix

8220b5bd7b14622546f17514f1553243.png-wh_

爲了防止誤操作重新安裝的風險(http://192.168.70.161/zabbix/setup.php)可以將setup.php重命名如下:

#mv/var/www/zabbix/php/setup.php  /var/www/zabbix/php/setup.php.bak

注:如果創建zabbix.conf.php文件這一步有報錯話,可以手動下載好那個文件在相應目錄創建zabbix.conf.php文件複製裏面的內容即可:

vi /var/www/zabbix/php/conf/zabbix.conf.php

<?php

// Zabbix GUI configuration file.

global $DB;

$DB['TYPE']     ='MYSQL';

$DB['SERVER']   = '192.168.70.161';

$DB['PORT']     ='3306';

$DB['DATABASE'] = 'zabbix';

$DB['USER']     = 'zabbix';

$DB['PASSWORD'] = 'zabbix';

// Schema name. Used for IBM DB2 and PostgreSQL.

$DB['SCHEMA'] = '';

$ZBX_SERVER      = '192.168.70.161';

$ZBX_SERVER_PORT = '10051';

$ZBX_SERVER_NAME = '';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

###################################################

2.4 配置郵件告警

yum install mailx –y

mv /etc/mail.rc/etc/mail.rc.bak

vi /etc/mail.rc

set from="[email protected]"

set smtp=11.201.249.14

set amtp-auth-user=xkeqiang

set smtp-auth-password=smgnews

set smtp-auth=login

vi/usr/local/zabbix-server/share/zabbix/alertscripts/mailx.sh

#!/bin/sh

echo "$3">/tmp/1.txt

dos2unix /tmp/1.txt

mail -s "$2"$1</tmp/1.txt

echo"#############################`date`##############################">>/tmp/zabbix-mail.txt

echo "mail to $1">>/tmp/zabbix-mail.txt

echo "$2">>/tmp/zabbix-mail.txt

echo "$3">>/tmp/zabbix-mail.txt

 

chmod +x/usr/local/zabbix-server/share/zabbix/alertscripts/mailx.sh

e45a55624f8fdcaf11027a2cf14886ac.png-wh_

e76290e2fa84c1ccf3a4ade3e1300c46.png-wh_

abbebdd5a692fd90aa957c14cd8e9230.png-wh_

cfd5eb3267aac6947e9ae82e9eda7de1.png-wh_

8e5813ce5d59bc40e0252e25afd26d33.png-wh_

ea15977f04692eb99579037de82d9f9b.png-wh_

######################################

告警信息:

告警主機:{HOSY.NAME}

告警IP{HOST.IP}

告警時間:{EVENT.DATE}  {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警名稱:{TRIGGER.NAME}

目前狀態:{TRIGGER.STATUS}

告警URL:{TRIGGER.URL}

時間ID{EVENT.ID}

告警信息: {ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

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

告警恢復信息:

告警主機:{HOST.NAME}

告警IP    {HOST.IP}

告警時間:{EVENT.DATE}  {EVENT.TIME}

恢復時間:{EVENT.DATE}  {EVENT.RECOVERY.TIME}

告警等級:{TRIGGER.SEVERITY}

告警名稱:{TRIGGER.NAME}

目前狀態:{TRIGGER.STATUS}

告警URL:{TRIGGER.URL}

事件ID    {EVENT.ID}

告警詳細信息如下:

{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

##################################################

3.2.4版本上

告警主機:{HOST.NAME}

告警IP    {HOST.IP}

告警時間:{EVENT.DATE}  {EVENT.TIME}

告警等級:{TRIGGER.SEVERITY}

告警名稱:{TRIGGER.NAME}

目前狀態:{TRIGGER.STATUS}

告警URL:{TRIGGER.URL}

事件ID    {EVENT.ID}

告警詳細信息如下:

{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

 

END!

############################################

 

mysql> select *  from alerts order by clock  desc limit 10 \G;

mysql> set names utf8;

mysql> select  *  fromalerts  where message like '%vm.memory%'\G;

mysql> select  *  fromalerts  order by clock desc limit 10 \G; #最近10條告警信息

mysql> select  from_unixtime(clock)  from alerts order by clock desc limit 10 \G


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章