什么是Zabbix?
Zabbix是一个用于网络,操作系统和应用程序的开源监控软件,它旨在监视和跟踪各种网络服务,
服务器和其他硬件的状态。
为什么需要对各类系统运行进行监控?
当系统构建时的正常流程中,通常是不允许未被监控的系统或应用上线的,因为
来被监控的系统存在不可预知性,故障未知等不确定因素,且无法及时被发现并
排除的,这时整个架构或系统来说都是非常大的风险因患,所以我们在原则上是
要对整个的架构或系统进行监控,随时监控各个方面的指标是否正常,以提高系
统的稳定性。
Zabbix是如何实现系统系统监控的
一个完整的监控系统所需的指标:
1、采样:周期性的获取某个被检测指标的相关数据
2、存储:将采样的数据存储在指定的存储系统中,Zabbix默认是MySQL
对于数据的监控可分为两大类:
历史数据:可理解为过去某一时间点的数据
趋势数据:可理解为过去某一段时间的数据
3、展示:采集完数据后,为了使数据能更直观的展现在用户面前,可将采集的数据
进行二次处理,做成图像,Zabbix就是使用PHP程序将采集的数据通过Web Gui直观
的展示给用户。
报警:当监控的指标出现异常时需要金控能自动的发出警报信息,甚至警报后能自动完成
修复。
Zabbix支持的数据采集协议:
1、SNMP(Simple Network Managerment Protocol),这是一个非常古老的且通用的
监控协议,几乎任何设备都支持用此方式进行系统的监控。
2、Agent:在监控端安装专门的监控程序,将数据采集后通过Agent发送至Server.
3、IPMI:智能平台管理接口,可在常用的服务器上看到类似的以太网口的接口。
4、JMX: Java Managerment Exlensions
Zabbix的常用组件:
1、Zabbix Web Gui: 提供Web界面
2、Zabbix Databases:提供数据库存储功能并用于存储配置信息。以及采集到的数据。
3、Zabbix Server : 接收来自Agent采集数据的核心组件
4、Zabbix Agent :部署在被监控的主机上,用于采集本地的数据。
5、Zabbix Proxy: 当监控节点较多时,用于减轻Server压力组件,也可用于分布式监控系统
由Proxy接收数据后统一发送给Server.
Zabbix逻辑图:
Zabbix逻辑组件:
主机组(host groups) 主机(hosts) 应用(application) 监控项(items) 触发器(triggers)
事件(event) 动作(actions) : 条件(conditions) 和操作(operations) 媒介(media):发送
通知的通道,短信,邮件等。 通知(notiflcation) 远程命令(remoto command) 报警升级(
escalation) 摸版(template) 图形(graph) 屏幕(screens) 幻灯(slide show)
Zabbix实现监控的两种模式:
主动模式:由Agent主动建立TCP链接并向Server端发送请求。
被动模式:由Server建立TCP链接并向Agent发送请求。
Zabbix的安装与部署
实验环境:
server5:172.25.68.5(使用的是rhel7.3版本)作为Zabbix server
server6:172.25.68.6 (使用的是rhel7.3版本)作为Zabbix agent
1、进行mariadb软件的安装
[root@server5 test]# ls
fping-3.10-1.el7.x86_64.rpm
iksemel-1.4-2.el7.centos.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm
php-mbstring-5.4.16-42.el7.x86_64.rpm
zabbix-agent-4.0.5-1.el7.x86_64.rpm
zabbix-get-4.0.5-1.el7.x86_64.rpm
zabbix-java-gateway-4.0.5-1.el7.x86_64.rpm
zabbix-proxy-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-sender-4.0.5-1.el7.x86_64.rpm
zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm
zabbix-web-4.0.5-1.el7.noarch.rpm
zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
2、进行数据库的初始化
mysql_secure_installation ###进行数据库的初始化
3、进行用户的授权
mysql -p ###进行数据库的登陆
4、进行zabbix进行软件的安装
5、进行数据库的导入
zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -u zabbix -p zabbix ###进行数据库的导入
6、在zabbix配置文件进行密码的开启
vim /etc/zabbix/zabbix_server.conf ###进行配置文件的编辑
7、在配置文件中进行时区的修改
vim /etc/httpd/conf.d/zabbix.conf ###进行配置文件的编辑
8、进行服务的启动
systemctl start zabbix-server ###进行zabbix-server服务的启动
systemctl start zabbix-agent ###进行数据采集服务的开启
systemctl start httpd ###进行httpd服务的开启
进行浏览器的访问:
进行数据库的连接
进行安装
进行网页检测语言和密码的修改
监听主机:
1、进行软件的安装
yum isntall zabbix-agent-4.0.5-1 el7.x86_64.rpm -y ###进行软件的安装
2、进行配置文件的修改
vim /etc/zabbix/zabbix_agentd.conf ###进行配置文件的编辑
3、进行服务的启动和端口的查看
systemctl start zabbix-agent ###进行服务的启动
netstat -antlp | grep zabbix_agentd ###进行端口的查看
方法一:
使用手动进行设备主机的添加(这里我们开启了server2的agent)
进行server2主机的添加
进行模版的添加
进行网页的刷新:
方法二:
使用自动发现规则进行设备主机的添加(这里我们开启了server3的agent)
进行自动发现规则的编辑
进行动作的添加:
进行自动发现状态的查看:
进行网页的刷新:
方法三:
使用自动注册进行设备主机的添加(我们将自动发现规则进行停用)
我们将server3主机进行删除,使用server3作为自动注册的实验的主机
进行自动发现规则的停用
进行server3主机设备的删除
进行自动注册规则地添加:
进行动作地添加
在server3上进行agent服务地重启和日志地查看
systemctl restart zabbix-agent ###进行服务地重启
cat /var/log/zabbix/zabbix_agentd.log ###进行日志地查看
进行网页的刷新:
区别:
自动发现和手动添加是主动将发现的客户端,然后将客户端登记在自己的
管理群组中,缺点是zabbix server压力比较大,客户端越多,时间消耗越多.
自动注册: agent主动到zabbix server上进行报道,登记,缺点是agent可能
找不到server(配置出错).
进行脚本的编辑
vim zabbix-api ###进行脚本的编辑
chmod +x zabbix-api ###进行脚本的执行权限的添加
进行脚本的执行获取身份令牌
进行脚本的编辑实现集群的查看
vim zabbix-api ###进行脚本的编辑
进行脚本的执行实先主机设备的查看
./zabbix-api ###进行脚本的执行
进行脚本的编辑实现主机设备的删除
vim zabbix-api ###进行脚本的编辑
进行脚本的执行并在浏览器上进行zabbix主机状态的查看
进行主机的添加
进行脚本文件的编辑
进行脚本的执行和在浏览器上进行主机状态的查看
这里我们使用server2来进行nginx的安装
在server2上进行nginx的安装
这里我们使用nginx-1.16.0版本
进行软件包的解压
tar zxf nginx-1.16.0.tar.gz ###进行软件包的解压
进行相关软件依赖性的安装
yum install -y gcc pcre-devel zlib-devel ###进行软件依赖性的安装
进行软件的编译
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
###进行软件的编译
进行软件的进一步编译和安装
make && make isntall ###进行软件的进一步编译和进一步安装
进行nginx配置文件的编辑
vim /var/local/nginx/conf/nginx.conf ###进行nginx配置文件的编辑
进行服务配置文件的检查和服务的启动
/usr/local/nginx/sbin/nginx -t ###进行配置文件的检查
/usr/local/nginx/sbin/nginx ###进行服务的启动
进行zabbix监控项脚本的编辑
cp userparameter_mysql.conf userparameter_nginx.conf ###进行模版的复制
vim userparameter_nginx.conf ###进行模版的编辑
systemctl restart zabbix-agent ###进行服务的重新启动
在server1上(安装有zabbix-server的主机)进行软件的安装
yum install zabbix-get-4.0.5-1.el7.x86_64.rpm -y ###进行软件的安装
在server1上进行监控项的获取
zabbix_get -s 172.25.68.2 -p 10050 -k "nginx.accept" ###进行server2上监控项的获取
在浏览器上进行server2上nginx项目的添加
进行监控项的创建(键值要与server2中agent配置文件中的一致)
在server2上进行模版的添加
进行图形的创建(添加新建的监控项到图形中)
进行网页的刷新,进行监控nginx的查看