zabbix安装配置(LNMP环境)
young / / / 阅读量

php编译安装

zabbix对PHP(版本7.2.7)参数、PHP模块有特殊要求。
如下模块要特别留意加上

bcmath        --enable-bcmath
mbstring    --enable-mbstring
sockets        --enable-sockets
gd            --with-gd
libxml        --with-libxml-dir=/usr/local
xmlwriter    同上
xmlreader    同上
ctype        默认支持
session        默认支持
gettext        默认支持

以下是我PHP的编译配置参数(需要yum install libxml2-devel bzip2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel gd -y)
jDK安装1.8

编译:

[root@M4 ~]# cd /root/php72/
[root@M4 ~]# ./configure  --prefix=/usr/local/php72 \
--with-config-file-path=/usr/local/php72/etc --with-bz2 --with-curl \
--enable-java --enable-ftp --enable-sockets --disable-ipv6 --with-gd \
--with-jpeg-dir=/usr/local --with-png-dir=/usr/local \
--with-freetype-dir=/usr/local   \
--with-iconv-dir=/usr/local --enable-mbstring --enable-calendar \
--with-gettext --with-libxml-dir=/usr/local --with-zlib \
--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysqli=mysqlnd \
--enable-dom --enable-xml --enable-fpm --with-libdir=lib64 --enable-bcmath

安装:

[root@M4 ~]# make && make install

配置:

[root@M4 ~]# cp php.ini-development /usr/local/php72/etc/php.ini
[root@M4 ~]# ln -s /usr/local/php72/etc/php.ini /etc/php.ini
[root@M4 ~]# cp /usr/local/php72/etc/php-fpm.conf.default /usr/local/php72/etc/php-fpm.conf
[root@M4 ~]# mv /usr/local/php72/etc/php-fpm.d/www.conf.default /usr/local/php72/etc/php-fpm.d/www.conf
[root@M4 ~]# vim /usr/local/php72/etc/php-fpm.d/www.conf #编辑
user = zabbix #设置php-fpm运行账号为zabbix
group = zabbix #设置php-fpm运行组为zabbix
security.limit_extensions = .php .php3 .php4 .php5 .js .css .jpg .gif .png .jpeg .html .ico .bmp

设置 php-fpm开机启动

[root@M4 ~]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

拷贝php-fpm到启动目录

[root@M4 ~]# chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
[root@M4 ~]# chkconfig php-fpm on #设置开机启动
[root@M4 ~]# vi /usr/local/php/etc/php.ini #编辑配置文件
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,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
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = Off #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签
找到opcache.enable=0
修改为opcache.enable=1 #php支持opcode缓存
找到:;opcache.enable_cli=1 #php支持opcode缓存
修改为:opcache.enable_cli=0
post_max_size=16M
max_execution_time=300
max_input_time=300
always_populate_raw_post_data=-1
在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能
:wq! #保存退出

nginx编译安装

nginx版本1.12.2,以下我的安装编译参数
安装依赖

yum install -y pcre pcre-devel zlib zlib-devel openssl-devel

编译

[root@M4 ~]# ./configure --prefix=/web/soft/nginx --with-openssl=/usr/local/ssl --with-http_stub_status_module --with-http_ssl_module  --with-pcre

安装:

[root@M4 ~]# make && make install

配置nginx支持php

[root@M4 ~]# vim /web/soft/nginx/conf/nginx.conf
server {
    listen       8095;
    server_name  zabbix;
    root /web/soft/nginx/zabbix;
    index index.php;
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
} 
[root@M4 ~]# /etc/init.d/nginx restart #重启nginx
[root@M4 ~]# /etc/init.d/php-fpm restart #重启php-fpm

zabbix服务端安装

下载安装zabbix:https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.1.tar.gz

安装依赖

yum install net-snmp-devel libxml2-devel libcurl-devel  mysql-devel

编译安装

tar xf zabbix-5.0.1.tar.gz && cd zabbix-5.0.1
./configure --prefix=/web/soft/zabbix-5.0.1 --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2  && make && make install

在zabbix server一般充当两个角色:server、angent,所以上面的配置参数也同时加上了–enable-agent。

备注:请安装好MySQL,snmp,curl开发库。

为了安全考虑zabbix只使用普通用户运行,但是如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户,如下:

useradd -g zabbix zabbix

配置zabbix_server配置文件,zabbix安装目录下

[root@M4 ~]# vim /web/soft/zabbix-5.0.1/etc/zabbix/zabbix_server.conf
LogFile=/web/soft/zabbix-5.0.1/zabbix_server.log
DBName=zabbix
DBHost="127.0.0.1"
DBUser=root
DBPassword=root
DBPort=3306
Timeout=30
LogSlowQueries=3000
#以下是优化参数,网上找的自行修改
StartPollers=160
StartTrappers=20
StartPingers=100
StartDiscoverers=120
HistoryCacheSize=1024M
TrendCacheSize=1024M

数据库安装配置

初始化数据库

zabbix server与proxy需要数据库,angent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件。我当时在搭建proxy的时候导入了3个sql,导致出现报错。后来才发现proxy只需要导入一个表结构即可。

我假想你安装好了MySQL,用户名为root,密码为root

# 创建数据库
mysql -uroot -proot -e 'create database zabbix character set utf8 collate utf8_bin;'
# database/mysql/schema.sql
mysql -uroot -proot zabbix -e "source database/mysql/schema.sql"

备注:创建数据库请别忘记加default charset utf8,有可能会导致你出现中文乱码问题

如果你仅仅是初始化proxy的数据库,那么够了。如果初始化server,那么接着导入下面两个sql

# database/mysql/images.sql
mysql -uroot -proot zabbix -e "source database/mysql/images.sql"
# database/mysql/data.sql
mysql -uroot -proot zabbix -e "source database/mysql/data.sql"

复制文件启动服务

复制php文件和启动文件

mkdir -p /web/data/zabbix-5.0.1_page
/bin/cp -rf ui/* /web/data/zabbix-5.0.1_page
/bin/cp -rf ./misc/init.d/fedora/core5/* /etc/init.d/
chown -R zabbix:zabbix /web/soft/zabbix-5.0.1/
chown -R zabbix:zabbix /web/data/zabbix-5.0.1_page
chmod -R +x /web/data/zabbix-5.0.1_page

修改zabbix_server启动路径

sed -i 's#/usr/local#/web/soft/zabbix-5.0.1#g' /etc/init.d//zabbix_server

启动zabbix-server和nginx

service zabbix_server start
/web/soft/nginx/sbin/nginx

开启zabbix中文

zabbix默认把对中文的支持给关闭了(zabbix3.4以上不用管),我们需要修改zabbix的php源文件. 修改站点根目录下include/locales.inc.php文件.

[root@M4 ~]# vim include/locales.inc.php
function getLocales() {
        return array(
                'en_GB' => array('name' => _('English (en_GB)'),        'display' => true),
                'en_US' => array('name' => _('English (en_US)'),        'display' => true),
                'bg_BG' => array('name' => _('Bulgarian (bg_BG)'),      'display' => true),
                'zh_CN' => array('name' => _('Chinese (zh_CN)'),        'display' => true),
                //原本这里为false,请改为true
                ...........代码省略掉........
        );
}

agent安装

监控主机

安装zabbix-agent

首先需要在被监控的主机上安装agent,可以下载预编译好的RPM进行安装,下载地址:http://www.zabbix.com/download

也可以源码安装,类似server的安装,只是一个地方有区别,就是配置的参数只有一个:

./configure –prefix=/web/soft/zabbix-5.0.1 --enable-agent && make && make install

配置agent

以RPM安装为例,安装后的agent配置文件位置:/web/data/zabbix4/etc/zabbix_agentd.conf,主要需要修改下列2项:

Server=192.168.0.41
ServerActive=192.168.0.41:10051
Hostname=M4
HostMetadataItem=system.uname

修改zabbix_agentd启动路径

sed -i 's#/usr/local#/web/soft/zabbix-5.0.1#g' /etc/init.d//zabbix_agentd

修改完成后,启动zabbix-agent 服务。

service zabbix_agentd start
支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章