zabbix安装部署

Posted ChavinKing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix安装部署相关的知识,希望对你有一定的参考价值。

安装zabbix的前提 首先要有LAMP 或者LNMP的环境

我安装的是LNMP

一、LNMP的安装

Linux(RHEL6.4) + nginx(FastCGI) + php(php-fpm) + mysql

所需软件包:

nginx-1.4.4.tar.gz
php-5.5.7.tar.gz
cmake-2.8.10.2.tar.gz
mysql-5.5.33.tar.gz
Discuz_X3.1_SC_UTF8.zip
pcre-8.10.tar.gz

cmake-2.8.12.2.tar.gz

mysql-5.5.37.tar.gz

一、安装Nginx
1. pcre: 支持正则表达式,地址重写rewrite
# tar xvf pcre-8.10.tar.gz
# cd pcre-8.10
# ./configure  --prefix=/home/lnmp/pcre

#make && make install
2. Nginx
# yum -y install openssl openssl-devel gcc*
# groupadd www
# useradd -g www www
# tar xf nginx-1.4.4.tar.gz
# cd nginx-1.4.4
# ./configure \\
--prefix=/home/lnmp/nginx \\
--user=www \\
--group=www \\
--with-http_ssl_module \\
--with-http_flv_module \\
--with-http_stub_status_module \\
--with-http_gzip_static_module \\
--with-pcre=pcre源程序目录  *tar解压完的目录
# make
# make install
# /home/lnmp/nginx/sbin/nginx 
# netstat -tnlp |grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      11051/nginx
# elinks -dump http://localhost  *直接浏览器输入http://IP 即可验证
                               Welcome to nginx!
# echo "/home/lnmp/nginx/sbin/nginx" >> /etc/rc.local 

二、二进制安装mysql

5.5 版本以上的mysql 都是用cmake编译 所以先安装cmake

添加mysql用户

# groupadd mysql

#useradd -g mysql mysql 

1.解压cmake包并安装

#tar –xzvfcmake.tar.gz

# ./bootstrap --prefix=/home/mysql/tools/cmake

#make

#make install

#export PATH=$PATH:/home/mysql/tools/cmake/bin

2.cmake查看编译参数

cmake . –LAH

3.mysql 5.5安装

# tar –xzv mysql-5.5.37.tar.gz

# cd mysql-5.5.37

#bpath=/home/mysql/mysql_5537

#echo ${bpath}

#cmake . \\

-DCMAKE_INSTALL_PREFIX=${bpath}  \\

-DINSTALL_MYSQLDATADIR=“${bpath}/var”  \\

-DMYSQL_DATADIR=${bpath}/var \\

-DSYSCONFDIR=${bpath}/etc    \\

-DWITH_INNOBASE_STORAGE_ENGINE=1  \\

-DDEFAULT_CHARSET=utf8   \\

-DDEFAULT_COLLATION=utf8_general_ci  \\

-DMYSQL_TCP_PORT=5537  \\

-DMYSQL_UNIX_ADDR=${bpath}/tmp/mysql.sock  \\

-DWITH_EXTRA_CHARSETS=all

#make

#make install

#cd /home/mysql/mysql_5537

#mkdir etc var log tmp

#cd ./etc 

#rz  上传配置文件 my.cnf,确认配置文件里面的端口号和文件目录跟你安装的相对应

#chown -R mysql.mysql /home/mysql/mysql_5537 改下所属用户和组

3.初始化 mysql   /*初始化切换到mysql用户下进行

#./scripts/mysql_install_db --defaults-file=/home/mysql/mysql_5537/etc/my.cnf --user=mysql 

4.启动mysql实例

#./bin/mysqld_safe --defaults-file=/home/mysql/mysql_5537/etc/my.cnf --user=mysql &

OR

#cp support-files/mysql.server ./bin/

#./bin/mysql.server start 

5.shell登录mysql [mysql -u -p]

#ln -s /home/mysql/mysql_5537/bin/mysql /usr/bin/

#export PATH=$PATH:/home/mysql/mysql_5537/bin/

/*

多实例添加环境变量

# unlink /usr/bin/mysql  *取消软连

# ln -s /home/mysql/mysql_5537/bin/mysql /usr/bin/mysql_5537

#export PATH=$PATH:/home/mysql/mysql_5537/bin/

*/

三、安装PHP
1. 以php-fpm的方式安装php

安装依赖包
# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel libcurl libcurl-devel libxslt-devel

#tar -zxvf php-5.5.7.tar.gz

#cd php-5.5.7
#./configure \\
--prefix=/home/lnmp/php \\
--with-curl \\
--with-freetype-dir \\
--with-gd \\
--with-gettext \\
--with-iconv-dir \\
--with-jpeg-dir \\
--with-kerberos \\
--with-libdir=lib64 \\
--with-libxml-dir \\
--with-mysql \\
--with-mysqli \\
--with-openssl \\
--with-pcre-regex \\
--with-pdo-mysql \\
--with-pdo-sqlite \\
--with-pear \\
--with-png-dir \\
--with-xmlrpc \\
--with-xsl \\
--with-zlib \\
--enable-fpm \\
--enable-bcmath \\
--enable-libxml \\
--enable-inline-optimization \\
--enable-gd-native-ttf \\
--enable-mbregex \\
--enable-mbstring \\
--enable-opcache \\
--enable-pcntl \\
--enable-shmop \\
--enable-soap \\
--enable-sockets \\
--enable-sysvsem \\
--enable-xml \\
--enable-zip \\

--with-mysql-sock=/home/mysql/mysql_5537/tmp/    sock文件目录  /*最好加上*/
# make && make install 
2. php-fpm配置文件
# cp /home/lnmp/php/etc/php-fpm.conf.default /home/lnmp/php/etc/php-fpm.conf
# vim /home/lnmp/php/etc/php-fpm.conf
pid = run/php-fpm.pid
3. php主配置文件
# cp php.ini-production /home/lnmp/php/lib/php.ini

修改php配置文件如下

data.timezone = Asia/Shanghai

max_execution_time = 300

post_max_size = 32M

max_input_time = 300

memory_limit = 128M

mbstring.func_overload = 2

4. 添加到init启动
[root@test php-5.5.7]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
[root@test php-5.5.7]# chmod a+x /etc/rc.d/init.d/php-fpm
[root@test php-5.5.7]# chkconfig --add php-fpm
[root@test php-5.5.7]# chkconfig php-fpm on
[root@test php-5.5.7]# service php-fpm start
Starting php-fpm  done
四、整合Nginx和PHP
1. Nginx启用Fastcgi
[root@test php-5.5.7]#  vim /home/lnmp/nginx/conf/nginx.conf
启用:
location / {
            root   html;
            index  index.php index.html index.htm;
        }
去掉以下行的注释:
location ~ \\.php$ {
            root            html;
            fastcgi_pass    127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include         fastcgi_params;
        }
2. fastcgi模块参数文件
[root@test ~]# rm -rf /home/lnmp/nginx/conf/fastcgi_params
[root@test ~]# vim /home/lnmp/nginx/conf/fastcgi_params
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
3. 最终确认并重启
[root@tianyun ~]# killall nginx; /home/lnmp/nginx/sbin/nginx
[root@tianyun ~]# /etc/init.d/php-fpm restart
[root@tianyun ~]# service mysqld restart
[root@tianyun ~]# netstat -tnlp |grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:* LISTEN      17947/nginx        
[root@tianyun ~]# netstat -tnlp |grep :9000
tcp        0      0 127.0.0.1:9000              0.0.0.0:* LISTEN      17961/php-fpm      
[root@tianyun ~]#netstat -tnlp | grep 5537

tcp        0      0 :::5537                     :::*                    LISTEN      18265/mysqld   
                        二、安装zabbix

1.创建zabbix用户和组

#groupadd zabbix

#useradd -g zabbix zabbix

2.解压zabbix安装包

#tar -zxvf zabbix-2.0.12.tar.gz

#cd zabbix-2.0.12

#llwps2E14.tmp

#查看下相应目录

wps2E15.tmp

3.安装相应依赖包

# yum -y install unixODBC  unixODBC-devel  library  net-snmp net-snmp-devel libssh2-devel  OpenIPMI-devel java*   openldap openldap-devel

4.编译 、连接文件 、安装

#./configure --prefix=/home/zabbix --sysconfdir=/etc/zabbix --enable-server --enable-proxy --enable-agent --enable-ipv6 --with-mysql=/home/mysql/mysql_5621/bin/mysql_config --with-net-snmp --with-libcurl --with-openipmi --with-unixodbc --with-ldap --with-ssh2 --enable-java

*configure: error: Curl library not found,可以通过yum install curl-devel来解决

*configure: error: SSH2 library not found  

yum install php-pecl-ssh2.x86_64 libssh2-devel.x86_64

#make

#make install 

#vim /etc/services  OR grep zabbix /etc/servce  *添加zabbix 到系统服务文件  在rhel系列中,下面的服务参数可以不添加,默认已经有了

wps2E16.tmp

5. 导入zabbix数据库

#cd database/mysql/

#mysql -uroot (登录数据库)

mysql> create database zabbix character set utf8;

mysql>grant all privileges on zabbix.* to zabbix@\'127.0.0.1\' identified by\'zabbix\';

mysql> flush privileges;

mysql>\\q

更换zabbix用户 导入数据

# mysql -uzabbix -pzabbix 

mysql> \\! ls

data.sql  images.sql  schema.sql

mysql> show databases;

+-----------------------+

| Database                    |

+-----------------------+

| information_schema  |

| test                              |

| zabbix                         |

+-----------------------+

mysql> use zabbix;

Database changed

mysql>  source schema.sql;

mysql>  source images.sql;

mysql>  source data.sql;

mysql> \\q

确保导入数据过程无误

# mkdir /var/log/zabbix

# chown -R zabbix.zabbix /var/log/zabbix

6.拷贝 service 启动脚本

# cp misc/init.d/fedora/core/zabbix_*  /etc/init.d/

#chmod 755 /etc/init.d/zabbix_*

编辑zabbix_server 和zabbix_agentd文件

BASEDIR=/home/zabbix

7.配置 zabbix_server.conf服务端文件

路径:/etc/zabbix/zabbix_server.conf

修改参数如下

# cat /etc/zabbix/zabbix_server.conf | grep -v "^#" | grep -v "^$"

OR

#egrep -v "(#|^$)" /etc/zabbix/zabbix_server.conf

LogFile=/tmp/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/home/mysql/mysql_5537/tmp/mysql.sock
DBPort=5537
StartPollers=160
StartTrappers=20
StartPingers=100
StartDiscoverers=120
MaxHousekeeperDelete=5000
CacheSize=512M
StartDBSyncers=16
HistoryCacheSize=512M
TrendCacheSize=512M
HistoryTextCacheSize=256M
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000

8.配置zabbix_agentd.conf文件

参数修改如下

# egrep -v "(#|^$)" /etc/zabbix/zabbix_agentd.conf
LogFile=/var/log/zabbix_agentd.log
EnableRemoteCommands=0
Server=127.0.0.1,192.168.28.15
StartAgents=8
ServerActive=192.168.28.15:10051
Hostname=Zabbix.server.com
Timeout=30
Include=/etc/zabbix/zabbix_agentd.conf.d/
UnsafeUserParameters=1

9.拷贝网页文件到nginx目录

#ll frontends/

#ll frontends/php/

#ll /home/lnmp/nginx/html/

#mkdir /home/lnmp/nginx/html/zabbix

#cp -r ./frontends/php/ /home/lnmp/nginx/html/zabbix/

#chown -R www.www /home/lnmp/nginx/html/zabbix/

10.设置zabbix开机启动

#chkconfig zabbix_server on

#chkconfig zabbix_agentd on

#service zabbix_server start

#service zabbix_agentd start

######反正我开启的时候各种报错 有错就排查吧 

[root@node5 etc]# service zabbix_server start
Starting zabbix_server:  /home/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
                                                           [FAILED]
[root@node5 etc]# ln -s /home/mysql/mysql_5621/lib/libmysqlclient.so.18 /usr/lib64/

11.通过web页面配置zabbix

在浏览器中输入http://192.168.28.15/zabbix/php/

wps2E17.tmp

wps2E18.tmp

wps2E28.tmp

wps2E29.tmp

wps2E2A.tmp

这时候 把文档下载下来 再传入到相应的目录下

wps2E2B.tmp

wps2E2C.tmp

默认用户为admin 密码为zabbix

以上是关于zabbix安装部署的主要内容,如果未能解决你的问题,请参考以下文章

zabbix4.0.1 安装部署

最全的zabbix部署(Serveragentproxy)

zabbix6.0的安装部署

Zabbix- 安装与部署

zabbix3.0安装部署文档

zabbix监控之zabbix源码部署 (安装篇)