【Linux云计算架构:第二阶段-Linux必会的20多种服务】第28章——Zabbix服务安装部署及监控配置

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

官方网站:http://www.zabbix.com/
The Enterprise-class Monitoring Solution for Everyone

企业级监控解决方案:
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。

Zabbix 主要特点

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

Zabbix主要功能

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

Zabbix运行机制

Zabbix Server 和 Zabbix agent

Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等你方法提供对远程服务器/网络状态的 监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平台。
Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU 等你 信息收集。Zabbix Server 也可以单独监视远程服务器的服务状态,同时也可以与 Zabbix Agent 结合。可以轮询 Zabbix Agent 主动接收监视数据(trapping 传递 方式),同时还可以被动接收 Zabbix Agent 发送的数据。

主动模式
agent向server主动请求对应监控项列表,在本机收集对应的监控数据,提交给server/proxy

工作流程:Client每隔一段时间主动向服务器发起连接请求->server收到请求,查询client端需要的item,发送给 client->客户端收集数据发送到服务器->结束

被动模式
agent打开一个端口默认为10050,等待server来获取数据,然后agent进行数据首席再发送到server(默认是出于被动模式)

总结
建议主动模式,大大缓解了server的压力,但是主动模式,是不打开agent端的端口的。

在没有 Proxy 的情况下,Zabbix Agent 的默认配置是被动模式。在被动代理模式下,Zabbix Server 会定期连接到配置好的 Zabbix Agent 地址和端口,发送请求并获取监控数据。Agent 接收到 Server 的连接请求后,将数据推送给 Server。这个过程是由 Agent 主动发起的,因此属于 push 模型。对于主动与被动的区分,就看发送请求是由谁发出的,如果是server端发起则是被动模式,如果是agent端发起则是主动模式。

Zabbix Agent 的默认通信模式是被动模式(Passive Mode)。在被动模式下,Zabbix Agent 等待 Zabbix Server 或 Proxy 的连接请求,然后主动推送监控数据给 Server 或 Proxy。被动模式是 Zabbix Agent 的默认配置,如果你没有显式地配置 ServerActive,那么 Agent 将使用 Server 配置项来确定被动连接的 Zabbix Server 地址。

如果同时配置了 ServerServerActive,Agent 既可以被动地等待 Server 连接(被动模式),又可以主动地连接到 Server 或 Proxy 推送数据(主动模式)。这种配置适用于复杂的网络拓扑或需要与多个 Server 或 Proxy 进行通信的场景。

当 ServerActive 和 Server 都配置时,Zabbix Agent 将同时处于被动模式和主动模式,而不是优先选择其中一种模式。这种配置下,Agent 同时执行两种模式的通信。

zabbix agent的运行模式有以下两种:
1、被动模式:此模式为zabbix默认的工作模式,由zabbix server 向zabbix agent 发出指令获取数据,zabbix agent被动地去获取数据并返回给zabbix server,zabbix server会周期性地向agent索取数据。此模式的最大问题就是会增加zabbix server的工作量,在大量的服务器环境下,zabbix server不能及时获取到最新的数据。
2、主动模式:即由zabbix agent 主动采集数据并返回给zabbix server,不需要zabbix server 的另行干预,因此使用主动模式能在一定程序上减轻zabbix server的压力。

主动模式流程:
Agent向Server建立一个TCP连接

Agent请求需要检测的数据列表

Server响应Agent,发送一个Items列表

Agent允许响应

TCP连接完成本次会话关闭

Agent开始周期性地收集数据

被动模式工作流程:
Server 打开一个TCP连接

Server发送一个key 为agent.ping

Agent接受这个请求,然后响应

Server对接受到的数据进行处理

TCP连接关闭

Zabbix运行过程图

在这里插入图片描述

Zabbix 支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理 Zabbix,通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置!Agent 监控端口 10050
服务端安装 Zabbix Server 和 Zabbix Agent 两个服务,客户端只安装 Zabbix Agent 一个服务。
监控原理:abbix Agent 服务将从系统中获取的相关数据传送给 Zabbix Server,然后 Zabbix Server 服务奖数据分 析之后以 PHP 页面展示出来!

整个环境所需要的软件包:

php-5.6.13	
libmcrypt-2.5.8 
mysql-5.6.26
nginx-1.8.0 
zabbix-3.4.3
我们需要先构建 LNMP 的环境,因为 Zabbix 通过 PHP 页面展示

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

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

创建 Zabbix 使用数据库:

[root@xuegod63 ~]# mysql -uroot -p123456
mysql> create database zabbix;
mysql> grant all on zabbix.* to zabbix@xuegod63 identified by 'zabbix';	#zabbix 用户授权
mysql> flush privileges;
mysql> exit

[root@xuegod63 ~]# tar xvf zabbix-3.4.3.gz -C /usr/local/src/ 
[root@xuegod63 ~]# cd /usr/local/src/zabbix-3.4.3/

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

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

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

Zabbix同时支持很多类型数据库,可以通过查阅帮助: https://www.zabbix.com/documentation/2.4/manual/appendix/install/db_scripts

编译安装 zabbix

[root@xuegod63 ~]# groupadd zabbix
[root@xuegod63 ~]#useradd -s /sbin/nologin -g zabbix zabbix#创建用户

[root@xuegod63zabbix-3.4.3]# 
yum install -y net-snmp-devel  
yum install libevent libevent-devel -y	# 解决依赖

[root@xuegod63zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/var/lib/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>	*
***********************************************************
[root@xuegod63 zabbix-3.4.3]# make install	
#按上面的提示,没有 make 步骤,直接 make install
[root@xuegod63 ~]# ls /usr/local/zabbix/	//编译成功,产生如下目录
bin	etc	lib	sbin	share

配置 zabbix Server:

[root@xuegod63~]#vim/usr/local/zabbix/etc/zabbix_server.conf

DBHost=xuegod63	 #默认注释掉了,直接取消注释即可
DBName=zabbix	#数据库用户,我们授权的用户也是zabbix
DBUser=zabbix	  #默认是 root,我们授权的用户是 zabbix
DBPassword=zabbix	#密码我们授权的也是 zabbix

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

[root@xuegod63~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1	#默认监控服务器自己,这三行不用改
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1	#允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给他。

启动服务:

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

直接运行:

[root@xuegod63 ~]#/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@xuegod63 zabbix]# vim /etc/ld.so.conf#解决库文件找不到
include ld.so.conf.d/*.conf
/var/lib/mysql/lib/   #根据实际路径添加此行

[root@xuegod63 zabbix]#ldconfig#使库文件生效
[root@xuegod63~]#echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local	  # 开机启动 

[root@xuegod63 ~]# netstat -antup | grep zabbi    # server 运行端口 10051
tcp	0	0 0.0.0.0:10051	0.0.0.0:*	LISTEN37568/zabbix_server

或者通过启动脚本启动 zabbix:

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

[root@xuegod63~]#cd /usr/local/src/zabbix-3.4.3/misc/init.d/
[root@xuegod63 init.d]# cp fedora/core/*  /etc/rc.d/init.d/
[root@xuegod63 init.d]# vim /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix  #找到此行,并修改 
	
[root@xuegod63 init.d]# vim /etc/init.d/zabbix_agentd ; cd
BASEDIR=/usr/local/zabbix  #找到此行,并修改 	

[root@localhost core]# vim /etc/rc.d/init.d/zabbix_agentd 
[root@localhost core]# /etc/init.d/zabbix_agentd start
Reloading systemd:                                         [  OK  ]
Starting zabbix_agentd (via systemctl):                    [  OK  ]

[root@localhost core]# chkconfig zabbix_server on
[root@localhost core]# chkconfig zabbix_agentd on

编辑 php 页面控制文件:
默认配置文件没有写入到我们的 Nagix 的配置文件中,也就是不能加载到我们的 zabbix 页面目录

[root@xuegod63~]#cp -r /usr/local/src/zabbix-3.4.3/frontends/php/*   /usr/local/nginx/html/ 
[root@xuegod63 ~]# vim /usr/local/nginx/conf/nginx.conf
location / {
root	html;
index	index.php index.html index.htm;	#找到此行内容,添加index.php
}

重启nginx服务和php-fpm服务:

[root@xuegod63 ~]# /usr/local/nginx/sbin/nginx -s reload ; 
[root@xuegod63 ~]#/etc/init.d/zabbix_server restart
[root@xuegod63 ~]#/etc/init.d/php-fpm restart

打开网页安装 zabbix web
浏览器输入:http://192.168.142.125 如图,下一步 Next
在这里插入图片描述
开始检查环境,如图,发现很多环境不符合条件
在这里插入图片描述
编辑 php.ini 文件,修改环境

[root@xuegod63 ~]# 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 = /var/lib/mysql/mysql.sock  #指定php连接mysql的sock路径

[root@xuegod63 ~]# /etc/init.d/php-fpm restart  #重启fpm

刷新页面
在这里插入图片描述

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

[root@xuegod63zabbix-3.4.3]# cd /usr/local/src/php-5.6.13/ext/
[root@xuegod63 ext]# cd ldap/
[root@xuegod63 ldap]#  /usr/local/php/bin/phpize
Configuring for:
PHP Api Version:         20131106
Zend Module Api No:      20131226
Zend Extension Api No:   220131226

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

上面的过程会报错,提示缺少库文件:
解决:

[root@xuegod63 ~]# yum install openldap-devel openldap -y

[root@xuegod63 ~]# rsync -avz /usr/lib64/libldap* /usr/lib/

再次configure,即可通过预编译

[root@xuegod63 ldap]# make && make install
[root@xuegod63 ~]# vim /usr/local/php/php.ini
添加:extension=ldap.so

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

再次刷新即可

下一步:
在这里插入图片描述

以下默认,直接下一步
在这里插入图片描述
下一步:
在这里插入图片描述
在这里插入图片描述
如果写入失败,直接download这个配置文件,然后上传上去:

[root@xuegod63~]# mv zabbix.conf.php /usr/local/nginx/html/conf/ #然后刷新

如果显示成功
点击 Finish,完成安装!

登陆 Zabbix 并配置 登陆之后我们修改语言 默认用户名和密码分别为  admin,zabbix

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
点击右上角用户,然后选择语言
在这里插入图片描述
然后 Update 即可,页面变为中文
在这里插入图片描述
点击配置》主机》 启用本主机(默认没有启动,点击后面红色的停用,则启用)

在这里插入图片描述

把zabbix_agent 也启动起来:

[root@xuegod63 ~]# /usr/local/zabbix/sbin/zabbix_agentd 或者/usr/local/zabbix/sbin/zabbix_agentd start

再次刷新页面,可以看到,agent状态已经正常
在这里插入图片描述

可以看到已经开始出图:

在这里插入图片描述
在这里插入图片描述

但是发现下面显示有问题:这个是中文字符集的问题,在英文状态下显示是正常的。

图表字符乱码的解决办法:

在 Windows 下面找一个 ttf 的字体文件C:\Windows\Fonts
[root@xuegod63 ~]# cd /usr/local/nginx/html/fonts/
[root@xuegod63 fonts]# mv DejaVuSans.ttf  DejaVuSans.bak
[root@xuegod63 fonts]# mv 微软雅黑.ttf  DejaVuSans.ttf

这样字符问题即解决!

Zabbix 启动服务总结:

Nginx 服务启动
Php-fpm 服务启动
Mysql 服务器启动 
测试LNMP环境正常
导入数据库、授权、源码安装zabbix
Zabbix_server 服务启动

配置监控远程主机:

安装 Agent:

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

[root@xuegod69 ~]# useradd-M -s /sbin/nologin	zabbix

[root@xuegod69 ~]# tar xvf zabbix-3.4.3.tar.gz -C /usr/local/src/ 
[root@xuegod69 ~]# cd /usr/local/src/ zabbix-3.4.3/
[root@xuegod69 zabbix-3.4.3]#  ./configure --prefix=/usr/local/zabbix --enable-agent 	 //被监控端只需要部署 agnet
[root@xuegod69 zabbix-3.4.3]# make install ; cd

[root@xuegod64 ~]# cat /etc/services|grep zabbix
zabbix-agent    10050/tcp               # Zabbix Agent
zabbix-agent    10050/udp               # Zabbix Agent
zabbix-trapper  10051/tcp               # Zabbix Trapper
zabbix-trapper  10051/udp               # Zabbix Trapper

启动agent:

[root@xuegod64 ~]# /usr/local/zabbix/sbin/zabbix_agentd

也可以使用系统启动脚本来启动:
配置 Agnet 开机启动

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

[root@xuegod69 ~]# vim /etc/init.d/zabbix_agentd	  #上一步生成了启动脚本,然后现在编辑脚本
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"	#修改此行

[root@xuegod69 ~]# chkconfig --add zabbix_agentd	# 添加到开机启动服务
[root@xuegod69 ~]# chkconfig zabbix_agentd on	# 设为开机启动
拓展:core 和 core5 里面的文件都可以实现 zabbix 代理启动,core 里面是测试版本,core5 是稳定版本

配置 Agentd 的配置文件:

[root@xuegod69~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf	#客户端操作

Server=192.168.142.125	#zabbix server 地址,可以多个,用,隔开
ServerActive=192.168.142.125	#主动检查的意思,主动检查主机的数据的数据发送给 Zabbix Server
Hostname=xuegod69
UnsafeUserParameters=1

启动服务:

[root@xuegod69 ~]#/etc/init.d/zabbix_agentd restart
[root@xuegod69 ~]# netstat -antup | grep zabbix
tcp	0	0 0.0.0.0:10050	0.0.0.0:*	LISTEN
9683/zabbix_agentd

Server 端测试通讯:

[root@xuegod63 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.64 -p10050 -k system.uname
#可以获取对方系统版本则证明没有问题

服务端配置管理脚本

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

[root@xuegod63 ~]# vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix	#修改此行内容为 zabbix 的安装位置

[root@xuegod63 ~]# chkconfig --add zabbix_agentd
 [root@xuegod63 ~]# chkconfig zabbix_agentd on
[root@xuegod63 ~]# /etc/init.d/zabbix_agentd restart		//可以监控自己,也要启动服务 
[root@xuegod63 ~]# netstat -antup | grep zabbix	//两者之间监控端口不一样
tcp	0	0 0.0.0.0:10050	0.0.0.0:*	LISTEN
51645/zabbix_agentd
tcp	0	0 0.0.0.0:10051	0.0.0.0:*	LISTEN
10786/zabbix_server

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

添加 Host 主机
在这里插入图片描述
在这里插入图片描述

选择模块:
在这里插入图片描述

在弹出的模块里选择一个自己需要的模块:
在这里插入图片描述
在这里插入图片描述

返回之后,可以看到已经添加进来:等到可用性变成绿色即可出图监控
在这里插入图片描述
在这里插入图片描述

这时间可以通过图形功能来查看出图情况:

在这里插入图片描述

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

添加监控项:

通过比较zabbix servers 群组和Linux servers 群组,可以发现,默认的配置中Linux servers监控项比较少,下面手动添加监控项:
在这里插入图片描述
筛选无触发器,出来很多监控项,默认都是启用状态,我们无需再次启动,下面修改自动发现的时间
在这里插入图片描述
在这里插入图片描述

文件系统探测和网络流量探测
在这里插入图片描述
把原来的3600s改成10s
在这里插入图片描述
修改更新数据后,再次返回图形监控页面,稍等几分钟再次查看监控项。

在这里插入图片描述
再次返回主页,可以看到整体的监控状态
在这里插入图片描述

设置 Triger 触发器值
在这里插入图片描述
找到当前主机应用的模板:
在这里插入图片描述
在这里插入图片描述
默认的值是20%
在这里插入图片描述
修改成自己设定的值
在这里插入图片描述

更新数据

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

自定义绘图颜色:

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

在这里插入图片描述
在这里插入图片描述
根据需求修改每一个项的显示颜色
在这里插入图片描述

总结 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 | [-zpI] -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 为 unix 时间戳
-r --real-time	将数据实时提交给服务器
-v --verbose	详细模式, -vv 更详细

配置 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

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

[root@xuegod69 httpd]# vim conf/httpd.conf  #在末尾加入
ExtendedStatus On
<location /server-status>
   SetHandler server-status
   Order allow,deny  
   Allow from 127.0.0.1 192.168.1.0/24
</location>

[root@xuegod69 bin]# systemctl restart httpd 重启后测试

在这里插入图片描述

[root@xuegod69 ~]# unzip master.zip  #解压下载的包
[root@xuegod69 ~]# cd zapache-master/
[root@xuegod69 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的上个步骤已经配置过了
userparameter_zapache.conf.sample 、zapache 关键的文件
zapache-template-active.xml  zapache-template.xml模板

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

[root@xuegod69 zapache-master]#cp zapache /usr/local/bin/
[root@xuegod69 zapache-master]# cp userparameter_zapache.conf.sample  /usr/local/zabbix/etc/zabbix_agentd.conf.d/  
[root@xuegod69 zapache-master]# cd !$
[root@xuegod69 zabbix_agentd.conf.d]# mv userparameter_zapache.conf.sample userparameter_zapache.conf  重命名
[root@xuegod69 zabbix_agentd.conf.d]# vim userparameter_zapache.conf
UserParameter=zapache[*],/var/lib/zabbixsrv/externalscripts/zapache \$1 
改为UserParameter=zapache[*],/usr/local/bin/zapache \$1

查看是否有执行权限
没有权限可执行下面命令
[root@xuegod69 ~]# chmod +x /usr/local/bin/zapache 

修改zabbix -agentd.conf:

[root@xuegod69 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
#启用引用此目录文件

前端页面操作:
导入模板
在这里插入图片描述
在这里插入图片描述
关联模板:

配置-主机(选择apache客户端)
模板-选择(选择上面导入的模板)-添加-更新

在这里插入图片描述
在这里插入图片描述
查看最新数据,筛选Apache:
在这里插入图片描述
可以选择生产图形
在这里插入图片描述
在这里插入图片描述
配置 zabbix 监控 MySQL:
和监控我们的 Apache 一样,寻找合适的脚本,不过,脚本并不是那么容易就可以找得到的! 要么自己手动去写,要么自己找到的拿来修改,都是需要花费代价的!ZABBIX 默认提供了 MYSQL 的监控模板

数据库用户授权:

mysql> grant usage on *.* to zabbix@'%' identified by '123456';
mysql> flush privileges;
[root@xuegod69	~]#cp /usr/local/src/zabbix-3.4.3/conf/zabbix_agentd/userparameter_mysql.conf  /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@xuegod69~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf	#启用并修改 	

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

[root@xuegod69 ~]# vim /usr/local/zabbix/etc/.my.cnf

#Zabbix Agent 
[mysql] 
host=xuegod63
user=zabbix 
password=123456
socket= /var/lib/mysql/mysql.sock
[mysqladmin] 
host=xuegod63
user=zabbix
password=123456
socket= /var/lib/mysql/mysql.sock

[root@xuegod69 ~]# 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@xuegod69 ~]# /etc/init.d/zabbix_agentd restart

模板应用主机:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Zabbix邮件报警配置:

邮件服务可以使用系统自带的邮件服务来发送邮件或者使用其他邮件服务调用第三方邮件来发送警告邮件
这里演示如何调用第三方邮件服务来发送邮件:

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

[root@xuegod63 ~]# yum install mailx
然后编辑mailx的配置文件

[root@xuegod63 ~]# vi /etc/mail.rc
在最末尾添加如下
信息
set from=xuegodzabbix@163.com
set smtp=smtp.163.com
set smtp-auth-user=xuegodzabbix@163.com
set smtp-auth-password=你的密码 注意:此为163邮箱设置的客户端授权密码
set smtp-auth=login 

在这里插入图片描述
这里的xxxxxx@163.com 表示发送账号
保存退出后测试邮件是否能够正常发送出去

[root@xuegod63 ~]# echo "zabbix test mail" |mailx -s "zabbix"XXXX@qq.com

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

[root@xuegod63 ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@xuegod63 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@xuegod63 alertscripts]# chown zabbix.zabbix sendmail.sh 
[root@xuegod63 alertscripts]# chmod +x  sendmail.sh

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

vim /usr/local/zabbix/etc/zabbix_server.conf
修改:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
为
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

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

测试发送脚本

/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh 136xxx@126.com "测试邮件标题" "测试邮件内容"

页面添加:
在这里插入图片描述
在这里插入图片描述

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。
这是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。
在2.x版本不存在这个问题,默认会传3个参数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

内容如下:

动作
名称:Action-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}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

[root@xuegod69 ~]# /etc/init.d/zabbix_agentd stop 结果:

延迟比较大,大概要5-10分钟
可以在日志看送达状态:
在这里插入图片描述
参考:

http://thedream.blog.51cto.com/6427769/1827984
http://xiao987334176.blog.51cto.com/2202382/1768339
http://clovemfong.blog.51cto.com/3297559/1702105
https://ywwd.net/read-1044
http://www.cnblogs.com/Eivll0m/p/5446993.html

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

首先下载安装Windows端agent

在这里插入图片描述

找到conf下的配置文件 zabbix_agentd.win.conf (建议用文本编辑软件打开),修改LogFile、Server、ServerActive、Hostname这四个参数。具体配置如下:

LogFile=c:\zabbix_agentd.log
Server=192.168.142.125
Hostname=download
ServerActive=192.168.142.125#zabbix server地址
其中logfile是zabbix日志存放地址。Server 是zabbix服务端ip地址。Hostname是本机机器名。

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

cd C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\bin\win64

在这里插入图片描述

安装windos zabbix客户端:

zabbix_agentd.exe –c C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf–i

在这里插入图片描述
启动客户端:

zabbix_agentd.exe –c C:\Users\Administrator\Desktop\zabbix_agents_3.4.0.win\conf\zabbix_agentd.win.conf–s

在这里插入图片描述

创建自动发现规则:
在这里插入图片描述
在这里插入图片描述

添加关联动作:
在这里插入图片描述
在这里插入图片描述
操作-可添加发现主机发送邮件通知:

发送模版

默认接收人自动发现主机: {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}

在这里插入图片描述

等待一会,就可以发现自动探测监控了
推荐一款监控:http://www.weadmin.com/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值