《Zabbix企业级分布式监控系统》学习笔记(零)——Zabbix2.2.22+Centos6.10服务器+Windows客户端搭建
这里的客户端其实翻译不太标准,官方的表述是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静静等待
1.2 Mysql安装
安装mysql-server
sudo yum -y install mysql-server
打开/etc/my.cnf配置一下Mysql,添加两行
character-set-server=utf8
innodb_file_per_table=1
启动mysql-server
sudo chkconfig mysqld on
sudo service mysqld start
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; //使权限操作生效
使用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,告诉他数据库的密码,修改文件/etc/zabbix/zabbix_server.conf,在DBPassword后面写上数据库密码
新建报警信息目录,然后启动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
php的配置我没有修改,打开浏览器输入http:/服务器IP/zabbix
按Next之后发现,果然偷懒不改配置是不行的
/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,到这里填写一下密码,测试一下连接
因为我在Windows上开的浏览器观察Zabbix,所以这里host改成了我的服务器IP,windows的host文件我修改过,master对应的我服务器IP地址
最后用用户名admin,密码zabbix登陆
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"
运行一下services.msc,查看服务的属性
这个路径不对,修改一下即可,打开注册表,找到我们的服务,路径如图
修改ImagePath为"C:\Software\Zabbix-Agent\bin\win64\zabbix_agentd.exe" --config "C:\Software\Zabbix-Agent\conf\zabbix_agentd.win.conf",按照自己安装的路径修改,然后启动服务,妥了
我估计是因为注册服务器的时候没有在zabbix_agentd.exe这个可执行文件的目录**册,所以路径不对
在服务器端使用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
网上一般都说这个问题是防火墙的问题,新建防火墙入站规则,填写10050端口,其他默认
问题依旧,查看Windows上的日志zabbix_agentd.log,发现报错:active check configuration update from [192.168.56.10:10051] started to fail (ZBX_TCP_READ() failed: [0x0000274C] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)
问题在于Zabbix Web上没有添加Windows这台主机,如下图操作添加
添加模板,添加完一定点那个Add才能Save,我卡了好几次一直添加不上去,才发现要点Add
添加完成后,Windows这里log不报错,但是服务器依然不能通过zabbix_get获取Windows信息
尝试用telnet [客户端IP] 10050,如下图,直接就Connection closed by foreign host
最后的最后,终于解决了这个问题。我的Zabbix服务器是跑在虚拟机上,虚拟机的网络是Host-Only的,在Windows上使用ipconfig可以查询到两个ip地址,一个是Host-Only的,一个是无线局域网适配器 WLAN的,另外如果在网页上进行IP地址查询之类的动作,得到的是第三个完全不同的IP。我之前只尝试了后两个IP地址,没有试过Host-Only那个。现在想想真是石乐志,WLAN的地址都不和虚拟机在一个局域网怎么能连通
换成Host-Only的IP地址,在服务器telnet一下之后,连接成功,马上输一个agent.version,有返回值就成功了
再次尝试zabbix_get
Web端查看一下,服务器已经成功地在暗中观察Windows