监控
监控系统特点
- 监控系统能够自定义监控的内容,自己通过脚本采集所需的数据
- 数据需要存入到数据库,日后对该数据进行分析计算
- 监控系统可以简易,快速的部署到服务器
- 数据可视化直观清晰
异常告警通知
- 可以定义复杂度告警逻辑,做到监控项之间的关联告警,例如程序之间的依赖检测,而不是只单独检测某一个指标
- 告警可以确认响应,让运维组内的人知道已经有人在处理告警问题
- 告警方式可以自定义,如短信,邮件,以及微信,钉钉等
- 告警内容可以自定义,能够写入一些简单的分析,便于运维人员直观了解数据,否则还得去服务器查看
- 告警后,可以预处理一些任务,如自我修复,重启,采集数据等
协同工作
- 监控系统有强大等API,提供给开发调用,其他系统调用
- 监控数据是开放性,数据结构主流,便于解析
- 监控可视化可以简易的插件使用,而非复杂的js文件
zabbix
官方文档:https://www.zabbix.com/documentation/current/zh/manual
介绍
zabbix是由Alexei Vladished 开发的一种网络监视、管理系统,基于Server-Client架构。可用于监视各种网络服务、服务器和网路机器等状态。
使用各种Database-end如MySQL,PostgreSQL,SQLite,Oracle储存资料。Server端基于C语言,Web管理端基于PHP所开发。
zabbix可以使用多种方式监视,可以只使用Simple Check不需要安装Client端,亦可基于SMTP或HTTP各种协议定制监视。
在客户端如UNIX,Windows中安装zabbix agent之后,可监视CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装Agent在监视对象中,zabbix也可以经由SNMP、TCP、ICMP、利用IPMI、SSH、telnet对目标进行监视。
zabbix自带的item足够满足普通小公司的监视需求,对于大公司也可以设定自定义的Item,自动生成报表,也有API可以和其他系统集成。
特点
- 支持自定义监控脚本,提供需要输出的值即可
- zabbix存在模板的概念,可以方便的将一组监控项进行部署
- zabbix每一个item也就是监控项,都可以看到历史记录,且web界面友好
- zabbix有强大的Trigger(触发器)定义规则,可以定义复杂的报警逻辑
- zabbix提供了ack报警确认机制
- zabbix支持邮件,短信,微信等告警
- zabbix在触发告警后,可以远程执行系统命令
- zabbix有原生的PHP绘图模块
名词
- zabbix server:服务端,收集数据,写入数据
- zabbix agent:部署在被监控的机器上,是一个进程,和zabbix server进行交互,以及负责执行命令
- Host:服务器的概念,指zabbix监控的实体,服务器,交换机等
- Hosts:主机组
- Applications:应用
- Events:事件
- Media:发送通知的通道
- Remote command:远程命令
- Template:模板
- Item:对于某一个指标的监控,称之为Items,如某台服务器的内存使用状况,就是一个Item监控项
- Trigger:触发器,定义报警的逻辑,有正常,异常,未知三个状态
- Action:当Trigger符合设定值后,zabbix指定的动作,如发送邮件
程序组件
- zabbix_server:服务端守护进程
- zabbix_agentd:agent守护进程
- zabbix_proxy:代理服务器
- zabbix_database:存储系统,mysql,pgsql
- zabbix_web:web GUI图形化界面
- zabbix_get:命令行工具,测试向agent发起数据采集请求
- zabbix_sender:命令行工具,测试向server发送数据
- zabbix_java_gateway:java网关
安装
安装要求
https://www.zabbix.com/documentation/current/zh/manual/installation/requirements
关闭防火墙
systemctl disable firewalld.service --now
配置yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
#查看目录
ls /etc/yum.repos.d
#替换为aliyun的镜像仓库
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#修改zabbix-front前端源
enabled=1
#清空缓存
yum clean all
yum makecache
服务端下载
yum install zabbix-server-mysql zabbix-agent -y
安装Software Collections
便于后续安装高版本的php,默认yum安装的php版本为5.4过低
SCL(Software Collections)可以在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包
yum install centos-release-scl -y
安装zabbix前端环境
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
安装zabbix所需的数据库,mariadb
yum install mariadb-server -y
启动并设置开机自启
systemctl enable mariadb --now
初始化数据库,设置密码
mysql_secure_installation
#登录数据库
mysql -uroot -proot
#添加数据库用户,以及zabbix所需的数据库信息
create databse zabbix character set utf8 collate utf8_bin;
#创建用户,只允许本机登录
create user zabbix@localhost itentified by 'zabbix';
#用户授权,将zabbix数据库所有权限授予zabbix用户
grant all privileges on zabbix.* to zabbix@localhost;
#刷新授权表
flush privileges;
exit;
导入数据库信息
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix zabbix -pzabbix
#查看zabbix数据库所有表
show tables;
修改zabbix配置文件
修改数据库密码
vi /etc/zabbix/zabbix_server.conf
#修改数据库密码
DBPassword=zabbix
修改zabbix的php配置文件
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#修改时区
php_value[date.timezone] = Asia/Shanghai
启动zabbix相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-fpm && systemctl enable zabbix-server zabbix-agent httpd rh-php72-fpm
访问zabbix
- http://192.168.10.133/zabbix
- 账号密码:Admin zabbix
修改语言
- 登录后在界面点击
User settings
- 点击
Lanaguage
的下拉框选择Chinese(zh_CN)
部署客户端
机器环境
- 192.168.10.134 zabbix-agent2
- 192.168.10.135 zabbix-agent2
#工作节点执行
#同步服务器时间
yum install ntpdate -y
ntpdate -u ntp.aliyun.com
#统一时区配置
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
安装zabbix-agent2
#工作节点执行
#配置yum源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all
yum makecache
#安装
yum install zabbix-agent2 -y
#查看配置文件
cat /etc/zabbix/zabbix_agent2.conf
#启动命令
ls -l /usr/sbin/zabbix_agent2
#启动客户端
systemctl enable zabbix-agent2 --now
#查看进程端口
netstat -tnlp | grep zabbix
#修改配置文件
vi /etc/zabbix/zabbix_agent2.conf
#修改为服务端ip
Server=192.168.10.133
ServerActive=192.168.10.133
#修改为当前主机名
Hostname=agent-01
#重启服务
systemctl restart zabbix-agent2
验证连通性
#调度节点执行
#安装zabbix-get
yum install zabbix-get -y
#测试向agent发起数据采集请求
zabbix_get -s '192.168.10.134' -p 10050 -k 'agent.ping'
- -s:指定ip
- -p:指定端口号
- -k:指定要为其检索值的项的key,https://www.zabbix.com/documentation/5.0/zh/manual/appendix/items/supported_by_platform
解决zabbix-server查看的乱码问题
#安装字体
yum install wqy-microhei-fonts -y
#复制并覆盖字体文件
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
添加zabbix-agent主机
- 点击左侧菜单栏配置 -> 主机
- 点击右上角创建主机
- 创建主机
- 主机名称:和工作节点
hostname
一致 - 可见的名称:
hostname
-ip - 群组:选择
Linux servers
- Interfaces:IP地址(192.168.10.134),连接到IP,端口(10050)
- 描述:…
- 最后点击添加
- 主机名称:和工作节点
- 关联模板:点击模版,在
Link new templates
中搜索Template OS Linux by Zabbix agent
,选择并添加
- 创建主机
查看监测主机
- 点击左侧菜单栏配置 -> 监测
- 点击主机
- 名称:创建主机时指定的可见名称
- 接口:ip:port
- 可用性:
ZBX
为绿色时表示正常收集信息 - 最新数据:点击即可查看服务器负载信息
- 图形:点击可查看可视化负载信息
- 点击主机