zabbix3.x服務端安裝和配置

技術小阿哥發表於2017-11-27

一 簡介

zabbix是一個基於WEB介面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案

zabbix能監視各種網路引數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題

zabbix由2部分構成,zabbix server與可選元件zabbix agent

zabbix server可以通過SNMP,zabbix agent,ping,埠監視等方法提供對遠端伺服器/網路狀態的監視,資料收集等功能,它可以執行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上

zabbix agent需要安裝在被監視的目標伺服器上,它主要完成對硬體資訊或與作業系統有關的記憶體,CPU等資訊的收集。zabbix agent可以執行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系統之上

zabbix server可以單獨監視遠端伺服器的服務狀態;同時也可以與zabbix agent配合,可以輪詢zabbix agent主動接收監視資料(agent方式),同時還可被動接收zabbix agent傳送的資料(trapping方式)

(注:以上簡介參考至百度百科)

二 關閉selinux

1
2
[root@app01 ~]# setenforce 0
[root@app01 ~]# getenforce

三 LNMP環境配置

MySQL5.6安裝

1
[root@prx02 ~]# cd /usr/local/src

(1)配置依賴以及解除安裝舊版本的mariadb-server:

1
2
3
[root@prx02 src]# yum install java-1.8.0-openjdk
[root@prx02 src]# rpm -qa | grep mariadb-server
[root@prx02 src]# rpm -e --nodeps mariadb-server-5.5.47-1.el7_2.x86_64

(2)安裝MySQL:

1
2
3
4
[root@prx02 src]# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
 
[root@prx02 src]# yum install mysql-server -y
[root@prx02 src]# yum install mysql-devel -y
1
[root@prx02 php-5.6.20]# vim /etc/my.cnf

修改:

[mysqld]

innodb_file_per_table

1
[root@nmp01 nginx]# chkconfig mysqld on
1
2
[root@prx02 src]# service mysqld start
Starting mysqld (via systemctl):                           [  OK  ]

(3)設定root密碼及其他安全選項:

1
[root@prx02 src]# mysql_secure_installation

(4)建立zabbix資料庫:

1
[root@prx02 src]# mysql -uroot -p
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY `password`;
mysql> flush privileges;
 
mysql> show databases;
+--------------------+
Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
rows in set (0.00 sec)
 
mysql> quit;

 PHP-5.6.20的原始碼安裝

(1)下載地址:http://php.net/get/php-5.6.20.tar.gz/from/a/mirror

(2)安裝依賴包:

1
2
3
4
5
[root@nmp01 libgd-2.1.1]# yum -y install freetype-devel
[root@nmp01 libgd-2.1.1]# yum -y install libXpm-devel
[root@nmp01 php-5.6.20]# yum install libxml2
[root@nmp01 php-5.6.20]# yum install libxml2-devel -y
[root@nmp01 php-5.6.20]# yum install -y curl curl-devel

安裝yasm:

下載地址:http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz

1
2
3
4
5
[root@nmp01 src]# cd /usr/local/src
[root@nmp01 src]# tar -zxvf yasm-1.2.0.tar.gz
[root@nmp01 yasm-1.2.0]# cd yasm-1.2.0
[root@nmp01 yasm-1.2.0]# ./configure
[root@nmp01 yasm-1.2.0]# make && make install

安裝libmcrypt:

下載地址:http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

1
2
3
4
[root@nmp01 src]# tar -zxvf libmcrypt-2.5.8.tar.gz
[root@nmp01 src]# cd libmcrypt-2.5.8
[root@nmp01 libmcrypt-2.5.8]# ./configure
[root@nmp01 libmcrypt-2.5.8]# make && make install

安裝libvpx:

下載地址:https://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2

1
2
3
4
[root@nmp01 src]# tar -jxvf libvpx-v1.3.0.tar.bz2
[root@nmp01 src]# cd libvpx-v1.3.0
[root@nmp01 libvpx-v1.3.0]# ./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9
[root@nmp01 libvpx-v1.3.0]# make && make install

安裝tiff:

下載地址:http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz

1
2
3
4
[root@nmp01 tiff-4.0.3]# tar -zxvf tiff-4.0.3.tar.gz
[root@nmp01 tiff-4.0.3]# cd tiff-4.0.3
[root@nmp01 tiff-4.0.3]# ./configure --prefix=/usr/local/tiff --enable-shared
[root@nmp01 tiff-4.0.3]# make && make install

安裝libpng:

下載地址:http://sourceforge.net/projects/libpng/

1
2
3
4
[root@nmp01 src]# tar -zxvf libpng-1.6.23.tar.gz
[root@nmp01 libpng-1.6.23]# cd libpng-1.6.23
[root@nmp01 libpng-1.6.23]# ./configure --prefix=/usr/local/libpng --enable-shared
[root@nmp01 libpng-1.6.23]# make && make install

安裝freetype:

下載地址:http://sourceforge.net/projects/freetype/

1
2
3
4
[root@nmp01 src]# tar zxvf freetype-2.6.4.tar.gz
[root@nmp01 src]# cd freetype-2.6.4/
[root@nmp01 freetype-2.6.4]# ./configure --prefix=/usr/local/freetype --enable-shared
[root@nmp01 freetype-2.6.4]# make && make install

安裝Jpeg:

下載地址:http://www.ijg.org/

1
2
3
4
[root@nmp01 src]# tar -zxvf jpegsrc.v9b.tar.gz
[root@nmp01 src]# cd jpeg-9b/
[root@nmp01 jpeg-9b]# ./configure --prefix=/usr/local/jpeg --enable-shared
[root@nmp01 jpeg-9b]# make && make install

安裝libgd:

下載地址:https://bitbucket.org/libgd/gd-libgd/downloads

1
2
3
4
[root@nmp01 libgd-2.1.1]# tar -zxvf libgd-2.1.1.tar.gz
[root@nmp01 libgd-2.1.1]# cd libgd-2.1.1
[root@nmp01 libgd-2.1.1]# ./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
[root@nmp01 libgd-2.1.1]# make && make install

安裝t1lib:

下載地址:ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz

1
2
3
4
5
[root@nmp01 t1lib-5.1.2]# tar -zxvf t1lib-5.1.2.tar.gz
[root@nmp01 t1lib-5.1.2]# cd t1lib-5.1.2
[root@nmp01 t1lib-5.1.2]# ./configure --prefix=/usr/local/t1lib --enable-shared
[root@nmp01 t1lib-5.1.2]# make without_doc
[root@nmp01 t1lib-5.1.2]# make install

(3)php原始碼安裝:

1
2
3
[root@prx02 src]# cd /usr/local/src
[root@prx02 src]# tar -zxvf php-5.6.20.tar.gz
[root@prx02 php-5.6.20]# cd php-5.6.20/

注:如果系統是64位,請執行以下兩條命令,否則安裝php會出錯(32位系統不需要執行)

1
2
[root@prx02 php-5.6.20]# cp -frp /usr/lib64/libltdl.so*  /usr/lib/
[root@prx02 php-5.6.20]# cp -frp /usr/lib64/libXpm.so* /usr/lib/
1
2
3
4
5
6
[root@prx02 php-5.6.20]# export LD_LIBRARY_PATH=/usr/local/libgd/lib
 
[root@nmp01 ~]# ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so
[root@nmp01 ~]# cd /usr/lib
[root@nmp01 lib]# mkdir mysql
[root@nmp01 lib]# cp /usr/lib64/mysql/* /usr/lib/mysql/
1
2
3
[root@prx02 php-5.6.20]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr --with-mysqli=/usr/bin/mysql_config --with-pdo-mysql --with-gd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype
 
[root@prx02 php-5.6.20]# make && make install

(4)配置php:

1
2
3
4
5
6
7
8
9
10
11
[root@prx02 php-5.6.20]# cd /usr/local
[root@prx02 local]# ln -s php-5.6.20/ php
 
[root@prx02 local]# cp /usr/local/src/php-5.6.20/php.ini-production /usr/local/php/etc/php.ini
 
[root@prx02 local]# cp /usr/local/src/php-5.6.20/sapi/fpm/php-fpm.conf.in /usr/local/php/etc/php-fpm.conf
 
[root@prx02 local]# ln -s /usr/local/php/sbin/* /usr/sbin/
 
[root@nmp01 php-5.6.20]# ln -s /usr/local/php/etc/php.ini /etc/php.ini
[root@nmp01 php-5.6.20]# ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf

(5)修改php.ini:

修改:

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

date.timezone = PRC  #設定時區

mbstring.func_overload = 0

always_populate_raw_post_data = -1

expose_php = Off #禁止顯示php版本的資訊

short_open_tag = ON #支援php短標籤

opcache.enable=1 #php支援opcode快取

opcache.enable_cli=0 #php支援opcode快取

在最後一行新增:zend_extension=opcache.so #開啟opcode快取功能

附:禁止部分函式的執行(也可以不新增這步配置):

修改:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

(6)配置和啟動php-fpm:

1
[root@prx02 mysql]# vim /usr/local/php-5.6.20/etc/php-fpm.conf

修改:

request_terminate_timeout = 300

user = www 

group = www 

pid = run/php-fpm.pid #取消前面的分號

新增php-fpm自啟動指令碼:

1
2
3
4
5
6
7
8
[root@prx02 ~]# cp /usr/local/src/php-5.6.20/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@prx02 init.d]# chmod a+x /etc/init.d/php-fpm
 
[root@prx02 ~]# chkconfig php-fpm on
 
[root@prx02 local]# php-fpm
或:
[root@prx02 local]# service php-fpm start
1
[root@prx02 local]# netstat -anp | grep 9000

tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN

出現上面的提示則說明php-fpm已經啟動起來了

注:php-fpm重啟關閉命令:

# 啟動

service php-fpm start

# 關閉

service php-fpm stop

# 重啟

service php-fpm restart

# 過載

service php-fpm reload

nginx的安裝和配置

安裝略

修改nginx配置檔案,新增server,用於訪問zabbix的web頁面

(1)修改/usr/local/nginx/conf/nginx.conf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
         listen 80;
         server_name  localhost;
         access_log /usr/local/nginx/logs/zabbix.access.log;                                                                                                                                                                      
 
         index index.php index.html index.html;
         root /usr/local/nginx/html/zabbix;
 
         location /
         {
                try_files $uri $uri/ /index.php?$args;                
 
         }
 
         location ~ .*.(php)?$
         {
                   expires -1s;
                   try_files $uri =404;
                   fastcgi_split_path_info ^(.+.php)(/.+)$;
                   include fastcgi_params;
                   fastcgi_param PATH_INFO $fastcgi_path_info;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                   fastcgi_pass 127.0.0.1:9000;
 
         }
}

(2)測試nginx中的php訪問:

1
[root@prx02 local]# mkdir -p /usr/local/nginx/html/zabbix
1
[root@prx02 local]# vim /usr/local/nginx/html/zabbix/info.php

內容:

<?php

    phpinfo();

?>


瀏覽器中訪問:http://127.0.0.1/info.php

四 zabbix服務端的安裝和配置

下載地址:https://sourceforge.net/projects/zabbix/

(1)安裝:

1
2
3
4
5
6
7
8
9
10
11
[root@prx02 ~]# groupadd zabbix
[root@prx02 ~]# useradd zabbix -g zabbix -s /bin/false
 
[root@prx02 ~]# cd /usr/local/src
[root@prx02 src]# tar -zxvf zabbix-3.0.3.tar.gz
 
[root@prx02 zabbix-3.0.3]# cd zabbix-3.0.3/
[root@prx02 zabbix-3.0.3]# yum install -y net-snmp-devel
 
[root@prx02 zabbix-3.0.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --enable-java
[root@prx02 zabbix-3.0.3]# make && make install

(2)匯入資料庫檔案:

1
[root@nmp01 zabbix-3.0.3]# mysql -uzabbix -p
1
2
3
4
5
6
7
8
mysql> use zabbix;
mysql> source /usr/local/src/zabbix-3.0.3/database/mysql/schema.sql;
 
mysql> source /usr/local/src/zabbix-3.0.3/database/mysql/images.sql;
 
mysql> source /usr/local/src/zabbix-3.0.3/database/mysql/data.sql;
 
mysql> quit;

(3)新增系統軟連線:

1
2
[root@prx02 zabbix-3.0.3]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
[root@prx02 zabbix-3.0.3]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/

(4)新增zabbix服務對應的埠:

1
[root@prx02 mysql]# vim /etc/services

在檔案末尾新增:

# Zabbix

zabbix-agent 10050/tcp # Zabbix Agent

zabbix-agent 10050/udp # Zabbix Agent

zabbix-trapper 10051/tcp # Zabbix Trapper

zabbix-trapper 10051/udp # Zabbix Trapper

(5)修改zabbix配置檔案:

1
[root@prx02 mysql]# vim /usr/local/zabbix/etc/zabbix_server.conf

修改以下幾處:

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix,123.

AlertScriptsPath==/usr/local/zabbix/share/zabbix/alertscripts  #zabbix執行指令碼存放目錄

DBPort=3306

1
[root@prx02 mysql]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

修改:

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/

UnsafeUserParameters=1  #啟用自定義key


(6)新增開機啟動指令碼:

服務端:

1
[root@prx02 mysql]# cp /usr/local/src/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server

客戶端:

1
[root@prx02 mysql]# cp /usr/local/src/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
1
2
3
4
[root@prx02 mysql]# chmod a+x /etc/rc.d/init.d/zabbix_*
 
[root@prx02 mysql]# chkconfig zabbix_server on
[root@prx02 mysql]# chkconfig zabbix_agentd on

修改zabbix開機啟動指令碼中的zabbix安裝目錄:

1
[root@prx02 mysql]# vim /etc/rc.d/init.d/zabbix_server

修改以下內容:

BASEDIR=/usr/local/zabbix/

1
[root@prx02 mysql]# vim /etc/rc.d/init.d/zabbix_agentd

修改以下內容:

BASEDIR=/usr/local/zabbix/

(7)複製zabbix的web站點檔案到nginx:

1
[root@prx02 mysql]# cp -r /usr/local/src/zabbix-3.0.3/frontends/php/* /usr/local/nginx/html/zabbix/

(8)啟動:

1
2
3
[root@prx02 mysql]# systemctl daemon-reload
[root@prx02 mysql]# service zabbix_server start
[root@prx02 mysql]# service zabbix_agentd start

檢視zabbix_server相關程式:

1
[root@prx02 ~]# ps -eaf|grep zabbix_server

五 zabbix的web頁面設定

在zabbix服務端訪問:http://127.0.0.1

然後按提示完成zabbix的web站點安裝,最後再進行登入,預設賬號密碼:Admin    zabbix

修改頁面語言:頁面右上角使用者 –>  語言

注:如果出現檢查PHP環境時一直缺少某些庫,可以嘗試刪掉php的原始碼,然後重新編譯安裝

本文轉自 pangfc 51CTO部落格,原文連結:http://blog.51cto.com/983836259/1854791,如需轉載請自行聯絡原作者


相關文章