欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

程序员文章站 2022-07-11 11:41:45
...

这里的客户端其实翻译不太标准,官方的表述是agent,应该翻译为代理好一些

1 Zabbix环境搭建

1.1 Zabbix安装

本人使用的虚拟机,Centos6.10系统

配置Zabbix官方源,epel源之前已经配过了

sudo rpm -i https://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm  //安装Zabbix官方源
sudo yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent  //安装Zabbix

之后会列出一大批包需要安装,按几个y静静等待 

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建 《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

1.2 Mysql安装

安装mysql-server

sudo yum -y install mysql-server

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建 打开/etc/my.cnf配置一下Mysql,添加两行

character-set-server=utf8
innodb_file_per_table=1

 《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

启动mysql-server

sudo chkconfig mysqld on
sudo service mysqld start

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

1.3 Zabbix配置

在Mysql上创建一个Zabbix的数据库

mysqladmin -uroot password pass  //设置root账户的密码为pass
mysql -uroot -ppass  //登陆
create database zabbix character set utf8;  //创建名为zabbix的数据库,编码为utf8
grant all privileges on zabbix.* to aaa@qq.com identified by 'zabbix';  //把zabbix数据库的所有操作权限赋给名为‘zabbix’、地址为‘localhost’的用户,该用户连接数据库的密码为‘zabbix’
flush privileges;  //使权限操作生效

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

使用exit命令退出,重新用zabbix用户名登陆, 然后导入Zabbix-Server的数据库。以下文件的路径随着Zabbix版本的变化而变化。导入后显示一下数据表

mysql -uzabbix -pzabbix
use zabbix
source /usr/share/doc/zabbix-server-mysql-2.2.22/create/schema.sql;
source /usr/share/doc/zabbix-server-mysql-2.2.22/create/images.sql;
source /usr/share/doc/zabbix-server-mysql-2.2.22/create/data.sql;
show tables;

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

配置一下Zabbix,告诉他数据库的密码,修改文件/etc/zabbix/zabbix_server.conf,在DBPassword后面写上数据库密码

 《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

新建报警信息目录,然后启动zabbix-server

sudo mkdir /etc/zabbix/alertscripts /etc/zabbix/externalscripts
sudo service zabbix-server start  
sudo service httpd start  
sudo chkconfig zabbix-server on  //添加开机启动
sudo chkconfig httpd on

1.4 其余配置

直接简单粗暴关掉Selinux

sudo setenforce 0
sudo getenforce

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

php的配置我没有修改,打开浏览器输入http:/服务器IP/zabbix

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

按Next之后发现,果然偷懒不改配置是不行的

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

/etc/php.ini中添加如下配置,有的配置项存在只需要修改,然后重启httpd

date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 2
sudo service httpd restart

好了,一路Next,到这里填写一下密码,测试一下连接 

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

因为我在Windows上开的浏览器观察Zabbix,所以这里host改成了我的服务器IP,windows的host文件我修改过,master对应的我服务器IP地址

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

最后用用户名admin,密码zabbix登陆

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

2 Windows安装Zabbix-Agent

https://www.zabbix.com/download_agents从这个网站下载zabbix的Windows版

在conf\zabbix_agentd.win中配置服务器的IP地址,我Zabbix服务器主机名是master

Server=master
ServerActive=master

%ZABBIX_HOME%\bin\win64这个路径添加到Path里,用管理员权限启动cmd,注册服务

zabbix_agentd.exe --install -c "C:\Software\Zabbix-Agent\conf\zabbix_agentd.win.conf"

今天的一切都这么顺利呢,然后启动服务,然后报错,发生系统错误2,系统找不到指定的文件

爱就像蓝天白云,晴空万里,突然暴风雨

net start "Zabbix Agent"

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

运行一下services.msc,查看服务的属性

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

这个路径不对,修改一下即可,打开注册表,找到我们的服务,路径如图

修改ImagePath为"C:\Software\Zabbix-Agent\bin\win64\zabbix_agentd.exe" --config "C:\Software\Zabbix-Agent\conf\zabbix_agentd.win.conf",按照自己安装的路径修改,然后启动服务,妥了

我估计是因为注册服务器的时候没有在zabbix_agentd.exe这个可执行文件的目录**册,所以路径不对

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

在服务器端使用zabbix-get测试,结果再次报错 Get value error: cannot connect to [[180.167.36.194]:10050]: [111] Connection refused

zabbix_get -s 180.167.36.194  -k system.uname

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

网上一般都说这个问题是防火墙的问题,新建防火墙入站规则,填写10050端口,其他默认

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

问题依旧,查看Windows上的日志zabbix_agentd.log,发现报错:active check configuration update from [192.168.56.10:10051] started to fail (ZBX_TCP_READ() failed: [0x0000274C] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

问题在于Zabbix Web上没有添加Windows这台主机,如下图操作添加

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

添加模板,添加完一定点那个Add才能Save,我卡了好几次一直添加不上去,才发现要点Add 

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

添加完成后,Windows这里log不报错,但是服务器依然不能通过zabbix_get获取Windows信息

尝试用telnet [客户端IP] 10050,如下图,直接就Connection closed by foreign host

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

最后的最后,终于解决了这个问题。我的Zabbix服务器是跑在虚拟机上,虚拟机的网络是Host-Only的,在Windows上使用ipconfig可以查询到两个ip地址,一个是Host-Only的,一个是无线局域网适配器 WLAN的,另外如果在网页上进行IP地址查询之类的动作,得到的是第三个完全不同的IP。我之前只尝试了后两个IP地址,没有试过Host-Only那个。现在想想真是石乐志,WLAN的地址都不和虚拟机在一个局域网怎么能连通

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

换成Host-Only的IP地址,在服务器telnet一下之后,连接成功,马上输一个agent.version,有返回值就成功了

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

再次尝试zabbix_get

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建

Web端查看一下,服务器已经成功地在暗中观察Windows

《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建