前言
本文讲述了监控的概念和zabbix
一、监控概述
对服务的管理,不能仅限于可用性。
还需要服务可以安全、稳定、高效地运行。
监控的目的:早发现、早治疗。
被监控的资源类型:
公开数据:对外开放的,不需要认证即可获取的数据
私有数据:对外不开放,需要认证、权限才能获得的数据
二、监控命令
uptime可以查看系统已经运行了多久。最后的3个数字分别是CPU最近1分钟、5分钟、15分钟的平均负载。平均负载的值,不应该大于总核心数。
free -h # 主要用于查看内存
swapon -s # 查看swap空间
df -h # 查看硬盘使用情况
ping -c2 www.baidu.com # 发2个包,测试网络
三、zabbix
实施监控的几个方面:
数据采集:使用agent(可安装软件的系统上)、SNMP(简单网络管理协议,用于网络设备的数据采集)
数据存储:使用mysql数据库
数据展示:通过web页面
zabbix通过在远程主机上安装agent进行数据采集,存储到mysql数据库,通过web页面进行展示。
安装zabbix6.0
安装说明:https://www.zabbix.com/download?zabbix=6.0&os_distribution=rocky_linux&os_version=8&components=server_frontend_agent&db=mysql&ws=nginx
中文手册:https://www.zabbix.com/documentation/6.0/zh
主机清单:
主机名 | ip |
---|---|
zabbixserver | 192.168.88.5/24 |
web1 | 192.168.88.100/24 |
web2 | 192.168.88.200/24 |
在zabbix上安装:
zabbix-server-mysql
zabbix-web-mysql
zabbix-nginx-conf
zabbix-sql-scripts
zabbix-selinux-policy
zabbix-agent
mysql-server
langpacks-zh_CN
zabbixserver:
for i in `cat a.txt` ; do yum -y install $i; done
启动mysqld服务
for i in `cat a.txt` ; do yum -y install $i; done
在zabbix上创建连接数据库的用户
mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
# 在binlog日志开启的情况下,打开函数生成器
mysql> set global log_bin_trust_function_creators = 1;
mysql> create user zabbix@localhost identified by 'zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
# 登陆
mysql -uzabbix -pzabbix -hlocalhost zabbix
在数据库创表导数据
cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
gzip -d server.sql.gz
mysql -uzabbix -pzabbix zabbix < server.sql
配置zabbix_server
# vim +129 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
###
配置zabbix_agent
# vim /etc/zabbix/zabbix_agentd.conf
182 Hostname=zabbixserver
###
配置nginx展示zabbix
#vim /etc/nginx/conf.d/zabbix.conf
# 打开第2、3行的注释,结果如下所示:
server {
listen 8080;
server_name example.com;
...
启动相关服务:
zabbix-server
zabbix-agent
nginx
php-fpm
配置zabbixweb,填写数据库账密,选择上海时区,然后通过Admin,zabbix登陆网页
配置zabbix监控web1服务器
在web1上安装zabbix-agent
修改配置文件
# vim /etc/zabbix/zabbix_agentd.conf
117 Server=127.0.0.1,192.168.88.5
182 Hostname=web1
###
起服务
systemctl start zabbix-agent.service
在web网页添加对web1的监控
主机:安装了agent,被监控的主机
主机组:根据需求,将多台主机加入到一个主机组中,方便管理。系统默认已经创建了一些主机组。
模板:是监控项的集合。将模板应用到主机,主机就可以直接拥有模板中的所有监控项。系统中默认已经创建了一些模板。
常用监控指标:
Space utilization:以百分比显示的磁盘利用率
Used space:已用磁盘空间
Available memory:可用内存
CPU idle time:CPU空闲时间。不宜过低。
Load average (1m avg)、Load average (5m avg)、Load average (15m avg):CPU1分钟、5分钟、15分钟的平均负载。这个值不应长期大于核心数。
Interface eth0: Bits received:网卡接收到的数据量
Interface eth0: Bits sent:网卡发送的数据量
Number of processes:系统运行的进程数
Number of logged in users:已登陆的用户数
自定义监控项
在被控端创建key。被控端被监控的内容叫作key,可以理解为它就是一个变量名,具体的名字自己决定。
在web页面中创建监控项。监控项对应key值。
在被控端创建key:
创建key的语法
UserParameter=自定义key值,命令
创建自定义配置文件。文件名自定义。
#vim /etc/zabbix/zabbix_agentd.d/usercnt.conf
UserParameter=usercnt,sed -n '$=' /etc/passwd
###
systemctl restart zabbix-agent.service
验证自定义监控项
两台主机(zabbixserver web1)都要安装:
yum install -y zabbix-get
# 获取监控项的值
web1:
zabbix_get -s 127.0.0.1 -k usercnt
zabbixserver:
zabbix_get -s 192.168.88.100 -k usercnt
创建模板,应用到主机