Zabbix4.0安装部署+自动发现及自动注册、自动添加监控主机
1、基于lnmp部署zabbix监控平台;
2、实现基于自动发现、主动注册自动添加监控主机;
实验环境:
服务端:Lnmp+Zabbix——172.20.26.167
客户端:Zabbix-agent——172.20.26.198、172.20.26.24
操作系统:Centos 7.6
一、部署zabbix监控服务端
在172.20.26.167服务器上配置nginx 官方源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl= http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey= https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl= http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey= https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
yum makecache #进行yum缓存
[root@localhost~]#yum install nginx php php-fpm php-devel php-mysql mariadb mariadb-server mariadb-devel -y
[root@localhost ~]# systemctl start mariadb #启动数据库
[root@localhost ~]# mysql
创建zabbix数据库,并授权
MariaDB [(none)]> create database zabbix charset utf8;
MariaDB [(none)]> grant all on zabbix.* to "zabbix"@localhost identified by "123456";
MariaDB [(none)]> flush privileges;
导入zabbix初始数据库数据
[root@localhost ~]# yum list zabbix* #列出与zabbix相关的包
( 如果无法列出zabbix相关的包,可以先安装epel 源
[root@localhost ~]# yum install epel-release -y
[root@localhost ~]# yum update #yum 源更新 )
[root@localhost ~]# yum install zabbix40-dbfiles-mysql -y
这里我们选择zabbix40-dbfiles-mysql来安装
[root@localhost ~]# rpm -ql zabbix40-dbfiles-mysql #查看zabbix40-dbfiles-mysql给提供了哪些文件
接下来开始导入数据库
[root@localhost ~]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/schema.sql
[root@localhost ~]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/images.sql
[root@localhost ~]# mysql -uzabbix -p123456 zabbix < /usr/share/zabbix-mysql/data.sql
数据库准备好了,接下来准备网站代码
[root@localhost ~]# yum list zabbix40* #将zabbix4.0 的包列出来
[root@localhost ~]# yum install zabbix40-web zabbix40-web-mysql -y
选择安装zabbix40-web zabbix40-web-mysql
查看zabbix网站代码的路径
[root@localhost ~]# rpm -ql zabbix40-web
与nginx默认的发布目录不一致,需要修改nginx的配置文件
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
修改发布目录的路径 /usr/share/zabbix ,增加index.php ,去掉php 动态脚本指令块的注释,并修改发布目录
保存退出,启动nginx、php-fpm 服务
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl start php-fpm
在浏览器输入172.20.26.167 访问zabbix网站
这里需要修改php的配置文件
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
保存退出,重启php-fpm服务
[root@localhost ~]# systemctl restart php-fpm
刷新网页,显示OK
报错了,检查端口、错误日志
[root@localhost ~]# netstat -nltp
[root@localhost ~]# tail /var/log/nginx/error.log
根据错误日志提示,应该是fastcgi的buffer 值不够,修改php的配置文件
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
fastcgi_buffer_size 64k;
fastcgi_buffers 32 64k;
保存退出,重启nginx服务
[root@localhost ~]# systemctl restart nginx
刷新zabbix网站
/etc/zabbix/web/zabbix.conf.php #zabbix 网站的配置文件,定义了连接数据库的信息以及zabbix平台信息,比如改zabbix网站的名字可以在这个文件里改。
用户名:admin 密码:Zabbix 登录zabbix网站监控平台
由于我们还没有安装配置zabbix-server 服务,所以是No,接下来安装配置zabbix-server服务
[root@localhost ~]# yum list zabbix40*
[root@localhost ~]# yum install zabbix40-server -y
[root@localhost ~]# rpm -qc zabbix40-server #查看zabbix40-server的配置文件路径
[root@localhost /]# vim /etc/zabbix_server.conf #指定zabbix-server 连接数据库的信息
数据库密码一定要写对,否则zabbix-server 启动不报错,端口也无法启动,zabbix因为无法连接数据库
如果遇到无法访问此网站,可以检查一下,nginx、php-fpm、mysql服务的状态,端口80、9000、3306是否启动
二、部署zabbix监控客户端(172.20.26.198、172.20.26.24)
[root@bogon ~]# yum install zabbix40-agent -y
[root@bogon ~]# vim /etc/zabbix_agentd.conf
Server=172.20.26.167 #指定zabbix-server的IP地址
#ServerActive=127.0.0.1 #因现在是被动模式,所以将主动模式注释掉
因为是一样的,保存后可以将这个zabbix_agentd.conf 拷贝到172.20.26.24对应的路径下
启动zabbix-agent 服务,查看10050端口
三、手动添加监控主机
点击zabbix监控平台 右上角的人头像,将英语修改中文
添加第一台主机:点击 配置—主机—创建主机,给起个名字
选择模板,点击 添加
添加第二台主机:点击 配置—主机—创建主机
选择模板,点击 添加
我们在172.20.26.167上安装zabbix40-agent 服务
[root@localhost ~]# yum install zabbix40-agent -y
因为是在zabbix40-server上安装的,所以配置不用改,直接启动zabbix-agent 即可,查看10050端口
[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# netstat -nltp
监控zabbix-server 主机的状态也变绿色了
到此,手动添加监控主机完成。
四、下面我们配置自动发现、自动添加监控主机(被动模式)---是服务器端去发现客户端。
先将手动添加的监控主机删除掉
点击 配置-自动发现,创建发现规则
[root@localhost ~]# zabbix_get -s 172.20.26.198 -k "system.uname"
在zabbix-sever 端能获取到客户端的“system.uname”即说明这个客户端开启zabbix-agent 服务,可以在发现后添加到监控里,如果获取不到“system.uname”,将不被自动发现。
点击 “监测”,点击“自动发现“, 查看被自动发现的主机情况,发现的速度有以下三个影响因素
1、Zabbix服务器的性能好不好
2、启动的发现进程数多不多
3、指定的扫描范围大小
为创建的发现规则“自动发现”创建一个动作“自动发现添加主机”
点击“创建动作“,新的触发条件 选择 ”自动发现规则“ 等于我们刚刚创建的自动发现规则 ”自动发现“,点击小字的”添加“
点击“操作”,点击细节下的“新的”,操作类型,选择”添加主机“,点击小字”添加“,再点击”新的“,选择”添加到主机群组“, 主机群组,选择”linux servers“ ,点击小字”添加“,再点击”新的“,选择”与模块关联“,选择相应的模板” Template OS Linux “, 点击小字”添加“,再点击大字的“添加”。
点击“配置“,”主机“,查看添加主机情况
到此,自动发现、自动添加监控主机的配置完成。
五、接下来,我们也可以配置更高效的方法,主动注册、自动添加监控主机(主动模式)----是客户端主动向服务器端报备,相对于被动模式,效率更高。
将agent客户端的主动注册开启
[root@bogon ~]# vim /etc/zabbix_agentd.conf
ServerActive=172.20.26.167
Hostname=agent198
[root@bogon ~]# systemctl restart zabbix-agent
[root@bogon ~]# vim /etc/zabbix_agentd.conf
ServerActive=172.20.26.167
Hostname=agent24
[root@bogon ~]# systemctl restart zabbix-agent
将“自动发现”规则停用,
点击“配置”,点击“主机”,将自动发现并自动添加的两台主机,选中并删掉
点击“配置”,点击“动作”,“事件源”选中“主动注册”,点击 “创建动作”
起个名称“主动注册监控主机”,新的触发条件,选中“主机元数据”,包含,输入我们在agent里设置的“HostMetadata=Linux”中的“Linux”,点击小字的“添加”。
点击“操作”,点击细节下的“新的”,操作类型,选择”添加主机“,点击小字”添加“,再点击”新的“,选择”添加到主机群组“, 主机群组,选择”linux servers“ ,点击小字”添加“,再点击”新的“,选择”与模块关联“,选择相应的模板” Template OS Linux “, 点击小字”添加“,再点击大字的“添加”。
点击“配置”,点击“主机”,等待主机注册过程
到此,主动注册并自动添加监控主机的配置完成。