1. 程式人生 > >CentOS 源碼安裝 zabbix3.4

CentOS 源碼安裝 zabbix3.4

源碼安裝zabbix

環境:
CentOS: 6.9
IP:192.168.1.92
JDK:1.7.0.45
ngingx: 1.13.6
mysql:  5.7.21-linux-glibc2.5-x86_64
php:    5.6.31
zabbix: 3.4.2

源碼包存放路徑:/data/tools/
安裝路徑:      /usr/local/

1.關閉防火墻和selinux

1.1. 關閉iptables

]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
]# chkconfig --level 35 iptables off

1.2. 關閉selinux

]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
]# setenforce 0
]# getenforce       # 查看selinux的模式
Disabled
開啟模式顯示結果:Enforcing
關閉模式顯示結果:Disabled

2.二進制安裝JDK(1.7.0.45):用於java-geteway

2.1. 上傳JDK1.7到/data/tools/目錄下,解壓:

]# tar xf jdk-7u45-linux-x64.tar.gz -C /opt/

2.2. 添加環境變量,添加Java進程;

]# vim /etc/profile
# java
export JAVA_HOME=/opt/jdk1.7.0_45
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib 
]# source /etc/profile 	# 使配置文件立即生效;
]# echo $PATH
]# java -version            # 驗證
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)

3.安裝編譯工具

]# yum install gcc gcc-c++ make automake autoconf
包 gcc-4.4.7-18.el6.x86_64 已安裝並且是最新版本
包 gcc-c++-4.4.7-18.el6.x86_64 已安裝並且是最新版本
包 1:make-3.81-23.el6.x86_64 已安裝並且是最新版本
包 automake-1.11.1-4.el6.noarch 已安裝並且是最新版本
包 autoconf-2.63-5.1.el6.noarch 已安裝並且是最新版本
無須任何處理

4.源碼安裝ngingx(1.13.6)

4.1 下載解壓編譯

]# yum install pcre-devel openssl-devel
軟件包                   架構      版本               倉庫   
=========================================================
正在安裝:
 openssl-devel           x86_64     1.0.1e-57.el6     base   
 pcre-devel              x86_64     7.8-7.el6         base   
為依賴而安裝:
 keyutils-libs-devel     x86_64     1.4-5.el6         base   
 krb5-devel              x86_64     1.10.3-65.el6     base   
 libcom_err-devel        x86_64     1.41.12-23.el6    base   
 libkadm5                x86_64     1.10.3-65.el6     base   
 libselinux-devel        x86_64     2.0.94-7.el6      base   
 libsepol-devel          x86_64     2.0.41-4.el6      base   
 zlib-devel              x86_64     1.2.3-29.el6      base   
為依賴而更新:
 e2fsprogs               x86_64     1.41.12-23.el6    base   
 e2fsprogs-libs          x86_64     1.41.12-23.el6    base   
 krb5-libs               x86_64     1.10.3-65.el6     base   
 libcom_err              x86_64     1.41.12-23.el6    base   
 libss                   x86_64     1.41.12-23.el6    base   
 openssl                 x86_64     1.0.1e-57.el6     base   
============================================================
]# useradd -u 888 -M -s /sbin/nologin www
]# mkdir -pv /data/tools/
]# cd /data/tools/
]# wget http://nginx.org/download/nginx-1.13.6.tar.gz
]# tar xf nginx-1.13.6.tar.gz 
]# cd nginx-1.13.6
]# ./configure --prefix=/usr/local/nginx-1.13.6 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
]# echo $? 
0
]# make && make install
]# ln -s  /usr/local/nginx-1.13.6 /usr/local/nginx

4.2 配置

]# cat /usr/local/nginx/conf/nginx.conf             # 全部替換
worker_processes  1;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
						  '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        access_log  logs/host.access.log  main;
        root   html;
        index  index.php index.html index.htm;

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ .*\.(php|php5)?$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
    }
}

4.3 啟動nginx

]# cd /usr/local/nginx/sbin
]# ./nginx
]# ss -tnl | grep 80

5.二進制安裝mysql(5.7.15)

5.1. 安裝mysql數據庫

參考:http://blog.51cto.com/moerjinrong/2092614

5.2. 增加zabbix用戶及授權

]# mysql -uroot -p 
]# mysql> create database zabbix character set utf8 collate utf8_bin; 
]# mysql> grant all privileges on zabbix.* to "zabbix"@"%" identified by '<password>'; 
]# mysql> quit;

6.源碼安裝php(5.6.31)

6.1 安裝依賴包

]# wget -O /etc/yum.repos.d/epel.repo  http://mirrors.aliyun.com/repo/epel-6.repo
]# yum install curl curl-devel freetype freetype-devel gd gd-devel libjpeg libjpeg-devel libjpeg-turbo-devel 
 軟件包                 架構   版本                倉庫    
================================================================
正在安裝:
 freetype-devel         x86_64      2.3.11-17.el6     base    
 gd                     x86_64      2.0.35-11.el6     base    
 gd-devel               x86_64      2.0.35-11.el6     base    
 libcurl-devel          x86_64      7.19.7-53.el6_9   updates 
 libjpeg-turbo-devel    x86_64      1.2.1-3.el6_5     base    
正在升級:
 curl                   x86_64      7.19.7-53.el6_9   updates 
為依賴而安裝:
 fontconfig-devel       x86_64      2.8.0-5.el6       base    
 libX11-devel           x86_64      1.6.4-3.el6       base    
 libXau-devel           x86_64      1.0.6-4.el6       base    
 libXpm                 x86_64      3.5.10-2.el6      base    
 libXpm-devel           x86_64      3.5.10-2.el6      base    
 libidn-devel           x86_64      1.18-2.el6        base    
 libpng-devel           x86_64      2:1.2.49-2.el6_7  base    
 libxcb-devel           x86_64      1.12-4.el6        base    
 xorg-x11-proto-devel   noarch      7.7-14.el6        base    
為依賴而更新:
 libX11                 x86_64      1.6.4-3.el6       base    
 libX11-common          noarch      1.6.4-3.el6       base    
 libcurl                x86_64      7.19.7-53.el6_9   updates 
 libxcb                 x86_64      1.12-4.el6        base    
=================================================================
包 curl-7.19.7-53.el6_9.x86_64 已安裝並且是最新版本
包 libcurl-devel-7.19.7-53.el6_9.x86_64 已安裝並且是最新版本
包 freetype-2.3.11-17.el6.x86_64 已安裝並且是最新版本
包 freetype-devel-2.3.11-17.el6.x86_64 已安裝並且是最新版本
包 gd-2.0.35-11.el6.x86_64 已安裝並且是最新版本
包 gd-devel-2.0.35-11.el6.x86_64 已安裝並且是最新版本
包 libjpeg-turbo-1.2.1-3.el6_5.x86_64 已安裝並且是最新版本
包 libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64 已安裝並且是最新版本
包 libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64 已安裝並且是最新版本
無須任何處理

]# yum install libpng libpng-devel libxml2-devel libcurl-devel libxslt-devel zlib zlib-devel
依賴關系解決
==================================================================
 軟件包                 架構      版本               倉庫    
===================================================================
正在安裝:
 libxml2-devel          x86_64    2.7.6-21.el6_8.1    base
 libxslt-devel          x86_64    1.1.26-2.el6_3.1    base
為依賴而安裝:
 libgcrypt-devel        x86_64    1.4.5-12.el6_8      base
 libgpg-error-devel     x86_64    1.7-4.el6           base
 libxslt                x86_64    1.1.26-2.el6_3.1    base
為依賴而更新:
 libgcrypt              x86_64    1.4.5-12.el6_8      base
 libxml2                x86_64    2.7.6-21.el6_8.1    base
 libxml2-python         x86_64    2.7.6-21.el6_8.1    base
===================================================================
包 2:libpng-1.2.49-2.el6_7.x86_64 已安裝並且是最新版本
包 2:libpng-devel-1.2.49-2.el6_7.x86_64 已安裝並且是最新版本
包 libxml2-devel-2.7.6-21.el6_8.1.x86_64 已安裝並且是最新版本
包 libcurl-devel-7.19.7-53.el6_9.x86_64 已安裝並且是最新版本
包 libxslt-devel-1.1.26-2.el6_3.1.x86_64 已安裝並且是最新版本
包 zlib-1.2.3-29.el6.x86_64 已安裝並且是最新版本
包 zlib-devel-1.2.3-29.el6.x86_64 已安裝並且是最新版本
無須任何處理

]# yum install openldap  openldap-devel
依賴關系解決
====================================================================
 軟件包              架構       版本                 倉庫   
====================================================================
正在安裝:
 openldap-devel      x86_64     2.4.40-16.el6        base
正在升級:
 openldap            x86_64     2.4.40-16.el6        base
為依賴而安裝:
 cyrus-sasl-devel    x86_64     2.1.23-15.el6_6.2    base
===================================================================


]# yum install libmcrypt libmcrypt-devel mhash mcrypt           # epel
依賴關系解決
==================================================================
 軟件包              架構       版本                 倉庫
===================================================================
正在安裝:
 libmcrypt           x86_64     2.5.8-9.el6          epel
 libmcrypt-devel     x86_64     2.5.8-9.el6          epel
 mcrypt              x86_64     2.6.8-10.el6         epel
 mhash               x86_64     0.9.9.9-3.el6        epel
==================================================================

6.2 安裝libiconv包(php版本5.5及以上內嵌)

]# yum localinstall libiconv-1.15-1.x86_64.rpm
或
]# tar xf libiconv-1.15.tar.gz 
]# cd libiconv-1.15
]# ./configure --prefix=/usr/local/libiconv
]# echo $?
]# make && make install
]# libtool --finish /usr/local/libiconv/lib
]# echo '/usr/local/libiconv/lib' >> /etc/ld.so.conf
]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/data/mysql/lib
/usr/local/libiconv/lib
]# ldconfig

6.3 編譯安裝php

]# cd /data/tools/
]# tar xf php-5.6.31.tar.gz
]# cd php-5.6.31/
]# ./configure --prefix=/usr/local/php-5.6.31 --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --with-ldap --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --with-gettext --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-opcache=no  --enable-ftp

]# cp -frp /usr/lib64/libldap* /usr/lib/        #報configure: error: Cannot find ldap libraries in /usr/lib.時執行
]# echo $?
0
]# make && make install

]# cp /data/tools/php-5.6.31/php.ini-production /usr/local/php-5.6.31/lib/php.ini
]# ln -s /usr/local/php-5.6.31 /usr/local/php
]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

6.4 配置

查看php模塊
]# /usr/local/php/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
gettext
hash
iconv
json
ldap
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
[Zend Modules]

修改php配置文件
]# egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone|^always_populate_raw_post_data" /usr/local/php/lib/php.ini
372:max_execution_time = 30
382:max_input_time = 60
660:post_max_size = 8M

]# sed -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time =300#;s#post_max_size = 8M#post_max_size = 16M#;s#;always_populate_raw_post_data = -1#always_populate_raw_post_data = -1#;s#;date.timezone =#date.timezone = Asia/Shanghai#' /usr/local/php/lib/php.ini

]# egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone|^always_populate_raw_post_data" /usr/local/php/lib/php.ini
372:max_execution_time = 300
382:max_input_time =300
660:post_max_size = 16M
702:always_populate_raw_post_data = -1
936:date.timezone = Asia/Shanghai

6.5 啟動PHP

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

7.源碼安裝zabbix(3.4.2)

7.1 依賴包

]# yum install net-snmp net-snmp-devel fping unixODBC-devel openssl-devel OpenIPMI-devel libevent libevent-devel pcre-devel
依賴關系解決
==================================================================
 軟件包             架構      版本                    倉庫   
==================================================================
正在安裝:
 OpenIPMI-devel          x86_64    2.0.16-14.el6      base
 fping                   x86_64    2.4b2-10.el6       epel
 libevent                x86_64    1.4.13-4.el6       base
 libevent-devel          x86_64    1.4.13-4.el6       base
 net-snmp                x86_64    1:5.5-60.el6       base
 net-snmp-devel          x86_64    1:5.5-60.el6       base
 unixODBC-devel          x86_64    2.2.14-14.el6      base
為依賴而安裝:
 OpenIPMI                x86_64    2.0.16-14.el6      base
 OpenIPMI-libs           x86_64    2.0.16-14.el6      base
 elfutils-devel          x86_64    0.164-2.el6        base
 elfutils-libelf-devel   x86_64    0.164-2.el6        base
 file-devel              x86_64    5.04-30.el6        base
 libevent-doc            noarch    1.4.13-4.el6       base
 libevent-headers        noarch    1.4.13-4.el6       base
 lm_sensors-devel        x86_64    3.1.1-17.el6       base
 lm_sensors-libs         x86_64    3.1.1-17.el6       base
 ncurses-devel           x86_64    5.7-4.20090207.el6 base
 net-snmp-libs           x86_64    1:5.5-60.el6       base
 popt-devel              x86_64    1.13-7.el6         base
 rpm-devel               x86_64    4.8.0-55.el6       base
 tcp_wrappers-devel      x86_64    7.6-58.el6         base
 unixODBC                x86_64    2.2.14-14.el6      base
====================================================================

7.2 安裝

]# useradd zabbix -s /sbin/nologin
]# cd /data/tools/
]# tar xf zabbix-3.4.2.tar.gz
]# cd zabbix-3.4.2
]# ./configure --prefix=/usr/local/zabbix-3.4.2 --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl
]# ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib    # 報錯時執行:configure: error: Not found mysqlclient library
]# echo $?
0
]# make && make install         # 如果報錯:../../../include/zbxdb.h:65:20: error: mysql.h: No such file or directory; 說明:zabbix編譯時找不到mysql.h文件,請卸載系統自帶的mysql,或安裝 mysql-devel包

]# ln -s /usr/local/zabbix-3.4.2 /usr/local/zabbix

7.3 導入數據庫

]# cd /data/tools/zabbix-3.4.2/database/mysql
]# mysql -uzabbix -p<password> zabbix < schema.sql
]# mysql -uzabbix -p<password> zabbix < images.sql
]# mysql -uzabbix -p<password> zabbix < data.sql

]# ln -s /usr/local/zabbix/etc/ /etc/zabbix
]# ln -s /usr/local/zabbix/bin/* /usr/bin/
]# ln -s /usr/local/zabbix/sbin/* /usr/sbin/

7.4 拷貝啟動腳本

]# cd /data/tools/zabbix-3.4.2/misc/init.d/fedora/core
]# cp zabbix_* /etc/init.d/

7.5 修改啟動文件

]# sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server 
]# sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_agentd

7.6 修改zabbix服務端配置文件

]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<password>       #數據庫中zabbix用戶的密碼
DBSocket=/data/mysql/mysql.sock
Timeout=4
LogSlowQueries=3000

7.7 修改zabbix客戶端配置文件

]# egrep -v '^$|#' /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
Server=127.0.0.1            # 被動模式中服務端或代理端的IP地址
ServerActive=127.0.0.1      # 主動模式中服務端或代理端的IP地址
Hostname=zabbix             # 當前客戶端所在服務器的主機名;

7.8 復制zabbix站點到nginx站點目錄

]# cp -a /data/tools/zabbix-3.4.2/frontends/php /usr/local/nginx/html/zabbix

7.9 站點授權

]# chown -R www.www /usr/local/nginx/html/zabbix

7.10 啟動zabbix服務

]# service zabbix_server start  # 啟動zabbix服務端
]# ss -tnl |grep 10051
]# service zabbix_agentd start  # 啟動zabbix客戶端
]# ss -tnl |grep 10050

7.11 訪問zabbix

http://192.168.1.92/zabbix

第一步:您應該看到前端安裝向導的第一個屏幕;
第二步:確保滿足php所有軟件先決條件;
第三步:輸入連接到數據庫的詳細信息。必須已經創建了Zabbix數據庫並授權;
            數據庫類型:mysql
            host :localhost     # 不行的話,可以嘗試:127.0.0.1
            port :0             # 0表示默認 
            DB name: zabbix         # 庫名稱
            user :zabbix            # mysql用戶
            password :密碼            # mysql普通用戶密碼
第四步:輸入Zabbix服務器詳細信息;
第五步:查看設置摘要;
第六步:完成安裝;安裝後生成的配置文件:/usr/local/nginx-1.13.6/html/zabbix/conf/zabbix.conf.php
第七步:Zabbix前端準備好了!默認用戶名為:Admin,密碼:zabbix;

7.12 zabbix客戶端:其它主機采用rpm安裝

   ]# yum install zabbix-agent zabbix-sender

    ]# vim /etc/zabbix/zabbix_agentd.conf(3個*號開頭的必須配置)
    #### Passive checks related (被動檢測相關的配置:agent等待server過來請求數據)
        *Server=127.0.0.1   
            # 定義了被動模式中服務端或代理端的IP地址,多個用逗號隔開授權給哪些zabbix-server或zabbix-proxy過來采集數據的服務器地址列表;
        ListenPort=10050
        ListenIP=0.0.0.0    # 本機的所有地址;
        StartAgents=3       # agent進程數量;

    #### Active checks related(主動檢測相關的配置:agent主動向server發送監控數據)
        *ServerActive=IP[:Port]
            # 定義了主動模式中服務端或代理端的IP地址,多個用逗號隔開,當前agent主動發送監控數據到server端;
        *Hostname=HOSTNAME  # 當前客戶端所在服務器的主機名;
    或
    ]# sed -i 's#^Server=127.0.0.1#Server=192.168.20.59#g;s#^ServerActive=127.0.0.1#ServerActive=192.168.20.59#g' /etc/zabbix/zabbix_agentd.conf        # zabbix服務端不改,
    ]# sed -i "s#Hostname=Zabbix server#Hostname=`hostname`#g" /etc/zabbix/zabbix_agentd.conf
    ]# egrep -v "^$|#" /etc/zabbix/zabbix_agentd.conf
    LogFile=/tmp/zabbix_agentd.log
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=zabbix
啟動服務:
 ]# service zabbix-agent start  
 ]# service zabbix-agent status 
 ]# ss -tnl | grep :10050
 ]# iptables -vnL     #防火墻沒有阻斷10050端口;

8.中文亂碼

]# yum install wqy-microhei-fonts -y
]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/local/nginx/html/zabbix/fonts/DejaVuSans.ttf
或
把win系統裏的楷體常規上傳到服務器上:C:\Windows\Fonts\simkai.ttf
]# cd /usr/local/nginx/html/zabbix/fonts
]# rz simkai.ttf
]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
]# mv simkai.ttf DejaVuSans.ttf
]# chown -R www.www *
]# ll
總用量 12252
-rw-r--r-- 1 www www 11785184 7月  17 2016 DejaVuSans.ttf
-rw-r--r-- 1 www www   756072 9月  25 22:17 DejaVuSans.ttf.bak

9.附

警告
PHP gettext off     Warning

兩種方法:

9.1. 重新編譯加上 --with-gettext

9.2. 添加php動態擴展庫

進入php 源碼包ext 目錄下我們會發現有個 gettext 模塊
執行如下命令
 /usr/local/php-5.6.31/bin/phpize           #   /usr/local/php-5.6.31/  php安裝路徑
./configure --with-php-config=/usr/local/php-5.6.31/bin/php-config
make && make install

/usr/local/php-5.6.31/lib/php.ini    #根據自己系統安裝路徑而定
在php.ini裏添加上gettext.so
echo "extension = gettext.so" >> /usr/local/php/lib/php.ini

缺少mysqli  同理
--with-mysqli=/usr/local/mysql/bin/mysql_config

echo " extension = mysqli.so" > /usr/local/php/lib/php.ini

查看php已經編譯的模塊
/usr/local/php/bin/php -m




CentOS 源碼安裝 zabbix3.4