Centos7.2编译安装zabbix3.2(详细步骤)

 

Zabbix简介

zabbix简介zabbix是完全开源的工具,整合了cacti和nagios等特性,SNMP(udp 161  udp 162)众多网络工具都支持此协议,比如常见路由交换,常见OS可以做管理端,也可以做被管理端,snmp大致的三个版本分为v1 v2 v3,无论是v1和v2他们的安全性还是比较差的,因为传输的是明文的,v3的认证密码用 MD5/SHA摘要算法加密。

很多工具都支持网络管理的功能,而对非网络设备(操作系统)可以完全抛开snmp这种不安全的架构来实现监控的,所以很多工具都是控制端和agent架构,他们有专属的agent。

 

 

Zabbix的主要功能:

具备常见的商业监控软件具备的功能比如:(主机性能的监控,网络设备性能的监控,数据库,ftp等通用协议的监控)还具备有告警方式,详细的报表图表的绘制。

支持自动发现网络设备和服务器,可以通过配置自动发现服务器规则来实现,支持分布式,能集中展示,管理分布式的监控点,扩展性强server提供通过接口(api功能)可以自己开发完善各类的监控,根据相关接口编写程序实现编写插件容易,可以自定义监控项,报警级别的设置。数据收集,支持snmp(包括trapping and polling) IPMI JMX SSH TELNEL;

 

自定义的检测;自定义收集数据的频率;

服务器/代理和客户端模式;灵活的触发器;可以定义非常灵活的问题阀值,称为触发器,高可定制的报警,发送通过,可定制报警的升级,收件人媒体类型,cpu负荷,内存使用,磁盘使用,网络状况,端口监视,日志监视等等;

硬件监控:

Zabbix IPMI Interface 系统监控:

ZabbixAgent Interface Java监控:

Zabbix JMX Interface 网络设备监控:

Zabbix SNMP Interface 应用服务监控:

Zabbix Agent UserParameter MySQL数据库监控:percona-monitoring-plulgins   URL监控:Zabbix Web 监控zabbix重要组件说明:1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行;

2)database storage:专用于存储所有配置信息,以及由zabbix收集的数据;

3)web interface:zabbix的GUI接口;

4)proxy:可选组件,常用于监控节点很多的分布式环境中,代理server收集部分数据转发到server,可以减轻server的压力;

5)agent:部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端;另外,zabbix server、proxy、agent都有自己的配置文件以及log文件;一个监控系统运行的大概的流程是这样的:agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。

这里agentd收集数据分为主动和被动两种模式:

主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy

被动:server向agent请求获取监控项的数据,agent返回数据。Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级开源解决方案。借助Zabbix,可以很轻松地减轻运维人员们繁重的服务器管理任务,实现业务系统的持续运行。

 

下面会逐步介绍Zabbix分布式监控系统的部署及使用配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器zabbix监控服务器:192.168.146.100  #zabbix的服务端(若要监控本机,则需要配置本机的zabbix agent)Zabbix agent被监控主机:192.168.146.110 #zabbix的客户端(被监控端,需要配置Zabbix agent)

 

 

 

一、编译安装Zabbix3.21

安装编译工具及库文件

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

 

Centos7.2编译安装zabbix3.2(详细步骤)_第1张图片

 

2)安装MySQL5.7并安装gcc编译器如下

 

[root@yankerp-zabbix ~]# yum install gcc gcc-c++ -y

 

 

因为在Centos7中默认安装了mysql的分支mariadb 所以需要卸载mariadb

 

[root@yankerp-zabbix src]# rpm -qa | grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@yankerp-zabbix src]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

 

 

安装Mysql

下载MySQL二进制包

 

[root@yankerp-zabbix src]# wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

 

 

解压Mysql二进制包,并拷贝到/usr/local/mysql目录下

 

[root@yankerp-zabbix src]# tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz 
[root@yankerp-zabbix src]# mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql

 

进入/usr/local/mysql/目录创建data目录以及log目录,并给予data755权限。

 

[root@yankerp-zabbix src]# cd /usr/local/mysql/
[root@yankerp-zabbix mysql]# mkdir data
[root@yankerp-zabbix mysql]# mkdir log
[root@yankerp-zabbix mysql]# chmod +755 data/

 

设置变量

 

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile && source /etc/profile

 

创建mysql组,以及mysql用户

 

[root@yankerp-zabbix mysql]# groupadd mysql && useradd -r -g mysql -s /bin/false mysql

 

 

打开/etc/my.cnf添加MySQL的主配置文件如下:

 

vim /etc/my.cnf

 

[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err

 

 

初始化MySQL数据库

 

[root@yankerp-zabbix mysql]# chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql

 

 

复制Mysql启动脚本,并启动mysql数据库

 

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start

 

 

 


启动完成后mysql的密码存放到了/usr/local/mysql/log/目录下

 

[root@yankerp-zabbix mysql]# cat /usr/local/mysql/log/mysql.err | grep password
2018-01-06T06:31:34.837627Z 1 [Note] A temporary password is generated for root@localhost: s>2%8=/q>sKP

 

 

进入Mysql数据库并修改mysql数据库密码

 

Centos7.2编译安装zabbix3.2(详细步骤)_第2张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第3张图片

到这里MySQL的安装正式完成

 

二、安装Nginx

1)安装pcre-devel zlib-devel 相关支持包

 

[root@yankerp-zabbix ~]# yum install zlib-devel pcre-devel -y

 

2)创建www组以及www用户

 

[root@yankerp-zabbix ~]# groupadd www
[root@yankerp-zabbix ~]# useradd -g www www -s /sbin/nologin

 

3)下载Nginx源码包

 

[root@yankerp-zabbix ~]# wget http://nginx.org/download/nginx-1.10.2.tar.gz

 

 

4)解压Nginx源码包并进入Nginx解压目录

 

[root@yankerp-zabbix ~]# tar zxf nginx-1.10.2.tar.gz 
[root@yankerp-zabbix ~]# cd nginx-1.10.2

 

 

[root@yankerp-zabbix nginx-1.10.2]# ./configure --prefix=/usr/local/nginx1.10 --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-http_ssl_module --with-http_gzip_static_module --user=www --group=www
make && make install

 

 

5)创建软连接,优化执行路径,并启动Nginx服务

Centos7.2编译安装zabbix3.2(详细步骤)_第4张图片

访问测试:

Centos7.2编译安装zabbix3.2(详细步骤)_第5张图片


三、安装PHP

 

[root@yankerp-zabbix ~]# wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

 

 

[root@yankerp-zabbix ~]# tar zxf libmcrypt-2.5.7.tar.gz 
[root@yankerp-zabbix ~]# cd libmcrypt-2.5.7/
[root@yankerp-zabbix libmcrypt-2.5.7]# ./configure && make && make install
ln -s /usr/local/mysql/lib/libmysqlclient.so.20.3.0 /usr/local/mysql/lib/libmysqlclient_r.so

 

 

 

 

下载PHP源码包

 

[root@yankerp-zabbix ~]# tar zxf php-5.6.27.tar.gz 
[root@yankerp-zabbix ~]# cd php-5.6.27/

 

[root@yankerp-zabbix php-5.6.27]# ./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 --with-curl && make && make install

 

[root@yankerp-zabbix php-5.6.27]# 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

 

 

 

创建php服务启动脚本

 

[root@yankerp-zabbix php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@yankerp-zabbix php-5.6.27]# chmod +x /etc/init.d/php-fpm 
[root@yankerp-zabbix php-5.6.27]# chkconfig --add php-fpm
[root@yankerp-zabbix php-5.6.27]# chkconfig php-fpm on

 

 

[root@yankerp-zabbix php-5.6.27]#cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

 

[root@yankerp-zabbix php-5.6.27]#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

启动PHP-FPM服务

配置Nginx并解析php

 

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    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;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index index.php index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        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.conf;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

 

 

在html目录下创建test.php写入测试页访问测试:

Centos7.2编译安装zabbix3.2(详细步骤)_第6张图片
 

写入MySQL测试页

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

 


出现以上图片证明LNMP环境已经可以正常工作!

 

 

四、正式安装Zabbix,以上只是搭建环境下面正式安装zabbix

此环境需要提前安装好LNMP环境(MySQL,Nginx,PHP的安装目录均是/usr/local/下)

创建zabbix运行用户

 

[root@yankerp-zabbix ~]# groupadd zabbix
[root@yankerp-zabbix ~]# useradd -g zabbix zabbix

 

 

安装所需的包

[root@yankerp-zabbix ~]#yum install -y net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel
 

安装fping

 

[root@yankerp-zabbix ~]# tar zxf fping-3.10.tar.gz 
[root@yankerp-zabbix ~]# cd fping-3.10/
[root@yankerp-zabbix fping-3.10]# ./configure && make && make install
[root@yankerp-zabbix fping-3.10]# chown root:zabbix /usr/local/sbin/fping 
[root@yankerp-zabbix fping-3.10]# chmod 4710 /usr/local/sbin/fpin

 

安装zabbix-server

 

[root@yankerp-zabbix ~]# tar zxf zabbix-3.2.1.tar.gz 
[root@yankerp-zabbix ~]# cd  zabbix-3.2.1/

 

[root@yankerp-zabbix zabbix-3.2.1]# ./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-openipmi
在编译的时候最好带上--enable-java这个参数,方便后续监控tomcat等程序。

 

make && make install

添加系统软连接

 

[root@yankerp-zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@yankerp-zabbix zabbix-3.2.1]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

 

创建zabbix数据库和Mysql用户:

 

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.18 sec)

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected, 1 warning (0.37 sec)

mysql> 

 

导入zabbix初始数据;(切换到zabbix目录)

 

/root/zabbix-3.2.1/database/mysql
[root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < schema.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < images.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@yankerp-zabbix mysql]# mysql -uzabbix -pzabbix -hlocalhost zabbix < data.sql 
mysql: [Warning] Using a password on the command line interface can be insecure.

 

编辑/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
FpingLocation=/usr/local/sbin/fping

 

[root@yankerp-zabbix mysql]# mkdir -p /usr/local/zabbix/logs
[root@yankerp-zabbix mysql]# chown -R zabbix:zabbix /usr/local/zabbix/

 

 

 

启动zabbix server

 

解决方法:
在ld.so.conf中加入/usr/local/mysql/lib
[root@yankerp-zabbix ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/mysql/lib

 

/usr/local/lib

插入完后执行

 

 

我们发现还是没有启动那么接下来查看zabbix_server的日志如下:

 

 

Centos7.2编译安装zabbix3.2(详细步骤)_第7张图片

上面的提示mysql.sock问题,接下来打开zabbix主配置文件修改如下:

Centos7.2编译安装zabbix3.2(详细步骤)_第8张图片

添加启动脚本

 

[root@yankerp-zabbix zabbix-3.2.1]#  cp misc/init.d/fedora/core/zabbix_server /etc/rc.d/init.d/zabbix_server
[root@yankerp-zabbix zabbix-3.2.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
[root@yankerp-zabbix zabbix-3.2.1]# chmod +x /etc/rc.d/init.d/zabbix_server 
[root@yankerp-zabbix zabbix-3.2.1]# chmod +x /etc/rc.d/init.d/zabbix_agentd 
[root@yankerp-zabbix zabbix-3.2.1]# chkconfig --add zabbix_server
[root@yankerp-zabbix zabbix-3.2.1]# chkconfig --add zabbix_agentd
[root@yankerp-zabbix zabbix-3.2.1]# chkconfig zabbix_server on
[root@yankerp-zabbix zabbix-3.2.1]#  chkconfig zabbix_agentd on

 

 

修改zabbix开机启动脚本中的zabbix安装目录
vi /etc/rc.d/init.d/zabbix_server #编辑服务端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid    #pid文件路径
:wq! #保存退出
vi /etc/rc.d/init.d/zabbix_agentd #编辑客户端配置文件
BASEDIR=/usr/local/zabbix/ #zabbix安装目录
PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  #pid文件路径
:wq! #保存退出

正式启动zabbix_server

Centos7.2编译安装zabbix3.2(详细步骤)_第9张图片
 

启动成功后配置zabbix的web界面

 

[root@zabbix-yankerp ~]# cd /root/zabbix-3.2.1/
[root@zabbix-yankerp zabbix-3.2.1]# cp -r frontends/php/ /usr/local/nginx/html/zabbix
[root@zabbix-yankerp zabbix-3.2.1]# chown -R www:www /usr/local/nginx/html/zabbix/

 

出现以下界面证明

 

Centos7.2编译安装zabbix3.2(详细步骤)_第10张图片
Centos7.2编译安装zabbix3.2(详细步骤)_第11张图片

 

Centos7.2编译安装zabbix3.2(详细步骤)_第12张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第13张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第14张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第15张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第16张图片

Centos7.2编译安装zabbix3.2(详细步骤)_第17张图片

出现以上图片那么证明zabbix正式搭建成功!

 

2018年新的开始,加油!!!

希望对您有所帮助,再见~~

 

 

你可能感兴趣的:(zabbix,Linux,Linux入门到熟练)