Zabbix服务安装部署及监控配置

Posted baorong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix服务安装部署及监控配置相关的知识,希望对你有一定的参考价值。

 

Zabbix服务安装部署及监控配置

1.1 Zabbix服务介绍

官方网站:http://www.zabbix.com/

The Enterprise-class Monitoring Solution for Everyone

企业级监控解决方案

zabbix是一个基于Web界面提供分布式系统监控以及网络监视功能的企业级的开源解决方案

Zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以及让系统管理员快速定位解决存在的各种问题。

1.1 Zabbix主要特点

安装与配置简单,学习成本地,支持多语言(包括中文)免费开源自动发现服务器与网络设备分布式监视以及web集中管理功能,可以无agent监视用户安全认证和柔软的授权方式通过web界面设置或查看监控结果email等通知功能

1.2 Zabbix主要功能

监控CPU负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义

1.3 Zabbix运行机制

Zabbix Server 和Zabbix Agent

Zabbix server 可以通过SNMP,Zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集功能,可以在运行Linux,Solaris,HP-UX,FreeBSD,OpenBSD,OXX,Windows多平台。

Zabbix Agent安装在需要被监控的目标服务器上,主要完整对硬件信息与操作系统有关的内存,CPU等信息收集。

Zabbix Server可以单独监视远程服务器的服务状态,同时也可以与Zabbix Agent结合。可以与轮询Zabbix Agent主动接受监视数据(trapping传递方式),同时还可以被动接受Zabbix Agent发送的数据。

Zabbix运行过程图

 技术分享图片

Zabbix支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理Zabbix,通过C/S模式采集数据,通过B/S模式在Web端展示和配置!Agent监控端口10050

服务端安装Zabbix Server和Zabbix Agent两个服务,客户端只安装Zabbix Agent一个服务,监控原理就是Zabbix Agent服务将从系统中获取的相关数据传送给Zabbix Server,然后Zabbix Server服务奖数据分析之后以php页面展示出来!

1.2 Zabbix Server安装部署

整个环境所需安装的软件包

php-5.6.13

libmcrypt-2.5.8

mysql-5.6.26

nginx-1.8.0

zabbix-3.4.3

我们需要先构建LNMP的环境,因为Zabbix通过PHP页面展示(也可以使用LAMP环境)

搭建LNMP的环境,如果有这个环境可以忽略

1.2.1 创建导入zabbix数据库

Zabbix需要数据库的支持,而Zabbix已经自带了数据库结构,images数据库和表数据等相关内容

创建Zabbix使用的数据库

[[email protected] ~]# mysql -uroot -p123456

mysql> create database zabbix;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix.* to [email protected] ‘%‘ identified by ‘zabbix‘; #授权zabbix用户

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[[email protected] ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[[email protected] ~]# cd /usr/local/src/zabbix-3.4.3/

[[email protected] zabbix-3.4.3]# ls

aclocal.m4  compile       configure.ac  include      Makefile.in  README

AUTHORS     conf          COPYING       INSTALL      man          sass

bin         config.guess  database      install-sh   misc         src

build       config.sub    depcomp       m4           missing      upgrades

ChangeLog   configure     frontends     Makefile.am  NEWS

导入数据库,注意顺序,否则会报错

[[email protected] zabbix-3.4.3]# ls database/mysql/

data.sql  images.sql  schema.sql

[[email protected] zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

Warning: Using a password on the command line interface can be insecure.

[[email protected] zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

Warning: Using a password on the command line interface can be insecure.

[[email protected] zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

Warning: Using a password on the command line interface can be insecure.

(警告:在命令行界面上使用密码可能是不安全的。)

如果在做分布式的环境中,Proxy服务器只需要一个数据库schema,代理着agent不需要数据库!Server必须三个数据库同时拥有

Zabbix同时支持很多类型数据库,可以通过查阅帮助:

https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts

1.2.2 编译安装zabbix

[[email protected] zabbix-3.4.3]# groupadd zabbix

[[email protected] zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix          #创建用户

[[email protected] zabbix-3.4.3]# yum -y install net-snmp-devel  libevent libevent-devel      #解决依赖关系

[[email protected] zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl

参数说明:

--prefix=  制定路径

--enable-server    #Server支持

--enable-agent     #支持Zabbix客户端

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

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

 技术分享图片

看到如下信息,预编译就没有什么问题

***********************************************************

*            Now run ‘make install‘                          *

*                                                                *

*            Thank you for using Zabbix!                     *

*              <http://www.zabbix.com>                        *

***********************************************************

 

[[email protected] zabbix-3.4.3]# echo $?

0

[[email protected] zabbix-3.4.3]# make install

#按上面的提示,没有make步骤,直接make install

[[email protected] zabbix-3.4.3]# echo $?    

0

[[email protected] zabbix-3.4.3]# ls /usr/local/zabbix/   #编译成功后,产生如下目录

bin  etc  lib  sbin  share

1.2.3 配置zabbix Server

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_server.conf

DBHost=localhost       #默认注释掉了,直接取消注释即可

DBName=zabbix         #数据库用户,我们授权的用户也是zabbix

DBUser=zabbix         #默认是root,我们授权的用户是zabbix

DBPassword=zabbix      #密码我们授权的也是zabbix

监控Zabbix Server本身

监控本身,意思是本身作为服务器之外,自己做自己的客户端,也要使用agentd这个代理者配置文件中,有agentd和agent两个配置文件,前者是守护进程,后者依赖xinetd

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

Server=127.0.0.1          #默认监控服务器自己,这三行不用改

ServerActive=127.0.0.1

Hostname=Zabbix server

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

DBSocket=/tmp/mysql.sock   #这一行也要启用,要不然查看不到端口号

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

1.2.4 启动服务

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

直接运行

[[email protected] ~]# /usr/local/zabbix/sbin/zabbix_server    #本实验启动正常

 

sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory  #如果启动报错解决

[[email protected] zabbix]# vim /etc/ld.so.conf        #解决库文件找不到

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

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

[[email protected] zabbix]# ldconfig       #使库文件生效

[[email protected] ~]# echo  /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local    #开机启动

[[email protected] ~]# netstat -antup|grep zabbix

tcp      0    0 0.0.0.0:10051     0.0.0.0:*     LISTEN     81259/zabbix_server

或者通过启动脚本启动zabbix

zabbix默认有部分启动脚本,如果你自己也可以通过脚本的方式来实现,可以使用他的模板来实现,脚本在源码目录的misc/init.d/下面(使用 fedora 下面的core即可,也可以使用fedroa core5的脚本均可)

[[email protected] ~]# cd /usr/local/src/zabbix-3.4.3/misc/init.d/

[[email protected] init.d]# ls

aix  debian  fedora  freebsd  gentoo  README  suse  tru64  ubuntu

[[email protected] init.d]# cp fedora/core/* /etc/init.d/

[[email protected] init.d]# vim /etc/init.d/zabbix_server

        BASEDIR=/usr/local/zabbix      #找到此行,修改路径

[[email protected] init.d]# vim /etc/init.d/zabbix_agentd

        BASEDIR=/usr/local/zabbix      #找到此行,修改路径

[[email protected] ~]# chkconfig --add zabbix_server

[[email protected] ~]# chkconfig zabbix_server on

[[email protected] ~]# chkconfig --add zabbix_agentd

[[email protected] ~]# chkconfig zabbix_agentd on

1.2.5 编辑PHP页面控制文件

配置默认文件没有写入到我们的Nagios的配置文件中,也就是不能加载到我们的zabbix页面目录

[[email protected] ~]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/

[[email protected] ~]# vim /usr/local/nginx/conf/nginx.conf

location / {

root   html;

index  index.php index.html index.htm;   #找到此行内容,添加index.php必须放在前面

    }

重启nginx服务和php-fpm服务

[[email protected] ~]# nginx -s reload

[[email protected] ~]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

 技术分享图片

开始检查环境,如图发现很多环境不符合条件

 技术分享图片

编辑修改php.ini文件,修改环境

[[email protected] ~]# vim /usr/local/php/php.ini     #根据上面提示信息修改

post_max_size = 16M           #修改

max_execution_time = 300       #修改

max_input_time = 300          #修改

date.timezone = Asia/Shanghai  #去掉此行注释,修改为亚洲上海

always_populate_raw_post_data = -1       #此行内容没有

mysqli.default_socket = /tmp/mysql.sock    #指定php连接mysql的sock路径

 

[[email protected] ~]# /etc/init.d/php-fpm restart     #重启php-fpm刷新页面

Gracefully shutting down php-fpm . done

Starting php-fpm  done

技术分享图片

技术分享图片

提示没有安装LDAP模块,为了不影响后面的功能,现在把这个模块重新编译安装进去:

可以单独把这个模块编译安装出来:   #这个方法有问题

以下的解决方法,在公司机器上使用可以

[[email protected] ~]# cd /usr/local/src/php-7.0.18/ext/ldap/

[[email protected] ldap]# ls

config.m4  config.w32  CREDITS  gettext.c  gettext.lo  gettext.o  php_gettext.h  tests

[[email protected] ldap]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20151012

Zend Module Api No:      20151012

Zend Extension Api No:   320151012

[[email protected] ldap]# yum -y install openldap-devel openldap

[[email protected] ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap

[[email protected] ldap]# cp -frp /usr/lib64/libldap* /usr/lib/

[[email protected] ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap   

[[email protected] ldap]# echo $?

0

[[email protected] ldap]# make && make install

[[email protected] ldap]# echo $?

0

[[email protected] ldap]# vim /usr/local/php/php.ini

extension="ldap.so"                                              添加到最后即可

[[email protected] ldap]# /etc/init.d/php-fpm restart      #启动成功

Gracefully shutting down php-fpm . done

Gracefully shutting down php-fpm . done

Starting php-fpm  done

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

如果写入失败,直接download这个配置文件,然后上传上去

[[email protected] ~]# cd /usr/local/nginx/html/conf/

[[email protected] conf]# ls

maintenance.inc.php  zabbix.conf.php.example   #这个文件默认存在,只需要重命名

[[email protected] conf]# mv /root/zabbix.conf.php .  #这里使用下载的文件

 技术分享图片

用户名:admin密码:zabbix

技术分享图片

技术分享图片

技术分享图片

 技术分享图片

技术分享图片

 

[[email protected] ~]# /etc/init.d/zabbix_agentd start

Starting zabbix_agentd (via systemctl):                    [  OK  ]

[[email protected] ~]# chkconfig --add zabbix_agentd

[[email protected] ~]# chkconfig zabbix_agentd on

技术分享图片

技术分享图片

1.2.6 图表字符乱码的解决方法

技术分享图片

 

在window下面找一个ttf的字体文件C:windowsFonts

[[email protected] ~]# mv msyh.ttf DejaVuSans.ttf         #上传重命名

[[email protected] ~]# cd /usr/local/nginx/html/fonts/

[[email protected] fonts]# ls

DejaVuSans.ttf

[[email protected] fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak

[[email protected] fonts]# mv /root/DejaVuSans.ttf .

[[email protected] fonts]# ls

DejaVuSans.ttf  DejaVuSans.ttf.bak

技术分享图片

 

1.2.7 Zabbix启动服务总结

Nginx 服务启动

Php-fpm 服务启动

MySQL  服务器启动

测试LNMP环境正常

导入数据库、授权、源码安装zabbix

Zabbix_server 服务启动

1.3 配置监控远程主机

1.3.1 安装Agent

[[email protected] ~]# cd /etc/yum.repos.d/

[[email protected] yum.repos.d]# ls

back  CentOS-Media.repo

[[email protected] yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[[email protected] yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel.repo

[[email protected] yum.repos.d]# ls

back  Centos-7.repo  CentOS-Media.repo  epel.repo

#这里使用阿里的基本源和epel源,也可以使用下面的epel源

yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

[[email protected] yum.repos.d]# yum clean all;yum makecache

[[email protected] ~]# yum install -y curl curl-devel net-snmp net-snmp-devel perl-DBI        #解决依赖关系

[[email protected] ~]# useradd -M -s /sbin/nologin zabbix     #创建用户

[[email protected] ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[[email protected] ~]# cd /usr/local/src/zabbix-3.4.3/

[[email protected] zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-agent

***********************************************************

*            Now run ‘make install‘                          *

*                                                                *

*            Thank you for using Zabbix!                    *

*              <http://www.zabbix.com>                          *

***********************************************************

[[email protected] zabbix-3.4.3]# make install

[[email protected] zabbix-3.4.3]# echo $?

0

[[email protected] zabbix-3.4.3]# cd

[[email protected] ~]# grep zabbix /etc/services

zabbix-agent    10050/tcp               # Zabbix Agent

zabbix-agent    10050/udp               # Zabbix Agent

zabbix-trapper  10051/tcp               # Zabbix Trapper

zabbix-trapper  10051/udp               # Zabbix Trapper

1.3.2 启动agent

[[email protected] ~]# /usr/local/zabbix/sbin/zabbix_agentd    #启动agent

[[email protected] ~]# netstat -antup|grep zabbix

tcp     0    0 0.0.0.0:10050      0.0.0.0:*      LISTEN    22038/zabbix_agentd

也可以使用系统启动脚本来启动

配置Agent开机启动

[[email protected] ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/  #复制脚本到/etc/init.d/下

[[email protected] ~]# vim /etc/init.d/zabbix_agentd      #编辑脚本路径

ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"     #修改此行

[[email protected] ~]# chkconfig --add zabbix_agentd

[[email protected] ~]# chkconfig zabbix_agentd on

拓展:core和core5里面的文件都可以实现zabbix代理启动,core里面是测试版本,core5是稳定版本

1.3.3 修改Agentd的配置文件

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf    #客户端操作

Server=192.168.3.21           #zabbix server地址,可以多个,用,隔开

ServerActive=192.168.3.21      #主动检查的意思,主动检查主机数据的数据发送给zabbix server

Hostname=centos26.cn

UnsafeUserParameters=1        #启用

1.3.4 重启服务

[[email protected] ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[[email protected] ~]# netstat -antup|grep zabbix

tcp     0    0 0.0.0.0:10050     0.0.0.0:*       LISTEN    22038/zabbix_agentd

1.3.5 Server端测试通讯

[[email protected] ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname

zabbix_get [94964]: Check access restrictions in Zabbix agent configuration

[[email protected] ~]# /etc/init.d/zabbix_agentd restart      #再次重启服务

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

可以获取对方系统版本则证明没有问题

[[email protected] ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.3.26 -p10050 -k system.uname

Linux centos26.cn 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

1.3.6 服务端配置管理脚本

[[email protected] ~]# ls /etc/init.d/zabbix_*

/etc/init.d/zabbix_agentd  /etc/init.d/zabbix_server   #这个文件之前已经复制过来,如果没有可以如下重新复制,并修改配置文件

[[email protected] ~]# cp /usr/local/src/zabbix-3.4.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/

[[email protected] ~]# vim /etc/init.d/zabbix_agentd

        BASEDIR=/usr/local/zabbix  #修改为zabbix的安装位置

[[email protected] ~]# chkconfig --add zabbix_agentd

[[email protected] ~]# chkconfig zabbix_agentd on

[[email protected] ~]# /etc/init.d/zabbix_agentd restart      #重启服务

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[[email protected] ~]# netstat -antup|grep zabbix     #两者之间端口不一样

tcp     0    0 0.0.0.0:10050      0.0.0.0:*       LISTEN   95839/zabbix_agentd

tcp     0    0 0.0.0.0:10051      0.0.0.0:*       LISTEN   81259/zabbix_server

监控自己使用10050端口,监控对方使用的是10051端口

1.3.7 添加Host主机

技术分享图片

技术分享图片

选择模板

技术分享图片

技术分享图片

技术分享图片

技术分享图片

刷新页面

技术分享图片

技术分享图片

 

============通过以上步骤成功添加一台远程监控主机===========

1.3.8 添加监控选项

通过比较zabbix servers群组和Linux servers群组,可以发现,默认的配置中Linux servers监控项比较少,下面手动添加监控:

技术分享图片

筛选无触发器,出来很多监控项,默认都是启用状态,我们无需再次启动,下面修改自动发现的时间

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

再次返回首页,而可以看到

技术分享图片

1.3.9 设置Triger触发器值

更改一下自动发现更新时间,将原来的1h改成10(秒)

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

更新数据

===================以上是触发器值的设置===================

自定义绘图颜色:

找到主机对应的模块-----修改模板对应的图形颜色

技术分享图片

技术分享图片

根据需要修改每一项的显示颜色

技术分享图片

1.3.10 总结zabbix的文件

zabbix_agent.conf  是用超级服务(xinetd)的方式来启动的,被动检查,只有Server说检查的时候才检查

zabbix_agentd.conf 是以独立进程的方式来启动的,一般使用这个做配置,自动检查,自动提交 zabbix_server.conf Server

启动配置文件,只有一个

zabbix_get是zabbix中的一个程序,用于Zabbix-Server到Zabbix-Agent的数据获取,通常可以用来检测验证Agent的配置是否正确。它的使用方法如下

zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>

-h:远程Zabbix-Agent的IP地址或者是主机名

-p:远程Zabbix-Agent的端口。

-I:本机出去的IP地址,用于一台机器中有多个网卡的情况。

-k:获取远程Zabbix-Agent数据所使用的Key。

[[email protected]~]# zabbix_get -s 192.168.0.64 -k system.uname

zabbix_sender与get相反,用来发送Zabbix服务器处理性能数据。该工具通常用户长时间运行的用户脚本,用于顶起发送可用性和性能数据。使用方法如下

zabbix_sender [-Vhv] {[-zpsI] -ko | [-apI] -T -I <file> -r} [-c <file>]

参数说明:

-c --config <file> 配置文件绝对路径

-z --zabbix-server <server> zabbix server 的IP地址

-p --port <server port> zabbix server 端口.默认 10051

-s --host <hostname> 主机名, zabbix里面配置的主机名(不是服务器的hostname),不能使用

IP地址

-I --source-address <IP address> 源IP

-k --key <key> 监控项的key

-o --value <key value> key值

-i --input-file <input file> 从文件里面读取hostname、key、value一行为一条数据,使用空格作为分割符,如果主机名带空格,那么请使用双引号括起来

-T --with-timestamps 一行一条数据,空格作为分隔符:<hostname><key><timestamp> <value>,配合 --input-file option,timestamp为nuix时间戳

-r --real-time 将数据实时提交给服务器

-v --verbose详细模式,-vv更详细

1.4 配置Zabbix监控Apache服务

http://www.zabbix.org/wiki/Main_Page

https://github.com/zabbix/zabbix-community-repos        #各种模板

http://www.douglas.wiki.br/doku.php?id=en:installing_and_configuring_zabbix

下载脚本wget https://github.com/lorf/zapache/archive/master.zip

 

[[email protected] ~]# yum -y install httpd

[[email protected] ~]# systemctl start httpd

1.4.1 启用apache服务器状态,开启apache的server-status

[[email protected] ~]# vim /etc/httpd/conf/httpd.conf

ExtendedStatus On

<location /server-status>

        SetHandler server-status

        Order allow,deny

        Allow from 127.0.0.1 192.168.3.0/24

</location>

[[email protected] ~]# systemctl restart httpd         #重启后测试

技术分享图片

1.4.2 解压压缩包

[[email protected] ~]# unzip master.zip        #解压压缩包

Archive:  master.zip

24a764b2e224f9b8d0a6bc94dcadd7568b2fe650

   creating: zapache-master/

  inflating: zapache-master/README.md 

  inflating: zapache-master/httpd-server-status.conf.sample 

  inflating: zapache-master/userparameter_zapache.conf.sample 

  inflating: zapache-master/zapache 

  inflating: zapache-master/zapache-template-active.xml 

  inflating: zapache-master/zapache-template.xml 

[[email protected] zapache-master]# ls

httpd-server-status.conf.sample    zapache

README.md                          zapache-template-active.xml

userparameter_zapache.conf.sample  zapache-template.xml

说明:

httpd-server-status.conf.sample #是用于配置server-status的上一步骤已经验证过了

zapache-template-active.xml zapache-template.xml   #模板

userparameter_zapache.conf.sample  zapache        #关键的文件

将解压的几个文件放到相应的目录

[[email protected] zapache-master]# cp zapache /usr/local/bin/

[[email protected] zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[[email protected] zapache-master]# cd !$

cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[[email protected] zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf

[[email protected] zabbix_agentd.conf.d]# vim userparameter_zapache.conf

#

# This is a sample zabbix_agentd config file.

# Put it to /etc/zabbix_agentd.conf.d or otherwise integrate into agent config.

# Edit to your needs.

#

UserParameter=zapache[*],/var/lib/zabbixsrv/externalscripts/zapache $1 

#修改为UserParameter=zapache[*],/usr/local/bin/zapache $1   

查看是否有执行权限

[[email protected] zabbix_agentd.conf.d]# ll /usr/local/bin/zapache

-rwxr-xr-x 1 root root 6110 May 28 05:29 /usr/local/bin/zapache

如果没有执行权限添加执行权限

修改zabbix-agentd.conf

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

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

1.4.3 前端页面操作

导入模板

技术分享图片

技术分享图片

技术分享图片

关联模板

配置-主机(选择apache客户端)

模板-选择(选择上面导入的模板-添加-更新

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

查看最新数据,筛选Apache

技术分享图片

技术分享图片

 

可以选择生产图形

技术分享图片

技术分享图片

 

1.5 配置zabbix监控MySQL

和监控我们的apache一样,寻找合适的脚本,不过,脚本不是那么容易就可以找到的!要么自己动手去写,要么自己找到的拿来修改,都是需要花费代价的!ZABBIX默认提供了MySQL的监控模板

数据库用户授权

[[email protected] ~]# mysql -uroot -p123456

mysql> grant usage on *.* to [email protected]‘%‘ identified by ‘123456‘;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec

mysql> quit

Bye

[[email protected] ~]# cp /usr/local/src/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

# Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/     #将这一行注释

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf  #去掉注释,修改路径同时开启会报错

建立数据库和zabbix的链接信息

[[email protected] ~]# ls /var/lib/mysql/mysql.sock

/var/lib/mysql/mysql.sock

[[email protected] ~]# vim /usr/local/zabbix/etc/.my.cnf

#Zabbix Agent

[mysql]

host=localhost

user=zabbix

password=123456

socket= /var/lib/mysql/mysql.sock  #这个路径根据自己的实际情况填写,下面也一样

[mysqladmin]

host=localhost

user=zabbix

password=123456

socket= /var/lib/mysql/mysql.sock

[[email protected] ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf

将 HOME=/var/lib/zabbix 全部改成 HOME=/usr/local/zabbix/etc/

 

# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.(提示目录下必须有.my.cnf)

 

[[email protected] ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

模板应用主机:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

1.6 Zabbix邮件报警配置:

邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件

这里演示如何调用第三方邮件服务来发送邮件:

第一步:首先安装mailx组件并配置好能够通过三方邮件发送邮件

[[email protected] ~]# yum -y install mailx

然后编辑mailx的配置文件

[[email protected] ~]# vim /etc/mail.rc

set [email protected]

set smtp=smtp.sina.com

set [email protected]   #邮箱用户

set smtp-auth-password=密码   

set smtp-auth=login

本实验中使用的是新浪邮箱,新浪不需要授权码,直接使用密码登陆

保存退出后测试邮件是否能够正常发送出去

echo "zabbix test mail" |mailx -s "zabbix" [email protected]

在zabbix服务端写邮件发送脚本:

在zabbix服务端写邮件发送脚本:

[[email protected] ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[[email protected] alertscripts]# vim sendmail.sh

#!/bin/bash

messages=`echo $3 | tr ‘ ‘ ‘ ‘`

subject=`echo $2 | tr ‘ ‘ ‘ ‘`

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

[[email protected] alertscripts]# chown zabbix.zabbix sendmail.sh

[[email protected] alertscripts]# chmod +x sendmail.sh

 

修改主配置文件,让服务器读取到这个脚本:

[[email protected] alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf

# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/local/zabbix/alertscripts       #复制上面一行修改路径

测试发送脚本

[[email protected] ~]# /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh [email protected] "测试邮标题" "测试邮件内容"

[[email protected] ~]# chmod 777 /tmp/sendmail.log

页面添加:

技术分享图片

技术分享图片

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。

这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。

在2.x版本不存在这个问题,默认会传3个参数。

技术分享图片

技术分享图片

技术分享图片

技术分享图片

内容如下

动作

名称:auto-Email

技术分享图片

技术分享图片

 

操作

默认接收人:故障{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}

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

确认信息:

默认接收人:Acknowledged: {TRIGGER.NAME}

默认信息:

{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:

{ACK.MESSAGE}

 

Current problem status is {EVENT.STATUS}

 

 

测试,关闭 zabbix 客户端服务 zabbix_agentd    

 

[[email protected] ~]# systemctl stop httpd       #关闭服务

技术分享图片

[[email protected] ~]# systemctl start httpd       #重启服务

技术分享图片

 

1.7 配置zabbix自动发现并监控(Windows为案例)

首先下载安装Windows端agent

一定要以管理员身份来运行CMD,否则安装不了

技术分享图片

 

C:Windowssystem32>cd C:Userswindows7Desktopzabbix_agents_3.4.0.wininwin64    #切换到这个目录也就是文件存在目录

 

C:Userswindows7Desktopzabbix_agents_3.4.0.wininwin64>zabbix_agentd.exe -c

 C:Userswindows7Desktopzabbix_agents_3.4.0.winconfzabbix_agentd.win.conf -i          #开始安装

zabbix_agentd.exe [2920]: service [Zabbix Agent] installed successfully

zabbix_agentd.exe [2920]: event source [Zabbix Agent] installed successfully

 

C:Userswindows7Desktopzabbix_agents_3.4.0.wininwin64>zabbix_agentd.exe -c C:Userswindows7Desktopzabbix_agents_3.4.0.winconfzabbix_agentd.win.conf -s           #启动

zabbix_agentd.exe [2264]: service [Zabbix Agent] started successfully

 

C:Userswindows7Desktopzabbix_agents_3.4.0.wininwin64>

 

找到conf下的配置文件 zabbix_agentd.win.conf ,修改LogFile、Server、、ServerActive、Hostname这四个参数。具体配置如下:
LogFile=c:zabbix_agentd.log
Server=10.10.10.71
Hostname=download
ServerActive=10.10.10.71   #zabbix server地址
其中logfile是zabbix日志存放地址。Server 是zabbix服务端ip地址。Hostname是本机机器名。

技术分享图片

 

创建自动发现

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

默认接收人:

自动发现主机: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}

默认信息:

发现规则: {DISCOVERY.RULE.NAME}

 

设备IP:{DISCOVERY.DEVICE.IPADDRESS}

设备DNS: {DISCOVERY.DEVICE.DNS}

设备状态: {DISCOVERY.DEVICE.STATUS}

设备运行时间: {DISCOVERY.DEVICE.UPTIME}

设备服务端口: {DISCOVERY.SERVICE.NAME}

技术分享图片

技术分享图片

 






以上是关于Zabbix服务安装部署及监控配置的主要内容,如果未能解决你的问题,请参考以下文章

Security基础:部署Zabbix监控平台配置及使用Zabbix监控系统自定义Zabbix监控项目实现Zabbix报警功能

LINUX——监控服务zabbix部署(立于lnmp架构之上),服务配置,数据监控及告警自动化

监控服务zabbix部署

Zabbix安装配置及邮件报警

Zabbix安装配置及邮件报警

2021-10-15②企业级zabbix监控 安装部署全网最细