目录
概述:
zabbix是一个基于WEB界面的分布式系统及网络监控系统,zabbix由zabbix_server和zabbix_agent两部分组成,zabbix监控数据有两种模式分别为:
主动模式:主动模式是由zabbix agent主动采集数据并返回给zabbix server, 不再需要zabbix serve进行干预, 因此主动模式在一定程度上可减轻zabbix server的压力
被动模式(默认就是主动模式):被动模式就是由zabbix server向zabbix agent发出指令获取数据, 即zabbix agent被动的去获取数据并返回给zabbix server, zabbix server周期性的向agent 索取数据, 这种模式的最大问题就是会加大zabbix server的工作量
一、环境说明:
zabbix的web是由LAMP或者LNMP进行支撑的
LAMP:Linux,Apache,MySQL,PHP
LNMP:Linux,NGINX,MySQL,PHP
以下采用LNMP进行安装部署
二、安装LNMP环境
1、安装NGINX,可查看如下文件脚本进行安装
https://blog.csdn.net/qq_30038621/article/details/118291752
2、安装MySQL,采用yum方式安装
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld.service
#查询mysql的初始密码
grep "password" /var/log/mysqld.log
#登录数据库修改密码
set password=password('<password>');
修改mysql的密码复杂度要求方式如下:
vim /etc/my.cnf
#在文件的最底下加上如下两行
plugin-load=validate_password.so
validate-password=OFF
#重启MySQL
systemctl restart mysqld
3、安装部署PHP,采用源码包安装
下载PHP7
wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
安装PHP依赖包
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
解压PHP安装包,进入目录
tar -xvf php7.tar.gz
cd php-7.0.4
编译PHP
./configure \
--prefix=/usr/local/php \
--with-config-file-path=/etc \
--enable-fpm \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--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 \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--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 \
--enable-opcache
安装
make && make install
配置PHP环境变量
vim /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH
# 使改动立即生效
. /etc/profile
配置PHP配置文件
cp php.ini-production /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
启动php-fpm
/etc/init.d/php-fpm start
配置NGINX支持PHP代码
vim /data/app/nginx/conf/nginx.conf
location ~* \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
index index.html index.htm index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
测试是否成功,在NGINX的工程目录添加index.php文件
vim index.php
<?php
phpinfo()
?>
访问出现如下界面则表示配置成功
三、部署zabbix_server
zabbix官网:https://www.zabbix.com/
1、下载zabbix安装包
wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.32.tar.gz
2、创建zabbix用户
groupadd zabbix
useradd -g zabbix zabbix
3、创建mysql并导入zabbix数据库文件
# 登陆MySQL
mysql -uroot -p<your-password>
#设置zabbix数据库字符集
create database zabbix character set utf8 collate utf8_bin;
#创建zabbix数据库
create user 'zabbix'@'localhost' identified by '<your-password>';
#授权zabbix用户访问
grant all privileges on zabbix.* to 'zabbix'@'localhost';
#导入数据库表结构
[root@zabbix ~]# cd zabbix-4.0.32/database/mysql/
[root@zabbix mysql]# pwd
/root/zabbix-4.0.32/database/mysql
[root@zabbix mysql]# mysql -uzabbix -p<your-password> zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -p<your-password> zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -p<your-password> zabbix < data.sql
4、编译zabbix源码
#安装依赖包
yum -y install mysql-devel net-snmp-devel libevent-devel
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
5、安装zabbix
make install
- zabbix的配置文件目录:/usr/local/etc
- zabbix的启动脚本目录:/usr/local/sbin
6、修改zabbix_server配置文件
#添加数据库信息
DBname=zabbix
DBuser=zabbix
DBPassword=<your-password>
7、启动zabbix_server和zabbix_agent
[root@zabbix sbin]# ./zabbix_server
[root@zabbix sbin]# ./zabbix_agent
#查看端口是否监听
[root@zabbix ~]# netstat -anput | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 10329/./zabbix_agen
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 10271/./zabbix_serv
tcp6 0 0 :::10050 :::* LISTEN 10329/./zabbix_agen
tcp6 0 0 :::10051 :::* LISTEN 10271/./zabbix_serv
四、部署zabbix Web界面
1、复制zabbix的web界面代码到NGINX的工程目录
[root@zabbix ~]# cd /root/zabbix-4.0.32/frontends/php/
[root@zabbix php]# ls
actionconf.php auditlogs.php host_discovery.php latest.php setup.php
adm.gui.php browserwarning.php hostgroups.php local slideconf.php
adm.housekeeper.php chart2.php hostinventoriesoverview.php locale slides.php
adm.iconmapping.php chart3.php hostinventories.php maintenance.php srv_status.php
adm.images.php chart4.php host_prototypes.php map.import.php sysmap.php
adm.macros.php chart5.php host_screen.php map.php sysmaps.php
adm.other.php chart6.php hosts.php overview.php templates.php
adm.regexps.php chart7.php httpconf.php profile.php toptriggers.php
adm.triggerdisplayoptions.php chart.php httpdetails.php queue.php tr_events.php
adm.triggerseverities.php charts.php image.php report2.php trigger_prototypes.php
adm.valuemapping.php conf imgstore.php report4.php triggers.php
adm.workingtime.php conf.import.php include robots.txt usergrps.php
api_jsonrpc.php correlation.php index_http.php screenconf.php users.php
app discoveryconf.php index.php screenedit.php zabbix.php
applications.php disc_prototypes.php items.php screen.import.php
assets favicon.ico js screens.php
audio graphs.php jsLoader.php search.php
auditacts.php history.php jsrpc.php services.php
#复制代码到NGINX工程目录
cp -a . /data/app/nginx/html
#重载NGINX
/data/app/nginx/sbin/nginx -s reload
2、web页面访问http://<your-ip>/port/zabbix.php
如出现如下错误,则需要修改PHP的配置文件 ,将配置文件中的当前值修改为要求值
vim /etc/php.ini
max_input_time = 300
post_max_size = 16M
date.timezone = "Asia/Shanghai"
#重启PHP
[root@zabbix php]# /etc/init.d/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
配置MySQL的账号密码
zabbix默认的账号密码为:
账号:Admin
密码:zabbix