Zabbix安装

学习并搭建监控系统,学习总结如下:

Zabbix监控系统

在使用Zabbix监控主机的CPU、内存、磁盘和网络接口等信息前,我们需要先部署企业中的第一个Zabbix监控主机。本文主要介绍如何在RHEL6.5上部署一个Zabbix监控系统。

Part.1 Zabbix系统部署要求

Zabbix监控系统的运行条件,可以是运行Linux、IBM AIX、FreeBSD、NetBSD、OpenBSD、HP-UX、Mac OS X和Solaris操作系统的机器,并且需要C语言编译器。

Zabbix系统的Web GUI依赖于LAMP或者LNMP环境之上,其中本文使用的是zabbix2.4.6版本,其中MySQL版本最低要求5.0.3及以后,并且使用InnoDB存储引擎

Zabbix Server的基本配置

1,关闭selinux和iptables

2,设置IP地址、子网掩码等网络信息

3,设置主机名和hosts文件

4,配置一个本地或网络的yum下载源

5,安装c语言和C++的开发环境(gcc、gcc-c++、automake、autoconf)

yum install -y gcc gcc-c++ automake autoconf

yum -y install libtool libtool-ltdl libtool-ltdl-devel

yum install expat-devel openssl-devel

源码部署LAMP环境(apache)

Zabbix 最为重要的步骤是部署一个LAMP环境,这是运行zabbix所必须的。具体步骤如下:

安装Apache的依赖包apr、apr-util和pcre

软件包下载

1.      安装包httpd-*.*.*.tar.gz

下载地址:

http://httpd.apache.org/download.cgi

2.      关连包:

http://apr.apache.org/download.cgi#apr0

apr-1.4.2.tar.bz2下载地址

下载地址:

http://apache.freelamp.com/apr/apr-1.4.2.tar.bz2

pcre2-10.32.zip下载地址

https://sourceforge.net/projects/pcre/files/latest/download

apr-util-1.3.9.tar.gz

下载地址:

http://apr.apache.org/download.cgi

下载历史版本:

http://archive.apache.org/dist/apr/

安装

安装apr:

# tar -zxf apr-1.5.2.tar.gz

# cd apr-1.5.2

# ./configure --prefix=/usr/local/apr

# make && make install

安装apr-util

# tar -zxf apr-util-1.5.1.tar.gz

# cd apr-util-1.5.1

# ./configure --prefix=/usr/local/apr-util -with-apr=/usr/local/apr

# make && make install

下载pcre软件包后,执行如下命令安装

# tar -jxf pcre-8.31.tar.bz2

# cd pcre-8.31

# ./configure --prefix=/usr/local/pcre

# make && make install

如果在安装过程中,遇到错误,请按照系统的错误提示解决,完成成以上步骤,Apache所依赖的apr、apr-util和pcre就安装完成了。

安装Apache软件包

Apache 是模块化的服务器,核心服务器中只包含了功能最常用的模块,而扩展功能由其他模块提供。设置过程中,你必须指定需要包含的模块。Apache 文档中有模块清单备查,其中状态为"Base"的模块会被默认地包含进核心服务器,如果不需要包含某个模块(比如mod_userdir),则必须明确地禁用它;其他状态的模块(比如mod_expires),也必须明确启用以使之包含进核心服务器。

一般情况下,核心模块功能我们全部启用;除此之外,我们为了使搜索引擎更容易收录我们的网页,需要将动态页面的URL 重写为静态页面的URL,需要mod_rewrite;为了今后动态添加模块而不重新编译apache(例如添加PHP 的支持),需要启用mod_so。

下载Apache软件包后,执行如下命令安装

# tar -zxf httpd-2.4.37.tar.gz

# cd httpd-2.4.37

# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre --enable-so --enable-rewrite --enable-mime-magic --enable-mem-cache

# make && make install

 

报错处理:

报错1:make[2]: *** [htpasswd] Error 1

apr apr-util用了最新的1.6版本,但是1.6在centos7上编译安装httpd没有问题,降低版本,用1.5版本解决

安装MySQL

#groupadd mysql

#useradd -g mysql mysql

 

安装mysql到/usr/local/mysql下

#cd /usr/local

#tar zxvf /{MySQL5.6_path}/mysql-{version}.tar.gz

 

例如我的配置路径为:

#cd /usr/local

#tar -zxvf /opt/mysql/mysql-5.6.29-linux-glibc2.5-x86_64.tar.gz

修改解压后文件夹名为 mysql

#mv mysql-5.6.29-linux-glibc2.5-x86_64  mysql

chown -R mysql:mysql mysql

至此mysql已经安装完了,但还需要初始化,初始化mysql表、test表、infomation表等

cd mysql

scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/payment/mysqldata

 

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

chkconfig --add mysqld

 

cp my.cnf /etc/my.cnf

vi /etc/my.cnf

 

[mysqld]中添加:

user=mysql

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

socket = /tmp/mysql.sock

port = 3306

server_id = 1

 

添加环境变量

vi /etc/profile

export PATH=/usr/local/mysql/bin:/usr/local/mysql/sbin:$PATH

 

启mysqld:

#ln -s /usr/local/mysql/bin/mysql /usr/bin

#service mysqld start

   /etc/init.d/mysqld start 

   /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

   /usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf &

停mysqld:

   /etc/init.d/mysqld stop

   /usr/local/mysql/bin/mysqladmin -S /tmp/mysql3306.sock  shutdown

service mysqld stop

 

登陆MySQL并且删除空用户

初次登录可不加用户密码。

delete from mysql.user where user!='root' or host!='localhost';

truncate table mysql.db;

drop database test;

flush privileges;

安装PHP

PHP 是一种嵌入在 HTML 并由服务器解释的脚本语言。它支持许多流行的数据库,包括 MySQL、PostgreSQL、Oracle、Sybase、Informix 和 Microsoft SQL Server。

要使PHP 支持相关的功能那么在安装前需要安装相应的软件,例如要使PHP支持MySQL 数据库,在编译PHP之前,必须首先安装MySQL 数据库。

在安装完Apache 和MySQL 后,可以开始安装PHP 了。安装PHP 的步骤如下:

安装GD库依赖软件包

下载zlib,执行如下命令安装

http://www.zlib.net/fossils/

# tar -zxf zlib-1.2.8.tar.gz

# cd zlib-1.2.8

# ./configure --prefix=/usr/local/zlib

# make && make install

 

下载libpng,执行如下命令安装

http://www.libpng.org/pub/png/libpng.html

# tar -zxf libpng-1.6.36.tar.gz

# cd libpng-1.6.36

# ./configure --prefix=/usr/local/libpng --enable-shared

# make && make install

 

下载jpeg,执行如下命令安装

http://www.ijg.org/files/

# tar -zxf jpegsrc.v9a.tar.gz

# cd jpeg-9a/

# ./configure --prefix=/usr/local/jpeg

# make && make install

 

下载freetype,执行如下命令安装

http://ftp.twaren.net/Unix/NonGNU/freetype/

# tar -zxf freetype-2.7.tar.gz

# cd freetype-2.7

# ./configure --prefix=/usr/local/freetype

# make && make install

 

下载libXpm,执行如下命令安装

http://distfiles.macports.org/xpm/

# tar -jxvf libXpm-3.5.12.tar.bz2

# cd libXpm-3.5.12

# ./configure --prefix=/usr/local/libxpm

# make && make install

安装GD库

下载GD,执行如下命令安装(需要代理访问)

https://bitbucket.org/libgd/gd-libgd/downloads/

# tar -zxf libgd-2.1.1.tar.gz

# cd libgd-2.1.1

# ./configure --prefix=/usr/local/gd --with-zlib=/usr/local/zlib --with-png=/usr/local/libpng --with-jpeg=/usr/local/jpeg --with-freetype=/usr/local/freetype --with-xpm=/usr/local/libxpm

# make && make install

安装PHP依赖软件包

下载libxml2,执行如下命令安装

ftp://xmlsoft.org/libxml2/

# yum install python-devel -y

# tar -zxf libxml2-2.9.2.tar.gz

# cd libxml2-2.9.2

# ./configure

make && make install

下载libiconv,执行如下命令安装

https://directory.fsf.org/wiki/Libiconv

# tar -zxf libiconv-1.15.tar.gz

# cd libiconv-1.15

# ./configure --prefix=/usr/local/libiconv

# make && make install

下载libmcrypt,执行如下命令安装

https://sourceforge.net/projects/mcrypt/files/Libmcrypt/

# tar -zxf libmcrypt-2.5.8.tar.gz

# cd libmcrypt-2.5.8

# ./configure --prefix=/usr/local/libmcrypt

# make && make install

安装PHP软件包

刚才已经提到,打算使用MySQL 来存储数据,因此必须要指名支持MySQL 数据(--with-mysql),并指名MySQL 数据的安装位置;如果需要处理XML 数据,需要 --wiht-xml 和 –with-dom; 如果需要使用PHP 脚本来生成图片, 需要使用--with-gd。总之如果需要使用的功能的库文件不在系统路径内,必须要明确支持,如果不明确支持,那么配置脚本自动进行处理。集体需要使用什么功能,这取决于站点的PHP 脚本使用的函数。

下载PHP,执行如下命令安装

http://www.php.net/downloads.php

# ln -s /usr/local/libxpm/include/X11/xpm.h /usr/include/X11/xpm.h

# tar -zxf php-5.6.39.tar.gz

# cd php-5.6.39

# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-gd=/usr/local/gd --with-zlib --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/local/libxpm --with-iconv=/usr/local/libiconv --with-mcrypt=/usr/local/libmcrypt --enable-mbstring --enable-bcmath --enable-sockets --with-mysql=/usr/local/mysql --with-mysqli --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache/bin/apxs --with-gettext --enable-fpm

 

configure error xml2-config not found. please check your libxml2 installation 错误

安装libxml2和libxml2-devel包即可

 

# make && make install

 

 

cd /usr/local/php/etc/

cp php-fpm.conf.default php-fpm.conf

修改php.ini参数:(zabbix环境需要修改的参数)

max_execution_time = 300

memory_limit = 128M

post_max_size = 16M

upload_max_filesize = 2M

max_input_time = 300

date.timezone = PRC

配置Apache

在Apache配置文件httpd.conf中增加如下行,让Apache支持PHP。

AddType application/x-httpd-php .php

在Apache的网站主目录/usr/local/apache/htdoc下,创建一个测试文件,文件名称自定义,例如:phpinfo.php;编辑phpinfo.php测试页,内容如下:

 

phpinfo ();

?>

利用该测试页,可以测试Apache是否支持PHP,同时可以通过输出结果查看是否支持MySQL。

启动Apache服务进行测试

# /usr/local/apache/bin/apachectl start

在浏览器中访问刚才的页面,例如:http://localhost/phpinfo.php

 

如果成功返回php 的相关信息,说明安装成功

 

源码安装zabbix

安装Zabbix Server依赖包

为了支持SNMP,需要net-snmp软件,执行如下命令安装:

# yum install -y net-snmp net-snmp-devel curl curl-devel

源码安装Zabbix Server

准备工作完成后,可以正式开始安装Zabbix,执行如下步骤完成Zabbix的安装:

l  创建Zabbix的用户和组

# groupadd zabbix

# useradd -g zabbix -s /sbin/nologin zabbix

l  在MySQL数据库中创建zabbix用户账号并授权

  1. 创建MySQL账号语法:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

其中:

• username :你将创建的用户名

• host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%

•password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

  1. 授权语法:

GRANT privilegesON databasename.tablename TO 'username'@'host'

其中:

•privileges - 用户的操作权限,如SELECT ,INSERT , UPDATE 等.如果要授予所的权限则使用ALL

• databasename - 数据库名

• tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*

下面是创建zabbix账号,密码为zabbix的范例:

mysql>create user 'zabbix'@'localhost' identified by 'zabbix';

mysql>grant all privileges on zabbix.* to zabbix@'127.0.0.1'

l  在MySQL数据库中创建Zabbix数据库

mysql> create database zabbix character set utf8;

l  导入数据库的sql脚本

# tar -zxf zabbix-4.0.2.tar.gz

# cd zabbix-4.0.2

cd database/mysql

 

#mysql -uzabbix -pzabbix zabbix < schema.sql

#mysql -uzabbix -pzabbix zabbix <  images.sql

#mysql -uzabbix -pzabbix zabbix < data.sql

l  Zabbix的编译安装

下载安装libevent-2.0.20-stable.tar.gz

http://libevent.org/old-releases.html

tar -zxvf libevent-2.0.20-stable.tar.gz

cd libevent-2.0.20-stable

./configure --prefix=/usr/local/libevent

make&&make install

安装Zabbix

# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --enable-proxy  --with-libevent=/usr/local/libevent --with-libpcre=/usr/local/pcre

# make

# make install

 

配置Zabbix服务

l  添加配置文件到/etc目录下

# ln -s /usr/local/zabbix/etc/ /etc/zabbix

l  修改ZabbixServer配置文件zabbix_server.conf,在文件尾添加如下内容:

LogFile=/tmp/zabbix_server.log

PidFile=/tmp/zabbix_server.pid

DBHost=localhost

DBName=zabbix #数据库名称

DBUser=zabbix #数据库用户账户

DBPassword=zabbix #指定zabbix数据库密码

ListenIP=0.0.0.0 #服务器IP地址

l  修改ZabbixAgentd配置文件zabbix_agentd.conf,在文件尾添加如下内容:

LogFile=/tmp/zabbix_agentd.log #日志保存位置

PidFile=/tmp/zabbix_agentd.pid #进程PID

EnableRemoteCommands=1 #允许执行远程命令

Server=10.25.193.6 #agent端的ip

Hostname=localhost #必须与zabbix创建的host name相同

这里其实是客户端设置,且安装软件时必须有--enable-agent选项

l  为Web前端,添加php文件

# cp -rf zabbix-4.0.2/frontends/php  /usr/local/apache/htdocs/zabbix

# chown -R zabbix.zabbix /usr/local/apache/htdocs/*

l  为Web前端修改php相关参数,

cp php-5.6.39/php.ini-production /usr/local/php/etc/php.ini编辑/usr/local/php/etc/php.ini配置文件,找到如下几项,修改结果如下:

max_execution_time = 300

max_input_time = 300

date.timezone = Asia/Shanghai

post_max_size = 32M

memory_limit = 128M

mbstring.func_overload = 0

always_populate_raw_post_data = -1

说明:找到以上几项,如果有;号的请删除掉,然后修改为以上值

l  重启Apache服务,使得修改生效

# /usr/local/apache/bin/apachectl restart

l  开始配置Web前端:

• 在浏览器中访问Zabbix Server的地址,例如:http://10.25.193.6/zabbix/zabbix.php

• 在“欢迎界面”单击“next”

• 在“Check ofpre-requisites”界面,确保所有项目全部显示“ok”,单击“next”

在“Configure DB connection”界面,输入MySQL中用于连接Zabbix数据库的用户名和密码



在“Zabbix server details”界面,输入Zabbix Server端的主机名或IP地址

在“Pre-Installationsummary”界面,单击“next”

在“Install”界面,按照提示将配置文件下载到/usr/local/apache/htdoc/zabbix/conf下,名称为zabbix.conf.php,注意文件权限为zabbix,完成后运行“Retry”点击“完成”

下载zabbix.conf.php ,上传到服务器对应目录, /usr/local/apache/htdocs/conf/zabbix.conf.php

至此,Zabbix的安装已经完成,接下来启动Zabbix Server的服务。

启动Zabbix服务

报错处理:

zabbix_server: error while loading shared libraries: libmysqlclient.so.18

处理:

echo "/usr/local/mysql/lib" >>/etc/ld.so.conf

然后执行ldconfig使其生效

error while loading shared libraries: libevent-2.0.so.5

ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5

error while loading shared libraries: libpcre.so.1

ln -s /usr/local/pcre/lib/libpcre.so.1  /lib64

 

l  可以直接执行/usr/local/zabbix/sbin/下的zabbix_server和agentd程序文件

# /usr/local/zabbix/sbin/zabbix_server

# /usr/local/zabbix/sbin/zabbix_agentd

l  为了方便Zabbix Server和Agent的服务的启动和关闭,复制启动脚本

# cp zabbix-4.0.2/misc/init.d/fedora/core/zabbix_server /etc/init.d/

# cp zabbix-4.0.2/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

l  将zabbix_server和agentd和启动脚本文件中的BASEDIR的值修改为

BASEDIR=/usr/local/zabbix

l  设置ZabbixServer和Agentd开机自动启动

# chkconfig zabbix_server on

# chkconfig zabbix_agentd on

l  最后使用http://10.25.193.6/zabbi.php访问,默认的用户名admin和密码为zabbix登录验证:


如果输入用户名密码后,到此,整个Zabbix部署完成。就可以开启你使用Zabbix监控资源

添加监控

zabbix客户端部署

zabbix客户端安装

下载安装包:

https://www.zabbix.com/download_sources

 

安装pcre见apache安装,若还需要其它依赖包,请安装

ln -s /usr/local/pcre/lib/libpcre.so.1  /lib64

 

 

tar xzvf zabbix- 4.0.2.tar.gz

 

cd zabbix-4.0.2

./configure --prefix=/usr/local/zabbix --enable-agent --with-libpcre=/usr/local/pcre --with-net-snmp

make&&make install

 

cp zabbix-4.0.2/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

 

vim /etc/init.d/zabbix_agentd

修改BASEDIR=/usr/local/ 为 BASEDIR=/usr/local/zabbix

 

启动agent服务

 

groupadd zabbix                  //添加zabbix组

useradd zabbix -g zabbix           //添加zabiix用户

usermod -s /sbin/nologin zabbix

service zabbix_agentd start        //启动服务

chkconfig zabbix_agentd on               //开启自启

配置agent

zabbix配置

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

Server=10.25.193.6,127.0.0.1          >>   Server="服务端IP“  其中     //如不在统一网段,需要添加多个IP、网关IP

ServerActive=10.25.193.6    >>   ServerActive="服务端IP”

Hostname=Zabbix server    >>   Hostname="本机IP”

UnsafeUserParameters=1                   #是否允许自定义的key,1为允许,0为不允许

AllowRoot=0    #希望使用root用户启动, AllowRoot=1,0为不允许(默认)

若开启了iptables,则需要打开,客户端开启端口10050

/sbin/iptables -I INPUT -p tcp --dport 10050 -j ACCEPT

/sbin/iptables -I INPUT -p tcp --dport 10051 -j ACCEPT

/etc/rc.d/init.d/iptables save

 

测试服务端是否能连接到Agent端

可先测试本机:

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k system.hostname

再测试服务端到agent端

/usr/local/zabbix/bin/zabbix_get -s 10.25.193.7 -p 10050 -k "system.uptime"

-s后面接的是目标地址

-p后面要加端口号,这个一般都是10050

-I 后面加原地址,不过这个一般用不上

-k 后面接的就是item项目里的key

 

Assuming that agent dropped connection because of access permissions(由于访问权限导致agent连接失败)

问题实现:zabbix_server和zabbix_agent在同一台机器,server监听全网地址,agent监听内网地址。导致上面的报错发生

解决方案:把zabbix_agentd.conf中 的server把zabbix_server的公网和内网地址都加就行。然后agent就可以正常获取到值了

服务web设置

配置---主机---创建主机

在相应的地址栏,填写你的监控主机信息,被监控主机名称(自定义)和IP


然后点击templates,搜索linux,添加弹出的Templates OS Linux模板,点击添加,然后更新即可

snmp配置

l  # vim /etc/snmp/snmpd.conf

view systemview included .1.3.6.1.2.1.25.1.1 //找到这行,增加下面配置

view systemview included .1 // 这个是新增加的

proc mountd // 找到这些配置,把注释去掉

proc ntalkd 4

proc sendmail 10 1

disk / 10000

load 12 14 14

 

l  启动snmpd

 

l  测试数据获取

获取主机名

# snmpwalk -c public -v 2c 10.25.193.8 sysName // 使用名称

 SNMPv2-MIB::sysName.0 = STRING: feecache2

# snmpwalk -c public -v 2c 10.25.193.8 .1.3.6.1.2.1.1.5.0 // 使用OID

 SNMPv2-MIB::sysName.0 = STRING: feecache2

通过如上两种方式均可获取到数据,如上获取到得数据都是feecache2

获取服务器剩余内存

 

# snmpwalk -c public -v 2c 10.25.193.8  .1.3.6.1.4.1.2021.4.11.0

 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 8565452 kB

# snmpwalk -c public -v 2c 10.25.193.8 memTotalFree

 UCD-SNMP-MIB::memTotalFree.0 = INTEGER: 8565080 kB

 

l  报错处理

snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.2021.10.1.3.1

UCD-SNMP-MIB::laLoad.1 = No more variables left in this MIB View (It is past the end of the MIB tree)

 

因为默认没有包含这个节点,所以只要把这个节点包含进去就可以了

vim /etc/snmp/snmpd.conf

view all   included  .1.3.6.1.4.1.2021

 

服务器端web配置

配置---主机---创建主机

在相应的地址栏,填写你的监控主机信息,被监控主机名称(自定义)和IP

添加模版:

邮件发送

使用外部邮箱账号发送报警邮件

实现目的

在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

使用外部邮箱账号发送报警邮件设置

一、关闭sendmail或者postfix

service sendmail stop #关闭

chkconfig sendmail off #禁止开机启动

service postfix stop

chkconfig postfix off

备注:

使用外部邮箱账号时,不需要启动sendmail或者postfix

如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱

配置信息。

二、安装邮件发送工具mailx

yum install mailx #安装

CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。

yum remove mailx #卸载系统自带的旧版mailx

下载mailx:

http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2

tar jxvf mailx-12.4.tar.bz2 #解压

cd mailx-12.4 #进入目录

make #编译

make install UCBINSTALL=/usr/bin/install #安装

ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接

ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

whereis mailx #查看安装路径

mailx -V #查看版本信息

 

报错处理:

openssl.c:108: error: expected declaration specifiers or ‘...’ before ‘STACK’

openssl.c: In function ‘ssl_select_method’:

openssl.c:215: warning: assignment discards qualifiers from pointer target type

openssl.c:217: warning: assignment discards qualifiers from pointer target type

 

[root@localhost mailx-12.4]# wget http://www.linuxfromscratch.org/patches/blfs/7.6/mailx-12.4-openssl_1.0.0_build_fix-1.patch

[root@localhost mailx-12.4]# patch -Np1 -i mailx-12.4-openssl_1.0.0_build_fix-1.patch 

patching file makeconfig

patching file openssl.c

三、配置Zabbix服务端外部邮箱

vi /etc/mail.rc #编辑,添加以下信息

set from=15982257604@139.com smtp=smtp.139.com

set smtp-auth-user=15982257604@139.com smtp-auth-password=xxxxxx

set smtp-auth=login

:wq! #保存退出

echo "zabbix test mail" |mail -s "zabbix" wuzg@si-tech.com.cn

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:wuzg@si-tech.com.cn

#这时候,邮箱wuzg@si-tech.com.cn 会收到来自15982257604@139.com的测试邮件

四、配置Zabbix服务端邮件报警

服务器上配置

编写邮件发送脚本sendmail.sh

cd /usr/local/zabbix/share/zabbix/alertscripts/         #进入zabbix默认存放脚本路径

vim sendmail.sh

#!/bin/bash

messages=`echo $3 | tr '\r\n' '\n'`

subject=`echo $2 | tr '\r\n' '\n'`

echo "${messages}" | mail -s "${subject}" $1 >>/tmp/sendmail.log 2>&1

 

chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                       #sendmail.sh脚本修改所属用户和用户组

[root@logserver alertscripts] # chmod 755 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                                     #sendmail脚本赋予执行权限

[root@logserver alertscripts] # ls -l /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh                                                 #查看sendmail.sh脚本信息

-rwxr-xr-x. 1 zabbix zabbix 154 Jan  7 05:12 /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh

[root@logserver alertscripts] # vim /usr/local/zabbix/etc/zabbix_server.conf                                                                          #配置zabbix_server.conf配置文件

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts                                                                                      #这个修改成sendmail.sh脚本存放路径

[root@logserver alertscripts]# su - zabbix

[zabbix@logserver ~]$ /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh wuzg@si-tech.com.cn "test linux" "test"                  #zabbix用户执行sendmail.sh脚本看是否有权限

 

web介面配置

1、打开Zabbix

管理 ----  报警媒介类型 -----  创建媒介类型

 

 

2、名称可以随便自己定义 ----- 类型选择脚本 ----- 脚本名称输入上一步编写的发送邮件的脚本名称 ----

再添加以下3个参数,分别对应脚本需要的3个参数:收件人地址、主题、详细内容:

名称:Sendmail

类型:脚本

脚本名称:sendmail.sh

已启用:勾选

 

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

 

2、设置Zabbix用户报警邮箱地址

管理 ---- 用户 ----- 选择admin用户。(自己创建一个用户也可以)

 

4、报警媒介 ---- 添加

类型:Sendmail

收件人:wuzg@si-tech.com.cn

其他默认即可,也可

以根据需要设置

状态:已启用

 

点击更新

权限设置(管理员用户不用修改,权限默认所有服务器,如果要分类权限需要在用户组进行控制)

 

3、设置Zabbix触发报警的动作

组态-动作-创建动作

 

动作 ---- 名称自定义 --- 设置一条新的触发条件 ---- 启用 ---- 添加。(触发条件需要根据实际情况设置)

触发器   似      unreachable for 5 minutes     

#根据主机触发器  Template App Zabbix Agent: Zabbix agent on {HOST.NAME} is unreachable for 5 minutes  设置,主要监测zabbix_agentd客户端连接情况。

 

定义操作

 

名称:服务器宕机邮件

默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

定义恢复操作

 

 

恢复标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

恢复信息:

告警主机:{HOSTNAME1}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

 

4,测试


5,告警邮件

6,恢复邮件

安全加固

zabbix仅在内网访问,mysql仅在本机访问,所以通过设置iptables进行安全防护

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 10.25.193.0/24 -j ACCEPT
-A INPUT -s 10.25.119.0/24 -j ACCEPT
-A INPUT -s 10.25.245.0/24 -j ACCEPT
-A INPUT -s 10.25.118.5 -j ACCEPT
-A INPUT -s 221.176.9.121 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp -s 10.25.193.6 --dport 3306 -j ACCEPT
COMMIT

转载于:https://www.cnblogs.com/cc-chaochao/p/10649326.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值