zabbix是一款基于web界面的提供分布式系统监控以及网络监视功能的企业级开源方案,zabbix由两部分构成:zabbix server(服务端)和zabbix agent(客户端),监听方式有zabbix agent、snmp、ping等。主要可分为客户端将数据上传给服务端(主动模式(主动被动都是针对客户端而言的),使用10051端口)和服务端主动去抓取数据(被动模式使用10050端口)。
现在测试环境是一台centos7监控服务端,ip地址为192.168.1.10,一台cenos7客户端,ip地址为192.168.1.11,一台Windows server 2012做客户端,ip地址192.168.1.12,整个监控系统由这三台主机构成。
首先是服务端的配置安装:
1.关闭SELinux 如果不关闭SELinux可能会导致zabbix服务起不来(笔者曾在安装zabbix2.x版本时一直无法正常启动服务,最终关闭SELinux解决),SELinux会与许多服务冲突,最懒的方法就是直接关闭
临时关闭:setenforce 0 永久关闭:vi /etc/selinux/config 将SELINUX=enforcing改为SELINUX=disabled
2.搭建LAMP环境:
1)更新你的源,可以使用一些你已知的源,这里使用阿里源http://mirrors.aliyun.com/repo/Centos-7.repo
2)更新源
将你原始源文件备份:mv /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/Centos-7.repo.backup
更新: cd /etc/repo.d
wget http://mirrors.aliyun.com/repo/Centos-7.repo (如果没有wget指令需要先yum -install wget)
yum clean all
yum makecache
3)安装lamp:
yum -y install mariadb mariadb-server php php-mysql httpd
数据库部分:
开启服务并设置开机自启动:systemctl start mariadb
systemctl enable mariadb
初始化数据库并且为root用户设置密码(默认密码为空):
mysql_secure_installation 然后输入新的密码,并且会配置匿名用户、test用户、root远程用连接等配置,全部y即可
mysql -uroot -p你的新密码 -e "create database zabbix default character set utf8 collate utf8_bin;"创建一个名为zabbix的数据库
mysql -uroot -p你的新密码 -e "grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';" 新建一个用户名为zabbix,密码为zabbix的用户,并且授予他在数据库“zabbix”内表的所有权限(该数据库要与zabbix服务连接)
apache部分:
开启服务并设置开机自启动:systemctl start httpd
systemctl enable httpd 如果80端口未开启 firewall-cmd --add-port=80/tcp,至此lamp环境搭建完毕
3.安装zabbix服务:
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
将zabbix的数据结构导入数据库:
cd /usr/share/doc/zabbix-server-mysql-3.2.4
zcat creat.sql.gz | mysql -uroot -p你的密码 zabbix (如果你是升级zabbix版本,这一步会提示你表已存在,你可以删掉重建数据库drop database zabbix;)
修改zabbix-server配置文件:
vi /etc/zabbix/zabbix_server.conf 修改内容如下:
DBhost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
修改zabbix的php配置文件:
vi /etc/httpd/conf.d/zabbix.conf
将php_value date.timezone的注释去掉,并且修改地区为Asia/Shanghai
开启zabbix服务并设置为开机自启动:systemctl start zabbix-server
systemctl enable zabbix-server 如果服务未成功开启,请使用journalctl -xe 查看错误日志并进行排错
systemctl restart httpd 重启apache,至此zabbix的配置已经完毕,可以在web页面进行安装了
在本地浏览器输入127.0.0.1/zabbix即可进入安装页面,当然输入服务器地址也可,配置没错的话一路确认即可安装成功,默认账号为Admin,密码为zabbix,进入主页面点击图示位置
即可设置为中文,至此zabbix服务端配置安装完毕
客户端配置zabbix-agent:
zabbix的客户端配置安装就比较简单了,这里我们用的是10050端口的客户端将数据提交给服务端的被动模式
1.linux客户端:
安装zabbix-agent:
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.3l7.noarch.rpm
yum install -y zabbix-agent
修改zabbix-agent配置文件:
vi /etc/zabbix/zabbix_agent.conf
一共要修改三个参数:Server=服务端的ip地址
ServerActive=服务端的ip地址 (ServerActive为主动模式)
Hostname=这里填什么都可以,只要与服务端的监控主机hostname一致即可,为了方便管理,这里就填本机的ip地址即可
启动zabbix-agent服务并设置为开机自启动:
systemctl start zabbix-agent
system enable zabbix-agent
打开服务端的监控页面并设置监控主机:
点击如图所示
首先需要设置的是主机名称,这里一定要与刚刚客户端中配置文件的hostname一致,可见名称随意,群组会帮助你在主界面有更清晰的分类,agent ip地址填写客户端的ip即可,基本配置完成,然后设置模板,这里使用现成的模板:
然后返回“主机”界面确认完成即可
成功后zbx图标应该会变绿,如果没有,试着重启zabbix服务,systemctl restart zabbix-server,zabbix默认有监控本机,但是也需要在服务端上安装配置zabbix-agent,安装配置方法如上,在zabbix-agent配置文件里的参数Server和ServerActive都填127.0.0.1即可,linux客户端的监控配置就此完成
2.windows客户端:
windows客户端需要安装对应版本的zabbix-agent,http://www.zabbix.com/downloads/3.2.0/zabbix_agents_3.2.0.win.zip
下载好后将文件解压,笔者解压在c盘根目录下,解压后其中有bin和conf两个目录,bin中有64位和32位的zabbix-agent,对应即可,笔者的环境为64位的server 2012,这里先修改conf目录下的配置文件,主要修改三个参数:
LogFile=c:\zabbix_agentd.log zabbix_agentd.log文件笔者是在在c盘根目录下新建,建在哪儿都行路径一致即可,运行的日志会输出在这个文件里面,zabbix服务一分钟发送一次数据,所以日志也是一分钟更新一次。
Server=服务端的ip地址
Hostname=跟上面讲的一样,只要与服务端主机配置的hostname一致即可,如果要填本机的hostname,可以打开cmd输入hostname
因为笔者的环境为64位机,进入C:\zabbix_agents_3.2.0.win\bin\win64,按住shift+鼠标右键,选择在“在此处打开命令窗”,然后输入
zabbix_agentd.exe -c C:\zabbix_agents_3.2.0.win\conf\zabbix_agentd.win.conf -i -c后面接配置文件 -i是安装 -s是启动 -x是停止 -d是写在
zabbix_agentd.exe -c C:\zabbix_agents_3.2.0.win\conf\zabbix_agentd.win.conf -s
这样,zabbix-agent在winodws平台上的配置就完成了,最后只需要在服务端上进行跟之前一样的配置就行了,只是模板那里选择windows的模板即可。
一些常见的错误:
10050端口没打开,linux:firewall-cmd --query-prot=10050/tcp查询,没有打开的话firewall-cmd --add-port=10050/tcp打开端口;windows:防火墙入站出站规则设置端口10050允许连接
一些关联软件包在centos不同版本名字也不一样,yum安装时不要用错了
需要关闭防火墙的话,不重要的时候可用iptables -F
暂时只想到这些,一步一步来的话安装配置并不难,遇到问题第一时间看错误日志,在此记录一下自己的学习过程,共勉。