部署zabbix

1、环境

主机主机名ip
zabbix监控端zabbix

192.168.1.3

linux被监控端server1192.168.1.4

注:关闭防火墙和selinux

1.1、整个环境需要的软件包

pgp-5.6.36

libmcrypt-2.5.7

mysql-5.7.26

nginx-1.10.3

zabbix-4.2.6

2、搭建LNMP环境

2.1.、安装mysql-5.7.26

2.2安装php-5.6.36

2.2.1、安装依赖软件包

yum -y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng*  libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel

2.2.2、安装libmcrypt

tar zxf libmcrypt-2.5.7.tar.gz    #解压到当前目录
cd libmcrypt-2.5.7/      #进入到解压后的软件包
./configure --prefix=/usr/local/libmcrypt && make && make install   #预编译安装

2.2.3、安装php

tar zxf php-5.6.36.tar.gz        #解压软件包到当前目录

cd php-5.6.36/        #进入到解压后的软件包中

./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --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=/usr/local/libmcrypt --with-curl        #预编译

make && make install     #编译安装

2.2.4、生成php.ini配置文件

cp php.ini-production /etc/php.ini     #将文件复制到/etc/php.ini

编辑配置文件按照以下的内容对文件进行修改

找到:

;date.timezone =

修改为:

date.timezone = PRC #设置时区

 找到:

expose_php = On

修改为:

expose_php = Off #禁止显示php版本的信息

 找到:

short_open_tag = Off

修改为:

 short_open_tag = On //支持php短标签

 找到:

 post_max_size = 8M

 修改为:

 post_max_size = 16M  //上传文件大小

 找到:

 max_execution_time = 30

 修改为:

 max_execution_time = 300  //php脚本最大执行时间

 找到:

 max_input_time = 60

 修改为:

 max_input_time = 300  //以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制

 always_populate_raw_post_data = -1

 mbstring.func_overload = 0

2.2.5、创建php-fpm服务启动脚本

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm   #复制文件到etc下

chmod +x /etc/init.d/php-fpm    #给予执行权限

chkconfig --add php-fpm

chkconfig php-fpm on

2.2.6、提供php-fpm配置文件并编辑

cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf   #复制到etc文件下起名叫php-fpm.conf

useradd -M -s /sbin/nologin www     #创建用户为www并不能登录系统

vim /usr/local/php5.6/etc/php-fpm.conf     #编辑文件

修改以下内容

pid = run/php-fpm.pid

 user = www

 group = www

 listen =127.0.0.1:9000

 pm.max_children = 300

 pm.start_servers = 10

 pm.min_spare_servers = 10

 pm.max_spare_servers =50

2.2.7、启动php-fpm服务

/etc/init.d/php-fpm start       #启动php服务
netstat -anptl | grep php-fpm     #查看端口

3、安装nginx

3.1、安装依赖关系包

yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel

3.2、编译安装nginx

tar zxf nginx-1.10.3.tar.gz    #解压到当前目录

cd nginx-1.10.3/   #进入解压后的软件包

./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module  --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www       #预编译

make && make install  #编译安装

 3.2、启动nginx

 ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    #创建软连接

nginx    #启动

netstat -anptl | grep nginx         #查看nginx是否启动

3.3、篇日志nginx支持php

nginx配置文件内容如下

user  www www;

 worker_processes  4;

 error_log  logs/error.log;

 pid        logs/nginx.pid;

 events {

     use epoll;

     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"';

     access_log  logs/access.log  main;

     sendfile        on;

     keepalive_timeout  65;

     server {

         listen       80;

         server_name  localhost;

         charset utf-8;

         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;

             include fastcgi.conf;

         }

         error_page   500 502 503 504  /50x.html;

         location = /50x.html {

             root   html;

         }

     }

 }

 nginx -t           #查看语法有没有错误

nginx  -s  reload       #重载nginx

3.4、测试LNMP

进入nginx默认的网页根目录,创建.php的测试页

vim /usr/local/nginx/html/test1.php

<?php

 phpinfo();

 ?>

vim /usr/local/nginx/html/test2.php

<?php

 $link=mysql_connect('localhost','root','123456');

 if($link) echo "ok";

 mysql_close();

 ?>

访问结果

 LNMP部署完成

3、创建导入zabbix数据库

   zabbix需要数据库的支持。而且zabbix源码包中已经自带了数据库结构

3.1、创建zabbix使用的数据库

mysql -uroot -p          #进入数据库

create database zabbix character set utf8;    #创建数据库增加字符集

grant all on zabbix.* to zabbix@localhost identified by 'zabbix';	 #zabbix 用户授权

flush privileges     #刷新

exit      #退出mysql

3.2、解压zabbix-4.2.6.tar.gz

tar zxf zabbix-4.2.6.tar.gz    #解压到当前目录

cd zabbix-4.2.6/

3.3、导入数据库

注:注意顺序,否则会出错

mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql   

mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql 

mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

  如果在做分布式环境中,proxy服务器只需要导入schema.sql,agent不需要导入。server必须三个都要导入

3.4、安装依赖

yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel

3.5、创建用户

groupadd zabbix          #创建组为zabbix

useradd -s /sbin/noglogin -g zabbix zabbix   #创建用户zabbix

3.6、预编译

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

参数说明

--prefix=       #指定路径

 --enable-server         #zabbix Server 支持

 --enable-agent               #支持 Zabbix agent

 --with-mysql          #指定 MySql 库,可以选择自定路径mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序

 --with-net-snmp              #支持 snmp 协议,需要安装 net-snmp-devel 包

 --with-libcurl                  #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,libcurl当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议

 --enable-java      #支持java应用监控,编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用。

 --with-openipmi用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应等

 其他参数:

 --enable-proxy   指的是支持 zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。

 用 zabbix proxy 的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负载,

3.7、安装

make install

增加系统软连接

ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

 3.8、配置zabbix server

vim /usr/local/zabbix/etc/zabbix_server.conf

LogFile=/usr/local/zabbix/logs/zabbix_server.log

 PidFile=/usr/local/zabbix/logs/zabbix_server.pid

 DBHost=localhost

 DBName=zabbix

 DBUser=zabbix

 DBPassword=zabbix

 DBPort=3306

mkdir -p /usr/local/zabbix/logs

chown -R zabbix:zabbix /usr/local/zabbix/

3.9、监控zabbix server本身

监控本身,意思是本身作为服务器之外,自己也做自己的被监控端,也要使用agent这个代理程序

vim /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid

 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log

 Server=127.0.0.1

 ListenPort=10050

 ServerActive=127.0.0.1

 Hostname=Zabbix server

 Timeout=15

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

 UnsafeUserParameters=1

 注:

其中 Server 和 ServerActive 都指定 Zabbix server 的 IP 地址,不同的是,前者是被动后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给它。

 Hostname=XXX,这个定义的名字必须和web页面里面host的名字一样。

 UnsafeUserParameters=1  #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本

3.10、启动脚本

如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么直接可以用 zabbix 运行

3.11、直接运行

/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

3.12、解决库文件找不到

 在ld.so.conf中加入/usr/local/mysql/lib

 vim /etc/ld.so.conf

include ld.so.conf.d/*.conf

 /usr/local/mysql/lib   #根据实际路径添加此行

3.13、查看端口

netstat -anptl | grep zabbix_server

3.14、增添zabbix启动脚本

  zabbix默认有部分启动脚本,如果需要通过脚本的方式来实现,可以使用他的模板来实现,脚本在源码目录的misc/init.d下

cd /root/zabbix-4.2.6/misc/init.d/    

cp fedora/core/* /etc/init.d/

vim /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix  #找到此行,并修改。zabbix安装目录

 PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  # pid文件路径

vim /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix  #找到此行,并修改。zabbix安装目录

 PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  # pid文件路径

chkconfig --add zabbix_server

chkconfig --add zabbix_agentd

chkconfig zabbix_server on

chkconfig zabbix_agentd on

3.15、配置zabbix web 页面

  在解压目录中将frontends/php拷贝到指定的web root:

cd /root/zabbix-4.2.6/

cp -r /root/zabbix-4.2.6/frontends/php/* /usr/local/nginx/html/

chown -R www:www /usr/local/nginx/html/

注:/usr/local/nginx/html为Nginx默认站点目录 ,www为Nginx运行账户

注:php需要至少开启扩展

gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql

查看是否包括了上面所提到的扩展模块

/usr/local/php5.6/bin/php -m

3.16、重启nginx和php-fom

/usr/local/nginx/sbin/nginx -s reload

 /etc/init.d/php-fpm restart

3.17、打开浏览器安装zabbix web

3.18、开始检查环境,如图,确保环境要符合条件要求

 

 如果不符合,就需要编辑php.ini文件,修改php环境,修改后重启php-fpm

3.19、下一步

 3.20、下一步

 单机finish完成zabbix web安装

3.21、登录zabbix

默认的用户名和密码是admin ,zabbix

 1、点击配置-主机启动本主机

默认是没有启动的,点击后面红色的停用,则启用

2、启动zabbix_agent

未启动可以执行以下命令

/usr/local/zabbix/sbin/zabbix_agentd

netstat -anptl | grep zabbix

2.1、查看agent状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值