zabbix
是一个基于WEB界面
的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由zabbix server
与可选组件zabbix agent
两部门组成。
加粗样式当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的,因为未被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并排除的,这时整个架构或系统来说都是非常大的风险因患,所以我们在原则上是要对整个的架构或系统进行监控,随时监控各个方面的指标是否正常,以提高系统的稳定性。
一个监控系统运行的大概流程是这样的:
Zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。
这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
SNMP(Simple Network Managerment Protocol),这是一个非常古老的且通用的监控协议,几乎任何设备都支持用此方式进行系统的监控。
Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server
IPMI:智能平台管理接口,可在常用的服务器上看到类似的以太网口的接口。
JMX: Java Managerment Exlensions
zabbix_agentd:客户端守护进程,负责收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
zabbix_get:zabbix工具,单独使用的命令,通常在Server或者Proxy端执行获取远端客户信息的命令。通常客户排错。例如在Server端获取不到客户端的内存数据,我们可以使用zabbix_get获取客户端的内容的方式来做故障排查。
zabbix_sender:zabbix工具,用于发送数据给Server或者Proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提交数据。
zabbix_proxy:zabbix代理守护进程。功能类似Server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到Server里。
zabbix_java_gateway:Java网关,类似agentd,但是只用于Java方面。它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到Server或者proxy。
基于rhel7.3操作系统
主机名 | 服务名称(角色) |
---|---|
server1 172.25.2.1 | zabbix-server,zabbix-web,mariadb-server监控方 |
server2 172.25.2.2 | zabbix-agent(1)被监控方 |
server3 172.25.2.3 | zabbix-agent(2)被监控方 |
具体步骤如下:
1、配置网络yum源
2、安装zabbix-server服务、zabbix-web服务、数据库服务在同一台服务器server1
[root@server1 ~]# yum install -y zabbix-server-mysql
[root@server1 ~]# yum install zabbix-web-mysql
[root@server1 ~]# yum install -y mariadb-server
[root@server1 ~]# systemctl start mariadb
[root@server1 ~]# systemctl enable mariadb
[root@server1 ~]# mysql_secure_installation ##安全初始化
4、登陆数据库,创建zabbix数据库并且授权
[root@server1 ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
## 使用utf-8编码并对用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
5、导入数据库,时间较长,不可中断。
[root@server1 zabbix-server-mysql-4.0.5]# pwd
/usr/share/doc/zabbix-server-mysql-4.0.5
[root@server1 zabbix-server-mysql-4.0.5]# zcat create.sql.gz | mysql -p zabbix
##zcat=gzip + cat 把这个数据库导入zabbix这个数据库中
6、再次登录数据库,可以看到zabbix数据库里面有很多表格以及数据
[root@server1 zabbix-server-mysql-4.0.5]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
7、编辑zabbix
[root@server1 ~]# cd /etc/zabbix/
[root@server1 zabbix]# ls
[root@server1 zabbix]# vim zabbix_server.conf
124 DBPassword=redhat #修改数据库密码
[root@server1 zabbix]# systemctl start zabbix-server
[root@server1 zabbix]# systemctl enable zabbix-server
服务开启成功后,可以ps ax
或在/var/log/zabbix/zabbix_server.log
日志文件确认。
zabbix的日志文件:
8、修改php时区:
[root@server1 zabbix]# cd /etc/httpd/
[root@server1 httpd]# cd conf.d/
[root@server1 conf.d]# vim zabbix.conf
[root@server1 conf.d]# systemctl start httpd
[root@server1 conf.d]# systemctl enable httpd
9、查看zabbix-server的端口:是10051
10、在浏览器172.25.27.1/zabbix/,进行zabbix的web界面配置
【Language】中选择Chinese,点击【Update】
点击【配置】–>【主机】,查看server的状态,可以看到zabbix监控的名称zabbix-server是自己,但是还没有安装zabbix-agent,因此安装了之后才会变绿,才可以对自己进行相关监控
可用性ZBX
表示对自己的监控还没有开启,要监控自己,首先要安装被监控的服务zabbix-agent
1、监控本机
[root@server1 conf.d]# yum install -y zabbix-agent # (因为我之前全部安装了,显示已安装)
[root@server1 conf.d]# systemctl start zabbix-agent #用来监控本机
[root@server1 conf.d]# systemctl enable zabbix-agent
[root@server1 conf.d]# netstat -antlp | grep 10050 #10050是zabbix_agentd的
可以看到已经可以监控自身了。
3、对server2和server3
进行监控,对server2和server3进行相同的操作:
[root@server3 ~]# yum install -y zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server3 ~]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@server3 zabbix]# vim zabbix_agentd.conf
98 Server=172.25.27.1
139 ServerActive=172.25.27.1
150 Hostname=server3 #自己的主机名,一定做好解析
[root@server3 zabbix]# systemctl start zabbix-agent.service
[root@server3 zabbix]# systemctl enable zabbix-agent.service
[root@server3 zabbix]# systemctl status zabbix-agent.service
[root@server3 zabbix]# netstat -antlp
server3:
4、在浏览器zabbix的web界面中(server1)添加被监控的主机server2和server3(agent)
此时发现对server2的zabbix监控ZBX
依旧是灰色的,在server2上面重新启动服务(目的是让server2去主动发现server1),在浏览器刷新一下,可以看到对server2的监控了。
先删除之前手动添加的server2,然后我们再让监控平台去自动发现server2
注释:自动发现通常是server端主动去探测某个ip范围内的被监控端,适用于大批量的监控,而且监控模板都一样
自动注册是被监控端主动去找server端,看自己想要被监控什么,去匹配什么样的模板,适合于单台主机