文章目录
Zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。功能强大,成熟可靠,使用者众多。
官方网站: https://www.zabbix.com/
为什么需要监控
现在摄像头遍布大街小巷,包括汽车上的行车记录仪,当发生了什么事故时你可能第一直觉就是“调监控”来了解事故的前因后果。监控面前事实胜于雄辩!
在运维行业也是“无监控,不运维”,监控俗称“第三只眼”。没有监控,什么基础运维,业务运维都是“瞎子”,你不能实时掌握服务器的各种资源和你搭建的服务的各种使用数据指标。没有数据监控你就可能成为背锅侠。
监控功能
1.在需要的时刻,提前预警即将出现的问题,避免故障发生;
2.实时监控系统和业务,当出问题之后,通过发出告警,提醒相关人员,快速找到问题的根源从而及时处理问题;
3.可以实现网站,应用或者服务器的故障自愈,保证高可用性;
4.以图形或易于观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势。
监控什么
硬件监控:
通过远程控制卡: DeLL的iDRAC,HP的ILO和IBM的IMM等
使用IPMI来完成物理设备的监控工作。通常必须要监控包括温度、硬盘故障等
路由器,交换机(端口,光衰,日志),打印机等
系统监控:
cpu,内存,硬盘使用率,硬盘IO,系统负载,进程数
服务监控:
nginx, apache, php-fpm, mysql, memcache, redis, tomcat, JVM, TCP连接数等
性能监控:
网站性能,服务器性能,数据库性能,存储性能
日志监控:
系统会产生系统日志,应用程序会有应用的访问日志、错误日志,服务有运行日志等,
可以使用ELK来进行日志监控
安全监控:
用户登录数,passwd文件变化,本地所有文件改动
Nginx+Lua编写一个WAF通过kibana可以图形化的展示不同的攻击类型的统计。
网络监控:
IP端口,URL,DB,ping包,IDC带宽网络流量,网络流出流出速率,网络入流量,网络出
流量.网络使用率,SMTP.POP3
Zabbix架构
zabbix中文使用手册:https://www.zabbix.com/documentation/6.0/zh/manual
Zabbix server
Zabbix server 是整个 Zabbix 软件的核心程序。
Zabbix Server负责执行数据的主动轮询和被动获取,计算触发器条件,向用户发送通知。它是Zabbix Agent 和 Proxy 报告系统可用性和完整性数据的核心组件。Server自身可以通过简单服务远程检查网络服务(如Web服务器和邮件服务器)。
Zabbix Server是所有配置、统计和操作数据的中央存储中心,也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。
基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。
Zabbix agent
Zabbix agent 部署在被监控目标上,以主动监控本地资源和应用程序(硬盘、内存、处理器统计信息等)。
Zabbix agent 收集本地的操作信息并将数据报告给 Zabbix server 用于进一步处理。一旦出现异常 (例如硬盘空间已满或者有崩溃的服务进程),Zabbix server 会主动警告管理员指定机器上的异常。
Zabbix agents 的极高效率缘于它可以利用本地系统调用来完成统计数据的采集。
Zabbix proxy
zabbix作为一个分布式监控系统(分布式监控解决方案),支持通过代理(proxy)收集zabbix agent的监控数据,然后由zabbix proxy再把数据发送给zabbix server,也就是zabbix proxy可以代替zabbix server收集监控数据,然后把数据汇报给zabbix server,所以zabbix proxy可以在一定程度上分担了zabbixserver的数据收集压力,从而降低了数据的采集时间、也相应的增加了zabbix server的监控能力。
部署Zabbix proxy 是可选的,但可能非常有利于分担单个 Zabbix server 的负载。 如果由代理采集数据,则 Zabbix server 上会减少 CPU 和磁盘 I/O 的开销。
Zabbix proxy 是无需本地管理员即可集中监控远程位置、分支机构和网络的理想解决方案。
Zabbix proxy 需要使用独立的数据库。
Zabbix Server的安装
ZabbixLTS(长期支持)版本没有任何额外的或隐藏的消费成本。Zabbix是一个100%开源软件,每个人都可以下载使用。
Zabbix LTS特点:
1.支持期限更长,例如:为潜在的安全问题及bug迭代更新
2.令人期待的高质量更新以及全新的功能点
3.快速更新,可适用于多变的复杂环境
4.在版本升级方面,更容易规划管理
官方安装帮助文档:https://www.zabbix.com/download
安装脚本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2022-06-22
#FileName: install_zabbix5.0_for_ubuntu20.04.sh
#URL: http://www.wangxiaochun.com
#Description: The test script
#Copyright (C): 2022 All rights reserved
#********************************************************************
wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
dpkg -i zabbix-release_5.0-1+focal_all.deb
sed -i.bak 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#' /etc/apt/sources.list.d/zabbix.list
apt update
apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent2
apt -y install mysql-server
cat << EOF | mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by '123456';
grant all privileges on zabbix.* to zabbix@localhost;
EOF
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p123456 zabbix
sed -i.bak '/# DBPassword/a DBPassword=123456' /etc/zabbix/zabbix_server.conf
sed -i.bak '/^server/a\ listen 80;\n server_name zabbix.lei.org;' /etc/zabbix/nginx.conf
sed -i.bak '/date.timezone/c php_value[date.timezone] = Asia/Shanghai' /etc/zabbix/php-fpm.conf
systemctl disable --now apache2
systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpm
systemctl enable zabbix-server
安装完成后直接使用脚本里的域名打开zabbix
zabbix首页
登录时遇到了问题,就是我windows的ip被拒绝访问我ubuntu192.168.10.148的zabbix的mysql,于是我设置了允许了mysql的用户和ip
update user set host = '%' where user = 'root';
update user set host = '%' where user = 'zabbix';
#将数据库里面的“user”表里面“host”的“localhost”改为“%”。“%”是允许所有远程都允许远程连接连接,
授权法:将zabbix用户权限改为:ALL PRIVILEGES,前面的是用户名,后面的是密码。
GRANT ALL PRIVILEGES ON . TO ‘zabbix’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES; #刷新权限
Query OK, 0 rows affected (0.00 sec)
Zabbix Agent的安装
Zabbix Agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 访问数据库在前端进行展现和绘图。
Zabbix Agent安装脚本
#!/bin/bash
#
#********************************************************************
#Author: wangxiaochun
#Date: 2021-01-06
#FileName: install_zabbix_agent2_5.0.sh
#URL: http://www.wangxiaochun.com
#Descript