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 监控无法安装agnet的设备 监控好安装不_数据库

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使用的数据库

[root@centos21 ~]# mysql -uroot -p123456

mysql> create database zabbix;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix.* to zabbix@ '%' 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

[root@centos21 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/

[root@centos21 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

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

[root@centos21 zabbix-3.4.3]# ls database/mysql/

data.sql  images.sql  schema.sql

[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql

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

[root@centos21 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql

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

[root@centos21 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

[root@centos21 zabbix-3.4.3]# groupadd zabbix

[root@centos21 zabbix-3.4.3]# useradd -s /sbin/nologin -g zabbix zabbix          #创建用户

[root@centos21 zabbix-3.4.3]# yum -y install net-snmp-devel  libevent libevent-devel      #解决依赖关系

[root@centos21 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的负载

 

zabbix 监控无法安装agnet的设备 监控好安装不_php_02

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

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

*            Now run 'make install'                          *

*                                                                *

*            Thank you for using Zabbix!                     *

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

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

 

[root@centos21 zabbix-3.4.3]# echo $?

0

[root@centos21 zabbix-3.4.3]# make install

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

[root@centos21 zabbix-3.4.3]# echo $?    

0

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

bin  etc  lib  sbin  share

1.2.3 配置zabbix Server

[root@centos21 ~]# 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

[root@centos21 ~]# 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运行。

直接运行

[root@centos21 ~]# /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  #如果启动报错解决

[root@centos21 zabbix]# vim /etc/ld.so.conf        #解决库文件找不到

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

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

[root@centos21 zabbix]# ldconfig       #使库文件生效

[root@centos21 ~]# echo  /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local    #开机启动

[root@centos21 ~]# 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的脚本均可)

[root@centos21 ~]# cd /usr/local/src/zabbix-3.4.3/misc/init.d/

[root@centos21 init.d]# ls

aix  debian  fedora  freebsd  gentoo  README  suse  tru64  ubuntu

[root@centos21 init.d]# cp fedora/core/* /etc/init.d/

[root@centos21 init.d]# vim /etc/init.d/zabbix_server

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

[root@centos21 init.d]# vim /etc/init.d/zabbix_agentd

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

[root@centos21 ~]# chkconfig --add zabbix_server

[root@centos21 ~]# chkconfig zabbix_server on

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

1.2.5 编辑PHP页面控制文件

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

[root@centos21 ~]# cp -r /usr/local/src/zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/

[root@centos21 ~]# vim /usr/local/nginx/conf/nginx.conf

location / {

root   html;

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

    }

重启nginx服务和php-fpm服务

[root@centos21 ~]# nginx -s reload

[root@centos21 ~]# /etc/init.d/php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

 

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_03

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

 

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_04

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

[root@centos21 ~]# 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路径

 

[root@centos21 ~]# /etc/init.d/php-fpm restart     #重启php-fpm刷新页面

Gracefully shutting down php-fpm . done

Starting php-fpm  done

zabbix 监控无法安装agnet的设备 监控好安装不_php_05

zabbix 监控无法安装agnet的设备 监控好安装不_centos_06

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

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

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



[root@centos21 ~]# cd /usr/local/src/php-7.0.18/ext/ldap/

[root@centos21 ldap]# ls

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

[root@centos21 ldap]# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20151012

Zend Module Api No:      20151012

Zend Extension Api No:   320151012

[root@centos21 ldap]# yum -y install openldap-devel openldap

[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap

[root@centos21 ldap]# cp -frp /usr/lib64/libldap* /usr/lib/

[root@centos21 ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap   

[root@centos21 ldap]# echo $?

0

[root@centos21 ldap]# make && make install

[root@centos21 ldap]# echo $?

0

[root@centos21 ldap]# vim /usr/local/php/php.ini

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

[root@centos21 ldap]# /etc/init.d/php-fpm restart      #启动成功

Gracefully shutting down php-fpm . done

Gracefully shutting down php-fpm . done

Starting php-fpm  done

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_07

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_08

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_09

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_10

zabbix 监控无法安装agnet的设备 监控好安装不_centos_11

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



[root@centos21 ~]# cd /usr/local/nginx/html/conf/

[root@centos21 conf]# ls

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

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

 

zabbix 监控无法安装agnet的设备 监控好安装不_php_12

用户名:admin密码:zabbix

zabbix 监控无法安装agnet的设备 监控好安装不_php_13

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_14

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_15

 

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_16

zabbix 监控无法安装agnet的设备 监控好安装不_php_17

 

[root@centos21 ~]# /etc/init.d/zabbix_agentd start

Starting zabbix_agentd (via systemctl):                    [  OK  ]

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

zabbix 监控无法安装agnet的设备 监控好安装不_centos_18

zabbix 监控无法安装agnet的设备 监控好安装不_php_19

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

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_20

 

在window下面找一个ttf的字体文件C:\windows\Fonts

[root@centos21 ~]# mv msyh.ttf DejaVuSans.ttf         #上传重命名

[root@centos21 ~]# cd /usr/local/nginx/html/fonts/

[root@centos21 fonts]# ls

DejaVuSans.ttf

[root@centos21 fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak

[root@centos21 fonts]# mv /root/DejaVuSans.ttf .

[root@centos21 fonts]# ls

DejaVuSans.ttf  DejaVuSans.ttf.bak

zabbix 监控无法安装agnet的设备 监控好安装不_php_21

 

1.2.7 Zabbix启动服务总结

Nginx 服务启动

Php-fpm 服务启动

MySQL  服务器启动

测试LNMP环境正常

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

Zabbix_server 服务启动

1.3 配置监控远程主机

1.3.1 安装Agent

[root@centos26 ~]# cd /etc/yum.repos.d/

[root@centos26 yum.repos.d]# ls

back  CentOS-Media.repo

[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

[root@centos26 yum.repos.d]# wget http://mirrors.aliyun.com/repo/epel.repo

[root@centos26 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

[root@centos26 yum.repos.d]# yum clean all;yum makecache

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

[root@centos26 ~]# useradd -M -s /sbin/nologin zabbix     #创建用户

[root@centos26 ~]# tar zxf zabbix-3.4.3.tar.gz -C /usr/local/src/

[root@centos26 ~]# cd /usr/local/src/zabbix-3.4.3/

[root@centos26 zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-agent

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

*            Now run 'make install'                          *

*                                                                *

*            Thank you for using Zabbix!                    *

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

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

[root@centos26 zabbix-3.4.3]# make install

[root@centos26 zabbix-3.4.3]# echo $?

0

[root@centos26 zabbix-3.4.3]# cd

[root@centos26 ~]# 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

[root@centos26 ~]# /usr/local/zabbix/sbin/zabbix_agentd    #启动agent

[root@centos26 ~]# netstat -antup|grep zabbix

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

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

配置Agent开机启动

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

[root@centos26 ~]# vim /etc/init.d/zabbix_agentd      #编辑脚本路径

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

[root@centos26 ~]# chkconfig --add zabbix_agentd

[root@centos26 ~]# chkconfig zabbix_agentd on

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

1.3.3 修改Agentd的配置文件

[root@centos26 ~]# 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 重启服务

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[root@centos26 ~]# netstat -antup|grep zabbix

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

1.3.5 Server端测试通讯

[root@centos21 ~]# /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

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart      #再次重启服务

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

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

[root@centos21 ~]# /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 服务端配置管理脚本

[root@centos21 ~]# ls /etc/init.d/zabbix_*

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

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

[root@centos21 ~]# vim /etc/init.d/zabbix_agentd

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

[root@centos21 ~]# chkconfig --add zabbix_agentd

[root@centos21 ~]# chkconfig zabbix_agentd on

[root@centos21 ~]# /etc/init.d/zabbix_agentd restart      #重启服务

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

[root@centos21 ~]# 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主机

zabbix 监控无法安装agnet的设备 监控好安装不_php_22

zabbix 监控无法安装agnet的设备 监控好安装不_centos_23

选择模板

zabbix 监控无法安装agnet的设备 监控好安装不_centos_24

zabbix 监控无法安装agnet的设备 监控好安装不_php_25

zabbix 监控无法安装agnet的设备 监控好安装不_centos_26

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_27

刷新页面

zabbix 监控无法安装agnet的设备 监控好安装不_php_28

zabbix 监控无法安装agnet的设备 监控好安装不_php_29

 

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

1.3.8 添加监控选项

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

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_30

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

zabbix 监控无法安装agnet的设备 监控好安装不_php_31

zabbix 监控无法安装agnet的设备 监控好安装不_php_32

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_33

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_34

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_35

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

zabbix 监控无法安装agnet的设备 监控好安装不_centos_36

1.3.9 设置Triger触发器值

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

zabbix 监控无法安装agnet的设备 监控好安装不_centos_37

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_38

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_39

zabbix 监控无法安装agnet的设备 监控好安装不_centos_40

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_41

zabbix 监控无法安装agnet的设备 监控好安装不_php_42

更新数据

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

自定义绘图颜色:

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

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_43

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_44

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

zabbix 监控无法安装agnet的设备 监控好安装不_php_45

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。

[expmple@~]# 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

 

[root@centos26 ~]# yum -y install httpd

[root@centos26 ~]# systemctl start httpd

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

[root@centos26 ~]# 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>

[root@centos26 ~]# systemctl restart httpd         #重启后测试

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_46

1.4.2 解压压缩包

[root@centos26 ~]# 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 

[root@centos26 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        #关键的文件

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

[root@centos26 zapache-master]# cp zapache /usr/local/bin/

[root@centos26 zapache-master]# cp userparameter_zapache.conf.sample /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@centos26 zapache-master]# cd !$

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

[root@centos26 zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf

[root@centos26 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   

查看是否有执行权限

[root@centos26 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

[root@centos26 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

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

1.4.3 前端页面操作

导入模板

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_47

zabbix 监控无法安装agnet的设备 监控好安装不_centos_48

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_49

关联模板

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

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

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_50

zabbix 监控无法安装agnet的设备 监控好安装不_php_51

zabbix 监控无法安装agnet的设备 监控好安装不_centos_52

zabbix 监控无法安装agnet的设备 监控好安装不_centos_53

zabbix 监控无法安装agnet的设备 监控好安装不_centos_54

查看最新数据,筛选Apache

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_55

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_56

 

可以选择生产图形

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_57

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_58

 

1.5 配置zabbix监控MySQL

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

数据库用户授权

[root@centos26 ~]# mysql -uroot -p123456

mysql> grant usage on *.* to zabbix@'%' 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

[root@centos26 ~]# cp /usr/local/src/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@centos26 ~]# 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的链接信息

[root@centos26 ~]# ls /var/lib/mysql/mysql.sock

/var/lib/mysql/mysql.sock

[root@centos26 ~]# 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

[root@centos26 ~]# 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)

 

[root@centos26 ~]# /etc/init.d/zabbix_agentd restart

Restarting zabbix_agentd (via systemctl):                  [  OK  ]

模板应用主机:

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_59

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_60

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_61

zabbix 监控无法安装agnet的设备 监控好安装不_php_62

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_63

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_64

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_65

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_66

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_67

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_68

1.6 Zabbix邮件报警配置:

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

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

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

[root@centos26 ~]# yum -y install mailx

然后编辑mailx的配置文件

[root@centos21 ~]# vim /etc/mail.rc

set from=xxxxxxxxx@sina.com

set smtp=smtp.sina.com

set smtp-auth-user=xxxxxxxx@sina.com   #邮箱用户

set smtp-auth-password=密码   

set smtp-auth=login

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

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

echo "zabbix test mail" |mailx -s "zabbix" xxxxxxx@qq.com

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

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

[root@centos21 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/

[root@centos21 alertscripts]# vim sendmail.sh

#!/bin/bash

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

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

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

[root@centos21 alertscripts]# chown zabbix.zabbix sendmail.sh

[root@centos21 alertscripts]# chmod +x sendmail.sh

 

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

[root@centos21 alertscripts]# vim /usr/local/zabbix/etc/zabbix_server.conf

# AlertScriptsPath=${datadir}/zabbix/alertscripts

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

测试发送脚本

[root@centos21 ~]# /usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh xxxxxxxx@qq.com "测试邮标题" "测试邮件内容"

[root@centos21 ~]# chmod 777 /tmp/sendmail.log

页面添加:

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_69

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_70

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

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

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

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

zabbix 监控无法安装agnet的设备 监控好安装不_centos_71

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_72

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_73

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_74

内容如下

动作

名称:auto-Email

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_75

zabbix 监控无法安装agnet的设备 监控好安装不_centos_76

 

操作

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

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_77

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_78

zabbix 监控无法安装agnet的设备 监控好安装不_php_79

 

恢复操作

默认接收人:已恢复!{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}

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_80

zabbix 监控无法安装agnet的设备 监控好安装不_php_81

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_82

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_83

zabbix 监控无法安装agnet的设备 监控好安装不_php_84

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_85

确认信息:

默认接收人: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    

 

[root@centos26 ~]# systemctl stop httpd       #关闭服务

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_86

[root@centos26 ~]# systemctl start httpd       #重启服务

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_87

 

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

首先下载安装Windows端agent

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

zabbix 监控无法安装agnet的设备 监控好安装不_mysql_88

 

C:\Windows\system32>cd C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64    #切换到这个目录也就是文件存在目录

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c

 C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -i          #开始安装

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

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

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>zabbix_agentd.exe -c C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf -s           #启动

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

 

C:\Users\windows7\Desktop\zabbix_agents_3.4.0.win\bin\win64>

 

找到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是本机机器名。

zabbix 监控无法安装agnet的设备 监控好安装不_centos_89

 

创建自动发现

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_90

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_91

zabbix 监控无法安装agnet的设备 监控好安装不_centos_92

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_93

zabbix 监控无法安装agnet的设备 监控好安装不_数据库_94

 

默认接收人:

自动发现主机: {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 监控无法安装agnet的设备 监控好安装不_mysql_95

zabbix 监控无法安装agnet的设备 监控好安装不_ldap_96