澳门新萄京官方网站-www.8455.com-澳门新萄京赌场网址

部署Cacti监控平台,zabbix的编译安装并发送通知邮

2019-07-07 作者:数据库网络   |   浏览(57)

背景

    现在越来越多的企业、公司要求对于数据库实现7*24小时的数据库监控,一般情况下采用的就是第三方的平台来实现邮件和手机短信的监测提醒。前几日公司新上了一台服务器,急于部署程序还没来得及搭建其他相关平台,为了更好的监控数据库,暂时用SQL Server自带的邮件服务来实现对数据库的监控和预警。下面简要介绍下配置的过程便于以后使用。

背景

1.写在前面

本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的环境是LAMP。以及实现简单的监控任务,在发现问题时能够发送通知邮件。

部署Cacti监控平台

配置邮件

    整个部分的核心就是配置邮件服务,这部分需要一个邮件账户以及相应的邮件服务器。下面就以QQ的邮件为例进行说明。

1.设置邮件服务器

图片 1

开启SMTP服务,点击开启,然后点击下方的生成授权码,获得授权码就是数据库发送邮件账号的密码。

2.配置数据库邮件

 

打开MSSM--》管理--》数据库邮件--》邮件配置数据库邮件—》如下选择

图片 2

点击下一步后按照步骤123进行配置。

首先创建账户如下:

图片 3

使用创建的账户作为配置账户

图片 4 

 

接下来需要选择安全公共配置,选中刚才配置的文件名,然后后面默认为配置文件

图片 5

 

然后,可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名,单击下一步,,默认配置即可:

图片 6

 

都完成后会显示如下四个成功状态:

图片 7

 

这样配置邮件服务就完成了可以右键“数据库邮件”点击测试邮件。也可以代码执行

--发送邮件

EXEC msdb.dbo.sp_send_dbmail 
    @profile_name = 'XXXX',         --配置文件名称
    @recipients = 'XXX@QQ.com',  --收件email地址
    @subject = '你好',                 --邮件主题
    @body = '…'            --邮件正文内容

 

 

执行完毕后可以通过错误日志下面的邮件日志来查看详细情况。

 

如果收到了邮件那么就可以进行下一步对于数据库的监控了,这里介绍两种一种是job的指定监控还有一种是警报监控。

现在越来越多的企业、公司要求对于数据库实现7*24小时的数据库监控,一般情况下采用的就是第三方的平台来实现邮件和手机短信的监测提醒。前几日公司新上了一台服务器,急于部署程序还没来得及搭建其他相关平台,为了更好的监控数据库,暂时用SQL Server自带的邮件服务来实现对数据库的监控和预警。下面简要介绍下配置的过程便于以后使用。

2.系统环境

软件包 版本
OS CentOS6.8-2.6.32-642.el6.x86_64
nginx nginx-1.10.3.tar.gz
mysql mysql-5.5.53-linux2.6-x86_64.tar.gz
php php-5.5.38.tar.gz
zabbix zabbix-3.2.4.tar.gz

提前安装好如下两个包组:yum groupinstall "Development Tools" "Server Platform Development"

1.1 问题

本案例要求部署一台Cacti监控主机,并安装相关监控组件,为进一步执行具体的监控任务做准备:

  1. 安装net-snmp、net-snmp-utils
  2. 安装LAMP及相关依赖软件包
  3. 部署Cacti监控平台
  4. 初始化监控页面

job自定义语句监控

 

1.创建作业,核心就是在步骤中加入对指定数据的监测超过时触发通知。这里通过一个raiseerror 即可:

图片 8

2.配置通知,当失败是发送电子邮件。

配置邮件

3.搭建web服务

zabbix作为监控系统需要有图形化的页面呈现给运维人员,它使用web php的方式来实现。这里首先搭建其需要的web服务。我使用的是nginx-1.10.3的源码包编译安装的方式。相应步骤如下:

  • 添加nginx用户
useradd nginx -s /sbin/nologin -M   #不让此用户通过shell登录系统
#-M不在home下创建此用户名同名的文件夹
  • 编译安装nginx
    将前面提到的nginx-1.10.3.tar.gz包解压以后,cd到nginx-1.10.3目录中,然后使用如下参数进行configure
./configure --prefix=/usr/local/nginx-1.10.3 --with-http_ssl_module 
--with-http_stub_status_module --with-pcre  --with-user=nginx   
 #提前yum安装好pcre,pcre-devel,openssl,openssl-devl
make
make install
  • 创建软链接至nginx
    默认情况下nginx编译安装的路径(prefix) 是在/usr/local/nginx,所以创建一个软链接,使用起来更方便:
 ln -s /usr/local/nginx-1.10.3/ /usr/local/nginx  
  • 将源码安装的nginx执行程序放到PATH环境变量中
vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH
source /etc/profile.d/nginx.sh    #加载文件中的参数到当前的shell环境中

在Linux中,通过源码安装的各类软件包的执行程序都可以都通过这种方式放入PATH环境变量中方便使用,且相应的文件不需要赋予执行权限。

  • 更改nginx文件夹属主为nginx
chown -R nginx.nginx /usr/local/nginx-1.10.3 
  • 验证web service
[root@monitor-server2 ~]# nginx -t
nginx: the configuration file /usr/local/nginx-1.10.3/conf/nginx.conf syntax
 is ok
nginx: configuration file /usr/local/nginx-1.10.3/conf/nginx.conf test is 
successful
[root@monitor-server2 ~]# nginx   #启动nginx程序
[root@monitor-server2 ~]# pidof nginx   #检查nginx启动的进程,默认
#nginx一个master进程,4个worker进程,此处共5个进程ID,正常
1642 1641 1640 1639 1634
[root@monitor-server2 ~]# curl -I 127.0.0.1   #进一步验证web service是
#否已正常
HTTP/1.1 200 OK                        #此处结果为正常
Server: nginx/1.10.3
Date: Sat, 22 Apr 2017 10:52:45 GMT
Content-Type: text/html
Connection: keep-alive
  • 设置nginx开机自启
    这里我选择的是直接将nginx执行程序添加到rc.local脚本中:
echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
tail /etc/rc.local  #验证下是否正常添加上去

至此web service的搭建工作完成。下面继续mysql的搭建。

1.2 方案

使用1台RHEL7虚拟机,安装部署LAMP环境、Cacti及相关的snmp组件包,配置数据库并对Cacti监控平台进行初始化操作。

2.警报监控

何为警报:MS SQL SERVER自动将发生的事情记录在Windows的程序日志中。SQL SERVER AGENT会自动监视由SQL SERVER记录的程序执行日志,如果找到符合定义的Action发生,将拉响响应事件的警报。

 警报的机制如图

 忘记哪里的图了

整个部分的核心就是配置邮件服务,这部分需要一个邮件账户以及相应的邮件服务器。下面就以QQ的邮件为例进行说明。

4. 搭建mysql服务

zabbix的server和proxy是需要连接数据库的,zabbix支持多种类型的数据库,本文只涉及到mysql。

  • 添加mysql用户
useradd -s /sbin/nologin -M mysql
  • 解压mysql 二进制包到目标文件夹
    因为我使用的是名为mysql-5.5.53-linux2.6-x86_64.tar.gz的压缩包,此包实际是一个mysql的二进制包,相当于从相应平台安装编译好后打包出来的,直接解压以后可以使用,而无需再configure和make&&make install了。操作指令:
tar xf mysql-5.5.53-linux2.6-x86_64.tar.gz -C /usr/local   
#解压出来的文件会自动放置于/usr/local/mysql-5.5.53-linux2.6-x86_64中
  • 创建软链接
    为后续使用方便,如在脚本中引用路径时更方便,这里还是给它设置一个软链接:
 ln -s /usr/local/mysql-5.5.53-linux2.6-x86_64/ /usr/local/mysql
  • 更改mysql文件夹属主为mysql
chown -R mysql.mysql /usr/local/mysql/
  • 初始化mysql数据库
    在解压后的mysql目录中有一个scripts目录其中有一个mysql_install_db的文件,执行它,并指定用户为mysql,数据目录使用其默认的路径/usr/local/mysql/data,操作如下:
scripts/mysql_install_db --user=mysql -datadir =/usr/local/mysql/data  
#执行此语句后出现两个ok,并有一些安全方面和配置mysql自启服务的提示则为正常
tree /usr/local/mysql/data   #检查一下是否生成了相关的数据库文件,初始状态下为空
  • 设置mysql开机自启
    mysql目录中有一个support-files目录,其中有一个mysql.server文件,将其复制到/etc/init.d/下,并更名为mysqld
cp support-files/mysql.server /etc/init.d/mysqld 
chkconfig --add mysqld
chkconfig mysqld on
  • 提供mysql的配置文件
    同样是在support-files目录中有多种不同类型的mysql配置文件,本文我使用的是my-small.cnf,将其复制到/etc目录下,因为我没有设置非常规的basedir和datadir,所以这里可以不用对其进行修改:
cp support-files/my-small.cnf /etc/my.cnf     #更名为my.ncf
  • 启动mysql服务
service mysqld start   
lsof -i :3306   #检查mysql是否启动成功
  • 设置mysql root账户密码
mysqladmin -uroot -p<password>

然后在使用root用户登录。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:准备基础软件包

1)安装LAMP环境

Cacti监控需要通过Web页面展示出来,并且还需要使用MySQL来存储一些变量数据,因此需要先为Cacti准备基础LAMP环境。因为Cacti监控其他主机数据时使用的是snmp协议,所以还需要安装net-snmp和net-snmp-utils软件包。

  1. [root@svr5 ~]# yum -y install httpd php php-mysql php-ldap
  2. >php-xml mysql mysql-server net-snmp net-snmp-utils lm_sensors
  3. [root@svr5 ~]# service httpd start;chkconfig httpd on        //启动httpd服务
  4. [root@svr5 ~]# service mysqld start;chkconfig mysqld on        //启动mysqld服务
  5. [root@svr5 ~]# mysqladmin -u root password '111'            //设置数据库管理员密码

2)源码安装RRDTool

Cacti监控的数据存储和绘图功能主要依赖于该软件,如果没有该软件则Cacti无法存储监控数据并绘制出监控图像。

  1. [root@svr5 ~]# tar zxf rrdtool-1.4.5.tar.gz
  2. [root@svr5 ~]# cd rrdtool-1.4.5
  3. [root@svr5 rrdtool-1.4.5]# ./configure --prefix=/usr/local
  4. [root@svr5 rrdtool-1.4.5]# make && make install

步骤二:部署Cacti套件

1)解压部署Cacti软件包

Cacti是由PHP开发的Web页面套件,PHP代码通过使用snmp协议来获得监控数据,并代用RRDTool存储数据和绘制监控图像,所以在安装完成基础LAMP环境后,首先需要做的就是将Cacti软件包解压放置在Web服务器的网页根路径下。

  1. [root@svr5 ~]# tar zxf cacti-0.8.7g.tar.gz
  2. [root@svr5 ~]# mv cacti-0.8.7g/ /var/www/html/cacti
  3. [root@svr5 ~]# cd /var/www/html/cacti
  4. [root@svr5 cacti]# useradd cactiuser
  5. [root@svr5 cacti]# chown -R root.root ./
  6. [root@svr5 cacti]# chown -R cactiuser.cactiuser rra/ log/

2)创建数据库并初始化

Cacti需要使用MySQL来存储部分动态数据,这里还需要给Cacti创建一个数据库,并使用Cacti提前准备好的数据文件,对数据库进行初始化。

  1. [root@svr5 cacti]# mysql -u root -p
  2. Enter password:                                        //密码为前面初始化的密码
  3. mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8; //创建数据库
  4. mysql> GRANT all ON cactidb.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'pwd123';    //创建账户并赋权
  5. mysql> QUIT
  6. [root@svr5 cacti]# mysql -u cactiuser -p cactidb < cacti.sql //初始化数据库

3)修改Cacti的PHP源码文件,指定数据库名称及相关账户信息。

  1. [root@svr5 ~]# cd /var/www/html/cacti
  2. [root@svr5 cacti]# vim include/config.php
  3. <?php
  4. $database_default = "cactidb";                     //设置数据库名称
  5. $database_username = "cactiuser";                     //设置账户名称
  6. $database_password = "pwd123";                     //设置密码
  7. ……
  8. ?>
  9. [root@localhost cacti]# vi lib/functions.php
  10. <?php
  11. setlocale(LC_CTYPE,"zh_CN.UTF-8");                    //定义语言
  12. ……

4)调整http配置文件,重新定义根路径

httpd配置文件使用DocumentRoot "/var/www/html"语句来定义网站页面根路径,默认路径为/var/www/html/,这里需要修改为/var/www/html/cacti。

  1. [root@svr5 ~]# vim /etc/httpd/conf/httpd.conf
  2. .. ..
  3. DocumentRoot "/var/www/html/cacti"
  4. .. ..

5)访问Cacti监控页面,并进行初始化设置

第一次登录Cacti需要进行一些简单的初始化操作,主要是设置几个主要的依赖程序的存储位置。

机制理解:

要创建不同级别的警报,就必须得将错误写到Windows时间日志中。这个不难理解。因为在警报概念部分我们已经说了,SQL SERVER代理是从事件日志上读取错误信息。当SQL SERVER代理读取了事件日志并在此发现了新错误时,就会搜索整个数据库来寻找相应的警报。一旦SQL SERVER代理发现了Match的警报,将立即激活该警报,从而通知相关人员或者根据Job的设定来做出相应的反应。

简要配置如下,主要有三种监控类型:事件警报/性能警报/WMI警报,这里就不一一介绍了举例一个说明

 

可以选择警报类型,针对数据库和严重性中选择监测内容比如权限不足,当发生权限不足时报警:



 

如下图所示,可以设定发生警报时向哪些操作员进行通知。点击新增操作员按钮,可以完成添加警报通知的操作员,选择电子邮件即可



 

如下图所示,可以设定警报错误发送的方式,可以选择[E-mail]、[Pager]、[Net send]复选框(可多选),

同时可以填写在发送警报的同时给出的通知消息,并能够对响应的间隔时间进行设定。



 

1.设置邮件服务器

5.搭建php-fpm环境

  • configure php
    在将前面提到的php-5.5.38.tar.gz包解压以后,cdphp-5.5.38目录中,执行以下configure指令:
 ./configure --prefix=/usr/local/php-5.5.38 --with-config-file-path=/usr/local   
/php-5.5.38/etc --with-bz2 --with-curl --enable-ftp --enable-sockets 
--disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local 
--with-freetype-dir=/usr/local --enable-gd-native-ttf --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-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with- 
libdir=lib64 --enable-bcmath --enable-ctype --without-pear --disable-phar

configure完成以后,会提示进行make test,这是一个非常耗时间的过程,最后的结果有可能有一些警告,但不一定会有很大的影响,可以忽略。我在操作过程中遇到如下提示,没有去深究它,后面编译安装正常完成,没有错误提示,使用也还未发现问题。

FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #64267 (CURLOPT_INFILE doesn't allow reset) [ext/curl/tests/bug64267.phpt]
#66265: gettext doesn't switch locales within the same script [ext/gettext/tests/bug66267.phpt]
Bug #32001 (xml_parse*() goes into infinite loop when autodetection in effect), using UTF-* [ext/xml/tests/bug32001.phpt]
WARNED TEST SUMMARY
zend multibyte (2) [ext/mbstring/tests/zend_multibyte-02.phpt] (warn: XFAIL section but test passes)
zend multibyte (6) [ext/mbstring/tests/zend_multibyte-06.phpt] (warn: XFAIL section but test passes)
zend multibyte (8) [ext/mbstring/tests/zend_multibyte-08.phpt] (warn: XFAIL section but test passes)
Bug #70172 - Use After Free Vulnerability in unserialize() [ext/standard/tests/serialize/bug70172.phpt] (warn: XFAIL section but test passes)

configure过程中如果碰到的有错误提示,请根据提示信息予以解决,查看是否上述指定的包并未安装所致。

  • 安装php-fpm
make
make install
  • 设置php的软链接
ln -s /usr/local/php-5.5.38/ /usr/local/php
  • 将php的执行程序放入PATH变量中
echo "export PATH=/usr/local/php/sbin:/usr/local/php/bin:$PATH
" > /etc/profile.d/php.sh
source /etc/profile.d/php.sh
  • 提供php的配置文件
    php的源码包中提供的有php的配置文件,在解压后的目录中将其复制到我们在configure时指定的位置并更名为php.ini,如:--with-config-file-path=/usr/local/php-5.5.38/etc
cp php.ini-production /usr/local/php-5.5.38/etc/php.ini  
#在解压后的源码包中实际有两个配置文件,但我们使用这个适用生产环境的这个即可
  • 提供php-fpm的配置文件
    php-fpm的配置文件在执行make install时已安装好了,只需要将其改名即可:
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf  
  • 启动php-fpm
php-fpm   #因为已将php执行程序路径放入PATH变量中,所以此处可以直接使用php-fpm指令  
lsof -i :9000          #查看9000端口是否被php-fpm占用,是则表明php-fpm启动成功
  • 设置php-fpm开机自启
    在编译后的php源码包中其实就提供了php-fpm服务脚本:./sapi/fpm/init.d.php-fpm,我们只需要将其复制到/etc/init.d/目录下,并更名即可。操作如下:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm   #当前的工作目录为编译
#安装后的php源码目录php-5.5.38
chmod  x /etc/init.d/php-fpm   #赋予服务脚本可执行权限
chkconfig --add php-fpm
chkconfig php-fpm on   #设置php-fpm服务开机自启动
service php-fpm start    #启动php-fpm服务  
service php-fpm status   #检查php-fpm服务状态,或者使用之前的lsof -i :9000查看  
  • 将php-fpm与nginx结合
    php-fpm可以正常启动以后,需要配置web service可以访问php-fpm服务,因为我这里使用的nginx提供web service,所以修改其配置 文件/etc/usr/local/nginx/conf/nginx.conf如下:
        # 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  $document_root$fastcgi_script_name;
            fastcgi_param  SCRIPT_NAME      $fastcgi_script_name;
            include        fastcgi_params;
        }

可以直接将原nginx.conf文件中与php-fpm相关的部分的注释直接去掉,并修改成如上所示内容。

  • 测试nginx是否可正常使用php-fpm
  • 要进行此测试,还需要修改nginx.conf中的根location,在其首页中添加index.php,内容如下:
        location / {
            root   html;
            index  index.php index.html index.htm;
        }
  • nginxhtml文件夹中使用如下指令,建立index.php文件:
echo "<?php phpinfo(); ?>" > index.php
  • 重启nginx程序和php-fpm服务
nginx -t
nginx -s reload
service php-fpm restart
  • 浏览器中输入这台server的ip后回车
    正常情况下,可以显示phpinfo的详细信息了,如下所示:

    ![php info页面](http://upload-images.jianshu.io/upload_images/1920135-f7589a1b913cc79f.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240)
    

2 案例2:构建Cacti监测系统

总结

   由于平时习惯了第三方平台的使用所以很少配置邮件服务,近日尝试一下以后发现如果服务器网络通畅或者内网服务完整,使用该服务还是很方便的,而且毕竟是微软自己的东西对于很多指标的监控也比较快捷到位。需要主要的是该功能对于权限的要求比较高,有时候需要调整用户权限等等才可以正常发送邮件。当没有第三方发送预警平台时可以考虑这种方式,是很不错的体验。

图片 9

6.搭建zabbix server

  • 创建zabbix用户
useradd -s /sbin/nologin -M zabbix
  • configure zabbix
    将前面提到的zabbix-3.2.4.tar.gz包解压以后,cd到解压后的目录(zabbix-3.2.4)后执行如下指令:
  ./configure  --prefix=/usr/local/zabbix-3.2.4 --enable-server 
--enable-agent --with-mysql  --with-net-snmp --with-libcurl --with-libxml2 

因为zabbix server也需要被监控,所以其也需要agent。
configure时使用了--with-net-snmp --with-libcurl --with-libxml2所以需要先在系统中使用yum安装net-snmp-devel、libcurl-devel、libxml2-devel包,使用yum安装会自动解决依赖关系将net-snmp、libcurl、libxml2一并安装上。
正常完成configure后,会显示如下汇总信息:

  Configuration:

   Detected OS:           linux-gnu
   Install path:          /usr/local
   Compilation arch:      linux

   Compiler:              gcc
   Compiler flags:         -g -O2

    Library-specific flags:
   database:               -I/usr/local/mysql/include  -fPIC  -g -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1   
   libXML2:               -I/usr/include/libxml2
   Net-SNMP:               -I/usr/include/rpm -I/usr/local/include -I/usr/lib64/perl5/CORE -I. -I/usr/include

  Enable server:         yes
  Server details:
   With database:         MySQL
   WEB Monitoring:        cURL
    Native Jabber:         no
    SNMP:                  yes
   IPMI:                  no
   SSH:                   no
   TLS:                   no
   ODBC:                  no
  Linker flags:             -L/usr/local/mysql/lib        -L/usr/lib64      -rdynamic  
  Libraries:               -lmysqlclient      -lxml2    -lnetsnmp      -lcurl -lm -ldl -lrt  -lresolv 

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
   TLS:                   no
   Linker flags:              -rdynamic  
  Libraries:                 -lcurl -lm -ldl -lrt  -lresolv 

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

   ***********************************************************
   *            Now run 'make install'                       *
   *                                                         *
   *            Thank you for using Zabbix!                  *
   *              <http://www.zabbix.com>                    *
  ***********************************************************
  • 安装zabbix
    根据configure完成后的提示执行make install即可,无需执行make然后再make install。

2.1 问题

沿用练习一,为监控客户端主机安装net-snmp并设置监控权限,并通过调整Cacti服务端配置,实现以下目标:

  1. 主机192.168.1.200上搭建Cacti系统
  2. 监测网关、网站、邮件三台Linux服务器
  3. 监控被监控端的CPU负载、网络流量、磁盘空间
  4. 发邮件给root@localhost

开启SMTP服务,点击开启,然后点击下方的生成授权码,获得授权码就是数据库发送邮件账号的密码。

7.建立给zabbix使用的数据库

zabbix要实现将其相关的配置信息,监控的信息都存储于后台的数据库中,自然需要建立相应的数据库,并配置相应的账号。zabbix支持多种类型的数据库,这里只以mysql为例,且是在zabbix server上的mysql上需要做的。

  • 创建给zabbix使用的数据库zabbix
mysql -uroot -p<password>    #登录mysql后继续以下操作
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;  
  • 初始化zabbix数据库
    在zabbix的源码解压目录中有一个database目录,其中有针对不同类型数据库要使用的初始化sql语句,在这里需要选择mysql目录中的语句:
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# 如果是在zabbix proxy服务器上初始化mysql数据库,则只导入上面一条sql语句即可,切记!
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> zabbix < data.sql
#在zabbix server上将三条语句全部导入
  • 修改zabbix server配置文件
    源码安装的zabbix,其配置文件默认位于其安装目录的etc目录中,即:/usr/local/zabbix/etc下,server的为zabbix_server.conf,此时修改其连接数据库的相关信息即可,默认连接的数据库即为本机的数据库,数据库即为zabbix,密码为空,所以将密码设置为前面创建的密码即可。
DBPassword=<password>
  • 修改zabbix agent的配置文件
    文件位置和server的一样,需要修改的地方有如下几处:
Server=127.0.0.1   #设置允许哪些zabbix server连接此agent
ServerActive=127.0.0.1  #设置为zabbix server地址,用于agent主动发送监控数据给server端
Hostname=Zabbix server   #这个地方设置要和configuration-->host设置的host名称一致  
  • 设置zabbix server和agent开机自启动
    zabbix原生也提供了用于实现开机自启动的服务脚本,它们在3.2.4版本中位于解压后的目录/root/softwares/zabbix-3.2.4/misc/init.d,这个目录下有针对不同类型系统的脚本,这里我选择的是fedora这一目录中的脚本,脚本位置及名称如下:
[root@monitor-server2 core]# pwd
/root/softwares/zabbix-3.2.4/misc/init.d/fedora/core
[root@monitor-server2 core]# ll
total 8
-rwxr-xr-x 1 1000 1000 2170 Feb 27 17:22 zabbix_agentd
-rwxr-xr-x 1 1000 1000 2181 Feb 27 17:22 zabbix_server

很明显分别有针对server和agent的脚本,把它们复制到/etc/init.d/目录下:

cp zabbix_agentd /etc/init.d
cp zabbix_server /etc/init.d 

打开这两个文件(zabbix_agentd和zabbix_server)查看其内容,根据实际情况进行修改,一般需要更改的只是如下内容:

    # Zabbix-Directory
    BASEDIR=/usr/local     #将此处改为/usr/local/zabbix即可
#congifure如果不指定zabbix的prefix,它默认直接安装到/usr/local目录下  

将这两个服务安装添加到自启动中:

chkconfig --add zabbix_agentd
chkconfig --add zabbix_server
chkconfig zabbix_agentd on
chkconfig zabbix_server on
  • 启动zabbix server和agent程序
service zabbix_server start
service zabbix_anentd start
[root@monitor-server2 ~]# ss -tnl | grep -E "10050|10051"    
LISTEN     0      128                       *:10050                    *:*     
LISTEN     0      128                       *:10051                    *:* 
#zabbix server和agent启动成功

2.2 方案

准备4台Linux虚拟机,1台部署Cacti监控系统,3台作为服务器同时也是被监控的对象,拓扑结构如图-1所示。

图片 10

图-1

实验沿用练习一的成果,cacti监控平台已经部署完毕,目前需要给所有被监控节点安装net-snmp,并通过修改配置文件设置监控权限。

2.配置数据库邮件

8.安装zabbix web程序

zabbix对于监控的结果可以通过web页面来进行展示和查看,它需要安装一个使用php程序来运行的web站点,根据zabbix的官方要求,还有如下php的参数需要提前修改:

max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
date.timezone = Asia/Shanghai    #建议设成国内标准时区

上述修改都在php.ini文件中完成。在本文的环境中它位于/usr/local/php/etc/php.ini。另外需要补充一下,zabbix3.2.4它要求的php版本最低为5.4。 修改完php.ini文件后,重启php-fpm服务service php-fpm restart

安装zabbix web程序操作步骤如下:

  • 创建web站点
    在web service的根目录下给zabbix单独创建一个根目录,用于存放zabbix的php程序文件,然后再将源码解压目录中名为frontends/php目录中的全部内容复制过来。
mkidr /usr/local/nginx/html/zabbix    #nginx默认的站点根目录为其安装路径下的html
cd frontends/php 
cp -a . /usr/local/nginx/html/zabbix
  • 打开zabbix web完成配置过程
    在浏览器中输入http://server_ip/zabbix打开zabbix的web界面,初次打开会显示欢迎界面,此时web程序的安装还没有完成,并不需要登录web站点的用户名和密码,然后点击Next step可以看到它会进行一个php环境参数的检测,需要它们全部显示为OK在继续进行下一步,从此步也可以看到很多之前php configure时所enable和with的选项参数,它们都是运行zabbix web程序所要求的。
    **zabbix 3.2.4 web需求php的环境如下: **
Pre-requisite Minimum value
PHP version 5.4.0
PHP memory_limit option 128MB
PHP post_max_size option 16MB
PHP upload_max_filesize option 2MB
PHP max_execution_time option 300 seconds (values 0 and -1 are allowed)
PHP max_input_time option 300 seconds (values 0 and -1 are allowed)
PHP session.auto_start option must be disabled
Database support One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite
bcmath
mbstring
PHP mbstring.func_overload option must be disabled
PHP always_populate_raw_post_data option must be disabled
sockets
gd 2.0 or higher
libxml 2.6.15
xmlwriter
xmlreader
ctype
session
gettext

php环境检测通过的结果如下图所示:

图片 11

zabbix web php环境检测通过图1

图片 12

zabbix web php环境检测通过图2

  • 配置zabbix web连接的数据库
    数据库为本机名为zabbix的mysql数据库,账户名和密码输入此前创建zabbix数据库时配置授权的账户和密码。

图片 13

zabbix web DB配置

  • 配置zabbix server信息
    这里在Name处可以填上本机的主机名,其它保持默认即可。

图片 14

zabbix server详细信息

  • zabbix web安装信息汇总

图片 15

zabbix web安装信息汇总

  • 生成zabbix web的配置文件并导入站点配置目录中
    zabbix web安装程序会自动生成一个名为zabbix.conf.php的配置文件,并尝试自动将其放入zabbix站点配置目录中,但由于权限问题,会创建失败,此时只需要通过浏览器下载,然后手动入到指定目录即可,web安装程序会有相关提示,如下图所示:

图片 16

zabbix web conf install

文件导入完成后,点击Finish,会出现以下信息,即表示zabbix web安装成功。

图片 17

zabbix web安装成功提示信息

  • 登录zabbix web界面
    在浏览器中输入http://server_ip/zabbix即可打开zabbix的登录界面,输入如下默认账户和密码即可登录:
    user name:Admin
    password:zabbix
    此用户为zabbix web系统中super user,拥有最高权限,用户名注意字母大小写。

初始情况下,只配置了让zabbix server监控它自己,下面继续配置一台Linux server,让zabbix server可以监控它,并可以发送监控通知邮件。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:被监控主机设置

注意:由于所有被监控主机均允许cacti监控服务器从本机提取监控数据,因此所有被监控主机都需要做如下操作,下面以网关服务器为例。

1)安装net-snmp软件

Cacti监控其他主机是通过简单网络管理协议(SNMP)收集被监控端数据信息,因此被监控端服务器都需要安装net-snmp以及lm_sensors。lm_sensors软件可以帮助我们来监控硬件信息如CPU的工作电压等数据。

  1. [root@router ~]# yum -y install net-snmp lm_sensors

2)修改snmp配置文件

SNMP配置文件主要包括四个部分内容需要修改,第一步映射通讯名称到安全用户名称,第二步将用户加入到组中,第三步为组赋予访问视图 的权限,第四步定义all视图。主配置文件设置完成后重启服务即可通过客户端访问该服务器获得系统信息,SNMP使用的端口号为UDP 161端口以及TCP 199端口。

  1. [root@router ~]# vim /etc/snmp/snmpd.conf
  2. ……
  3. com2sec notConfigUser 192.168.1.200 public //社区名称映射为安全名称
  4. group notConfigGroup v1 notConfigUser    //将账户加入组
  5. group notConfigGroup v2c notConfigUser
  6. access notConfigGroup "" any noauth exact all none none //赋予notConfigGroup组对all视图的访问权限
  7. view all included .1        80                //定义all视图及相关权限
  8. ……
  9. [root@router ~]# service snmpd start;chkconfig snmpd on

3)查看SNMP服务运行状态,设置防火墙

默认SNMP监听udp的161端口和tcp的199端口,通过netstat命令可以查看该端口的监听状态,设置防火墙规则允许这两个端口的入站数据。

  1. [root@router ~]# netstat -anpu | grep "snmpd"
  2. udp 0 0 0.0.0.0:161 0.0.0.0:* 16452/snmpd
  3. [root@router ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
  4. [root@router ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT
  5. [root@router ~]# service iptables save

步骤二:设置Cacti监控服务器

注意:本练习案例要求将3台被监控端主机均加入到Cacti系统,这里以Web服务器为例添加监控对象并生成监控图像。其它监控节点做相关操作即可。

1)添加监控主机

登录Web控制台( admin,首次登录时要求强制重设密码。添加被监控端主机时需要设置目标地址,并正确选择主机模板、设置社区名称。

登录Web控制台后,进入Devices菜单后点击Add添加被监控主机,如图-2所示。此时系统会要求填写相关表单信息,需要填写的 项目参数描述见表-1,填写完所需项目表单后点击右下角的Create即可创建新的设备主机,同时在下方会出现图形模版以及数据查询模版,管理员可以根据 实际需要继续添加需要监控的参数对象,确定后点击Save保存所有设置,效果如图-3所示。

/

图-2

表-1 项目参数描述表

图片 18

图片 19

图-3

2)创建监控图像

通过以上操作,设备主机以及需要监控的性能指标已经创建完成,下面需要通过New Graphs菜单为Web服务器创建图形。进入新建图形界面后在Host列表中选择上一步添加的设备主机,并在需要监控的性能模版后点选对勾,设置完成后 选择Create为被监控设备添加图形,如图-4所示。

图片 20

图-4

3)创建监控图像树

Cacti监控系统最终通过树状列表来查看被监控主机性能图形,我们可以创建多棵图形树,在每棵图形树下可以插入多个设备主机的图形信 息。Cacti初始状态有一个名为Default的图形树,本案例中我们将创建一棵新的图形树,并将被监控端主机的图形添加进来。通过点击Graph Trees菜单打开图形树的设置界面。选择Add可以添加新的图形树,如图-5所示,提示输入Name(图形树名称)后点击Create(创建),本案例 设置名称为Web,此时在Graph Trees界面中会出现Default与Web两棵图形树。点击进入Web树中,选择Add按钮添加上一步操作中创建的图形,如图-6所示。

图片 21

图-5

图片 22

图-6

4)监控服务器定期收集被监控端主机信息

Cacti监控服务器需要通过SNMP收集数据信息并最终生成图形窗口,在Cacti软件包中已经自带了这么一个用于收集数据的PHP脚本,默认Cacti系统需要每五分钟收集一次数据,管理员可以通过计划任务实现每五分钟执行该脚本,也可以手动执行该脚本立即同步数据。

5)查看监控页面效果

最后,通过Cacti平台的graphs选项卡进入图形窗口,该窗口将以树状显示,案例中我们创建了一棵名为Web的图形树,并在Web树下添加了3台被监控主机的图形,最终查看效果如图-7所示。

  1. [root@cacti ~]# crontab -e
  2. */5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

图片 23

图-7

步骤三:实现邮件报警机制

1)安装插件补丁

  1. [root@cacti ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz
  2. [root@cacti ~]# mv cacti-plugin-arch /var/www/html/cacti/
  3. [root@cacti ~]# cd /var/www/html/cacti
  4. [root@cacti cacti]# patch
  5. > -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff //打补丁
  6. [root@cacti cacti-plugin-arch]# pwd
  7. /var/www/html/cacti/cacti-plugin-arch
  8. [root@cacti cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb <pa.sql //插入数据库

2)修改配置文件,正确设置数据库信息

  1. [root@cacti cacti]# vim /var/www/html/cacti/include/global.php
  2. $database_type = "mysql"
  3. $database_default = "cactidb"
  4. $database_hostname = "localhost"
  5. $database_username = "cactiuser"
  6. $database_password = "pwd123"
  7. $database_port = "3306"
  8. [root@cacti cacti]# vim /var/www/html/cacti/include/config.php
  9. $url_path = "/cacti/"

3)修改权限

默认admin账户并没有开启插件功能,需要点击"User Management"菜单,在刷新出来的页面中找到"admin"账户,如图-8所示。点击进入admin账户设置页面。在"Realm Permissions"选项卡下找到"Plugin Management"并点选对勾赋予账户插件管理权限,如图-9所示。

图片 24

图-8

图片 25

图-9

4)安装邮件报警插件

插件即是PHP源代码文件,解压后复制到Cacti目录下即可。

  1. [root@cacti ~]# tar -xzf thold-v0.4.9-3.tgz
  2. [root@cacti ~]# tar -xzf setting-v0.71-1.tgz
  3. [root@cacti ~]# tar –xzf monior-v1.3-1.tgz
  4. [root@cacti ~]# mv monitor settings thold /var/www/html/cacti/plugins

刷新Web控制台查看Plugin Management页面内容如图-10所示。下一步还需要点击插件名称左边的图标(向下的箭头)进行安装。

图片 26

图-10

5)启用Thold插件

首先需要定义报警邮件列表,点击"Notification Lists",在刷新出的页面中点击“Add"按钮,在弹出的页面中填写报警通知的邮件账户列表,如图-11所示。

图片 27

图-11

其次,还需要设置发送邮件的服务器,效果如图-12所示。

图片 28

图-12

6)使用Thold监控具体对象参数

监控web服务器的/boot空间,如果该分区的已用空间已达到80M以上,那么将发送邮件报警。

点击"Thresholds",在弹出的页面中选择"Add"按钮添加被监控主机及监控图像,具体报警参数设置如图-13至图-15所示。

图片 29

图片 30

图-14

图片 31

打开MSSM---管理--》数据库邮件--》邮件配置数据库邮件—》如下选择

9.被监控端安装zabbix agent

安装过程还是使用源码编译安装的方式,先创建zabbix用户。

useradd -s /sbin/nologin -M zabbix

在被监控的Linunx server上,只需要安装zabbix agent,在configure时使用如下参数即可:

./configure  --prefix=/usr/local/zabbix-3.2.4 --enable-agent

configure完成以后,注意观察汇总信息是否有错误提示,是否只启用了agent,有问题根据实际情况去排查并解决。如果没有错误,则根据提示信息执行make install完成安装过程。
被监控端设置软链接,添加zabbix执行程序路径至PATH变量,修改zabbix_agentd.conf文件以及zabbix_agentd服务开机自启的过程参考前文相关内容即可,此处不在赘述。
最后启动被监控端的zabbix_agentd服务。

service zabbix_agentd start

图片 32

10.zabbix server上配置监控内容

在zabbix server上配置刚安装了zabbix agent的主机,并设置要监控的内容。

  • 添加要监控的主机
    在zabbix web上添加要监控的主机,选择Configuration---->Hosts--->Create host,在如下界面中填写相应信息:

图片 33

zabbix web添加主机1

根据实际情况填写主机名,选择主机分组,主机ip,对于主机分组此处我选择Linux servers作为示例。
然后可以选择Host旁的Templates,zabbix内置了很多种不同的模板,它包含的有监控条目item,告警触发器trigger,图形展示Graphs,屏幕Screens等。以下为给主机应用模板的操作过程:

图片 34

给主机应用监控模板1

图片 35

选择相应的监控模板

图片 36

确认主机是否应用了监控模板

示例中的server3上我启用的有web服务,所以这里选择了zabbix内置的Template App HTTP Serivice这一模板对http服务进行监控。 等待片刻,ZBX会显示成绿色即表示zabbix server能和server3上的zabbix agent正常通信了,如下所示:

图片 37

zabbix server已可监控到server3

点击下一步后按照步骤123进行配置。

11.配置zabbix server发送通知邮件

zabbix server默认支持多种发送通知的方式,其中就包含的有名为Email的方式,但经过多次尝试都未能实现让zabbix server发送通知邮件,所以这里使用zabbix调用外部脚本且借助公网smtp服务器的方式来发送通知邮件。详细过程如下:

  • 配置Media Type
    zabbix支持自定义Media Type,这里我创建一个名为user mail的Media Type,并指定它是需要使用Scripts的方式。在Administration下选择Media Types,然后选择Create media type,创建内容如下:

图片 38

部署Cacti监控平台,zabbix的编译安装并发送通知邮件。zabbix自定义media type

  • 建立通知邮件脚本
    默认情况下通知邮件脚本应该存放在/usr/local/zabbix/share/zabbix/alertscripts,直接在这个路径下建立相应的脚本即可,如果脚本不是存放在此处,需要修改zabbix_server.conf文件中此处# AlertScriptsPath=${datadir}/zabbix/alertscripts取消掉注释并写上脚本完整的存放路径。mail.sh的内容如下:
#!/bin/bash
#
file=/tmp/mailtmp.txt
echo "$3" > $file         #$3为上一步中定义的{ALERT.MESSAGE},即告警详细信息
dos2unix -k $file         #实际使用中发现zabbix所发邮件的正文会以一
#个.dat结尾的文件作为附件来进行发送,使用dos2unix将邮件正文进行格
#式转换,这样在收到邮件后正文直接显示通知的正文,-k是保持文件的时
#间戳不变。
/bin/mail -s "$2" $1 < $file  #$2为上一步中定义的{ALERT.SUBJECT},即
#邮件主题,$1为上一步中定义的{ALERT.SENDTO}即收件人。  
  • 定义收件人邮件地址
    在zabbix中每个用户可以关联多个Media type,在这里我给Admin这一用户关联上前面已经定义好的名为user mail的Media type,并填上其邮件地址,即zabbix发送邮件通知时的收件人邮件地址。在zabbix web上依次选择AdministrationUsersAdminMedia标签,然后点击Add,给这一用户定义一个media,此处选择user mail,如下所示:

图片 39

给用户关联相应的Media-1

图片 40

给用户关联相应的Media-2

图片 41

给用户关联相应的Media-3

  • 设置发送通知的action
    zabbix中只有设置 了action,它才知道应该如何发送通知,如在什么条件下发送,通知通过哪个media type发送,发送给哪些人,发送的频率是怎么样的,发送的通知主题和正文是怎样的,当故障恢复以后如何发送通知等。 这些必须在action中定义好。以下为配置示例,当被监控端不是在工程态(维护状态)中,发生了Problem事件,即将相关信息发送给zabbix administraotrs组内的所有用户且通过上面自定义的user mail这一media发送。
    大致过程如下:依次选择ConfigurationActionsCreate action,然后按照下图所示过程进行操作:

图片 42

定义action名称及触发条件

图片 43

定义故障时action的具体行为-1

图片 44

定义故障时action的具体行为-2

图片 45

定义故障恢复后action的具体行为

图片 46

查看刚定义的action

从上述过程也可以看到其实这些action定义的是由Trigger来触发的,因为前面我是直接给主机应用了zabbix内置的http service的模板,它里面已经关联的有相应的trigger了,所以当http service发生变化,会自动触发相应的trigger,而后又触发zabbix 执行相应的action。这是zabbix发送通知的一个大致的过程。

  • 定义zabbix发送通知邮件使用的账户
    zabbix server本机非合法的smtp服务器,由它直接发送邮件给公网邮箱,会有很多问题,不一定成功。所以这里依然选择使用公网的163 smtp服务器来发送zabbix的通知邮件。因为不需要用到本机的smtp服务,所以可以选择将smtp服务停止,并确保本机有mail程序可用,它由mailx软件包提供。在上面定义通知邮件脚本时就已经用到了mail指令。
    本机服务账户配置方法,在/etc/mail.rc中增加如下内容:
set from=zabbix@163.com    #提供一个可用的163邮箱
set smtp=smtp.163.com
set smtp-auth-user=zabbix
set smtp-auth-password=xxxxxx   #163邮箱的授权码,在邮箱网页中去设置
set smtp-auth=login
  • 制造告警测试是否正常收到通知邮件
    将server3的web service停掉,将近3分钟查看邮件客户端,收到了zabbix发送的通知邮件。这个从故障发生到zabbix发送通知消息的时长,取决于监控的item配置的检测时长和trigger判断条件,默认的http service的检测时长为1分钟,其判断条件为最大连续检测到3次失败即认为http service down,触发相应的trigger,并与相应的action联动,从而发送通知邮件。zabbix发送的通知邮件内容大致如下:

图片 47

zabbix通知邮件

首先创建账户如下:

12.小结

以上即为zabbix实现监控Linux服务器并发送通知邮件的实现过程小记。只是zabbix的基础入门,还有很多内容需要在不断的使用中熟悉,也可以参考官网手册,会有很多收获。

图片 48

部署Cacti监控平台,zabbix的编译安装并发送通知邮件。使用创建的账户作为配置账户

图片 49

接下来需要选择安全公共配置,选中刚才配置的文件名,然后后面默认为配置文件

图片 50

然后,可以修改“配置系统参数”,比如账户重试次数,禁止的附件文件扩展名,单击下一步,,默认配置即可:

图片 51

都完成后会显示如下四个成功状态:

图片 52

这样配置邮件服务就完成了可以右键“数据库邮件”点击测试邮件。也可以代码执行

发送邮件

EXEC msdb.dbo.sp_send_dbmail
 @profile_name = 'XXXX',   --配置文件名称
 @recipients = 'XXX@QQ.com', --收件email地址
 @subject = '你好',     --邮件主题
 @body = '…'   --邮件正文内容

执行完毕后可以通过错误日志下面的邮件日志来查看详细情况。如果收到了邮件那么就可以进行下一步对于数据库的监控了,这里介绍两种一种是job的指定监控还有一种是警报监控。

job自定义语句监控

1.创建作业,核心就是在步骤中加入对指定数据的监测超过时触发通知。这里通过一个raiseerror 即可:

图片 53

2.配置通知,当失败是发送电子邮件。

图片 54 

2.警报监控[code]何为警报:MS SQL SERVER自动将发生的事情记录在Windows的程序日志中。SQL SERVER AGENT会自动监视由SQL SERVER记录的程序执行日志,如果找到符合定义的Action发生,将拉响响应事件的警报。

警报的机制如图

]图片 55

忘记哪里的图了

机制理解

要创建不同级别的警报,就必须得将错误写到Windows时间日志中。这个不难理解。因为在警报概念部分我们已经说了,SQL SERVER代理是从事件日志上读取错误信息。当SQL SERVER代理读取了事件日志并在此发现了新错误时,就会搜索整个数据库来寻找相应的警报。一旦SQL SERVER代理发现了Match的警报,将立即激活该警报,从而通知相关人员或者根据Job的设定来做出相应的反应。

简要配置如下,主要有三种监控类型:事件警报/性能警报/WMI警报,这里就不一一介绍了举例一个说明

可以选择警报类型,针对数据库和严重性中选择监测内容比如权限不足,当发生权限不足时报警:

图片 56

 如下图所示,可以设定发生警报时向哪些操作员进行通知。点击新增操作员按钮,可以完成添加警报通知的操作员,选择电子邮件即可

图片 57 

如下图所示,可以设定警报错误发送的方式,可以选择[E-mail]、[Pager]、[Net send]复选框(可多选),同时可以填写在发送警报的同时给出的通知消息,并能够对响应的间隔时间进行设定。

图片 58 

总结

由于平时习惯了第三方平台的使用所以很少配置邮件服务,近日尝试一下以后发现如果服务器网络通畅或者内网服务完整,使用该服务还是很方便的,而且毕竟是微软自己的东西对于很多指标的监控也比较快捷到位。需要主要的是该功能对于权限的要求比较高,有时候需要调整用户权限等等才可以正常发送邮件。当没有第三方发送预警平台时可以考虑这种方式,是很不错的体验。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 查找oracle数据库表中是否存在系统关键字的方法
  • Access数据库中“所有记录中均未找到搜索关键字”的解决方法
  • 数据库删除完全重复和部分关键字段重复的记录
  • Linux 自动备份oracle数据库详解
  • myeclipse中连接mysql数据库示例代码
  • Myeclipse连接mysql数据库心得体会
  • MyEclipse连接MySQL数据库图文教程
  • python爬取NUS-WIDE数据库图片
  • 记一次mariadb数据库无法连接
  • 数据库 关键字一览表

本文由澳门新萄京官方网站发布于数据库网络,转载请注明出处:部署Cacti监控平台,zabbix的编译安装并发送通知邮

关键词: