zabbix的安装和配置自动发现和自动注册
Zabbix的部署安装
环境要求
就使用7.5或者7.6系统来做(这两个系统都可以)
php所有包的版本要一致
Zabbix server主机也要配一个agent,用来监控本机信息文件用户
这里server1做zabbix server
Server2和server3 做zabbix agent
我学的4.4是最新的zabbix,
zabbix官网: https://www.zabbix.com/
然后点击
中文版只有4.0版的zabbix,英文版比较多(最新的是4.2)
zabbix4.0和zabbix4.2
安装zabbix需要的包
这个实验需要使用7.3的系统来做,安装包的依赖性问题部好解决,
所以就使用7.5或者7.6系统来做
Zabbix的Web UI是lnmp,lnmp就要用到php,
Zabbix4.4最新版本对php的要求比较高,7.3系统里的php版本比较低(php是没有办法升级的),所以软件的依赖是没有办法解决的
官网上可以直接下载
安装顺序不要错,安装包也不要少
yum install zabbix-server-mysql-4.4.1-1.el7.x86_64.rpm zabbix-web-mysql-4.4.1-1.el7.noarch.rpm zabbix-web-4.4.1-1.el7.noarch.rpm php-* fping-3.10-1.el7.x86_64.rpm -y
然后发现这里报错,因为这里有两个包的版本有问题:
所以重下这两个包
装数据库,初始化,用户授权
然后使用mysql来当zabbix database,我们这里具体使用的是mariadb
等进去后要创建一个zabbix数据库,
创建一个zabbix用户,这个用户拥有一定的权限
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
将zabbix server自带sql文件导入数据库
然后zabbix server中自带的一个sql文件create.sql.gz给导导数据库里
然后导入导数据库:
zcat /usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz | mysql -uzabbix -p zabbix
#zcat命令: 解压由gzip压缩的文件,并将解压结果缩到标准输出这里使用管道输出给mariadb,即通过zabbix用户的身份将sql文件导入到zabbix库中
mysql -uroot -predhat
use zabbix;
show tables;
可以看到导入的sql文件对应的表已经生成了
这个sql脚本中的sql语句只会在对应数据库初始化zabbix需要的数据库表,但是不会创建zabbix数据库,所以创建zabbix这一步需要我们手动操作
配置zabbix-server
配置zabbix-server配置文件
接着配置zabbix-server
打开zabbix-server的配置文件,这个文件里有日志大小,日志文件位置,指定的数据库和用户
我们要改的是124行的DBPassword
开启zabbix-server
打开zabbix-server后可以看到zabbix-server端的监听端口为10051
配置zabbix-web
然后配置zabbix web
rpm -ql zabbix-web
#查看安装zabbix-web这个包生成的文件
最重要的就是下面这个zabbix.conf文件
在apache里面已经有针对zabbix的文档了,
我们也不需要加什么虚拟主机,我们只需要在里面改一个时区就可以了,
配置zabbix-web配置文件
vim /etc/httpd/conf.d/zabbix.conf
开启zabbix-web服务,浏览器测试
systemctl start httpd
在浏览器中输入: 172.25.21.1/zabbix
浏览器中配置mysql的zabbix用户密码
这里输入zabbix用户的密码,然后下一步
然后随便起一个名字,下一步
然后点击Finish
设置完毕登陆zabbix
使用默认Admin用户和zabbix(密码)登陆
浏览器中做中文设置
因为这个是因为英文的不方便我们查看
所以我们将语言切换成中文:
选择语言为中文,然后更新
然后就可以发现界面变成了中文了,这里点击修改密码可以更改登陆zabbix时的Admin的默认密码(我们这里就不改了),点更新才能出去
可以发现监控页面变成了中文
点击配置,然后点击配置下面的主机:
可以看到我们本机也是一个被监控的对象
可以看到这里的ZBX是红色的,将鼠标放到它上面可以看到:
Getvalue from agent failed: cannot connect to [[127.0.0.1]:10050]:[111] Connection refused
表示zabbix连接不到10050(zabbix agent的端口)这个端口,没有在本机接收到agent,连接被拒绝了
本机安装agent
yum install zabbix-agent-4.4.1-1.el7.x86_64.rpm
启动zabbix agent
systemctl start zabbix-agent
netstat -antlp
刷新浏览器,等一段时间后发现 这个agent就连接成功了
#如果刷新后半天没有连接成功
就重启zabbix-server和zabbix-agent
server2装zabbix-agent
然后在server2上配置一个真正的agent(专门做agent)
rpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm
rpm -ql zabbix-agent
查看生成哪些文件:
现在我们要在zabbix-web中创建一个主机,
把server2添加进zabbix监控的主机中
点击创建主机
点击主机群组:比如说一个监控的nginx的访问,一个监控nginx失败的访问,都是监控nginx,所以就可以有相同功能的主机放在一个群组里
所以我们在创建主机的时候必须至少选择一个接口
选择组群的方法:
我们点击主机:
看看zabbix-server选择的是什么群组:Template App Zabbix Server,Template OS Linux by Zabbix agent
我们将创建的server2(agent)也使用这个群组
然后再点击主机:
再点击创建主机:
因为没有SNMP,JMX接口,IPMI接口所以这里都不选
这样我们就将agent添加到了linux server组群中,
但是我们没有监控模版(监控nginx,http的模版都不一样,zabbix已经给我们把模版准备好了)
所以这里添加模版:
所以我们点击上图中的server2
点击模版:
Zabbix将我们要监控的服务模版(怎么监控数据,怎么收集数据,处理数据已经写好了)已经提前给我们做好了,我们直接把模版添加上去即可(模版也可以自定义)
然后我们就可以看到server2右边的模版版块就有我们添加的模版了,
但是最右边的agent状态没有变绿,说明server2根本没有生效
server2配置zabbix-agent
修改配置文件
Server2:
这是因为我们没有配置我们的zabbix agent,
vim /etc/zabbix/zabbix_agentd.conf
我们在介绍zabbix 的时候,说过主动模式和被动模式,
着两中模式的配置都需要在/etc/zabbix/zabbix_agentd.conf中定义
98行的Server用于指定允许哪台服务器拉取当前服务器的数据,
这个表示agent端是被动模式,zabbix server端主动拉取agent端的数据,
如果我们有多个zabbix server的话,将zabbix server主机的iP使用逗号隔开即可
ServerActive(139行)用户指定agent端的工作主动模式(将信息主动推送到哪台server上) 后面也可以跟多个IP,用逗号隔开即可
添加解析
主动模式和被动模式是可以同时存在的
Hostname指定当前主机的主机名用于zabbix server端识别这个主机
(注意zabbix server端一定要做agent端IP的解析)
Server1:
启动zabbix-agent
这时就去启动server2上的agent
然后在zabbix server上查看一下日志;
cat /var/log/zabbix/zabbix_server.log
看到日志说server2上的zabbix agent可以用了
然后我们刷新浏览器:
重新启动server1后要开启,或者设置这些服务开机自启
zabbix配置自动发现
自动发现功能的应用场景
自动发现规则主要针对企业批量添加主机,
自动发现规则由服务端主动发起,
Zabbix server开启发现进程,定时扫描局域网中的IP,
服务器、设备,实现自动发现主机,自动将主机添加到主机组、
自动加载模版、自动创建项目(item)、自动创建图像等功能
将规则添加好后,添加主机都可以添加到我们给的这个规则中去
在浏览器中将刚才手动配置的server2给删除
具体操作
然后这时再使用自动发现添加的方式来配置server2上的agent
然后点击配置——>动作
然后再事件源那里选择自动发现,然后点击红色的停用,然后会发现如下图变成启用
接着点击这个,更改动作的配置
做如下配置
添加一个规则,接收到的值包含 server(因为我们要添加主机,主机名是server2 或者 server3名字中都是包含server3)
然后点击更新
然后来看自动发现:
60s扫描一次
然后就可以看到我们定义的动作成功启用
这时要等一会儿,然后刷新页面(或者再server2上重启zabbix agent,如果不出来的话)
才能看到server2:
然后我们点击主机:
自动发现添加设备成功(从扫描到添加成功是有一定事件的)
zbbix的配置自动注册
实验前提
将自动发现功能关掉
自动发现和自动注册的区别
自动发现: zabbix server主动发现 zabbix agent
自动注册: agent主动想zabbix server去注册
Zabbix的自动注册规则主要用于Agent主动且自动向Server 注册,
适用于当前云环境下的监控,Zabbix-Server在收到Zabbix-Agent的注册请求时,
如果没有收到IP地址的值,
则使用Zabbix-Agent和Zabbix-Server建立TCP连接时使用的IP地址
虽然这个过程是自动完成的,但是还要分一个主动和一个被动
具体操作
我们使用server3来做这个实验:
scp -r 4.4/ server3:
Server3:
rpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf
去98行配置zabbix-server
systemctl start zabbix-agent
这个是自动发现的功能
我们是来做自动注册的,所以将刚才自动发现的规则给停用掉
将使用自动发现规则添加到zabbixserver上的server3删掉
创建自动注册的动作:
这里没有自动注册的动作,所以点击创建动作
如下操作,动作名称随便起
点加蓝色的小添加后,如下
然后选择操作:
点加添加后如下:
然后继续点击新的:
注意zabbix4.0和4.4的一些模版名字都不一样
如果是跟这着CSDN上做不出来,是因为zabbix不一样,选的模版的名字也不一样
然后就可以看到我们创建的注册动作就启用了
等一会儿(或者在agent主机上对zabbix-agent进行重启)
Zabbix的ZBX启动也是需要一段时间