zabbix 监控
zabbit 监控 非常成熟的监控软件。
运维人员,尽快系统服务器的状态,网站的流量,服务进程的运行状态。
保证整个集群的工作正常。7*24
zabbix是什么:
web界面提供的一种可视化监控服务软件。
分布式的方式系统监控以及网络监控,硬件监控开源的软件。
zabbix的架构:
1,c/s模式 客户端和服务端,zabbix server服务端 zabbix agent 客户端
2,通过B/S B:浏览器 S:服务端,通过浏览器开源直接访问服务器数据。
zabbix server的作用:通过一系列的组件 SNMP,zabbix,agent,ping 通过端口远程的健康客户端的数据,把数据收集到服务器进行展示,以及系统用户分析的界面(web)。
zabbix agent:就是被监控的目标机器,把需要收集的收集以及自定义的监控数据,发送给zabbix server。
zabbix的组件程序:
1,zabbix server的作用:通过一系列的组件 SNMP,zabbix,agent,ping 通过端口远程的健康客户端的数据,把数据收集到服务器进行展示,以及系统用户分析的界面(web)。
2,zabbix agent:就是被监控的目标机器,把需要收集的收集以及自定义的监控数据,发送给zabbix server。
3,zabbix_proxy: 代理服务器,是安装在监控的目标系统上的软件组件,开源代替zabbix_server收集数据,然后由代理软件传送给服务端zabbix-server减轻主服务器的压力。
4,zabbix_get:可选组件,提供命令行的工具(zabbix的命令行。)
5,zabbix_sender:可选组件,提供命令行工具,开源将自定义数据发送到zabbix服务器。对于不直接由zabbix代理监控的数据或者从脚本来的数据,比较方便的。
工作方式:
所有的监控收集数据都在主服务,主服务器来监控和告警
实验:
server 2/4
agent 2/4
部署 zabbix 服务端
zabbix-server 内存至少 2G,推荐 4G;
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server
获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
sed -i 's#Zabbix Official Repository' zabbix.repo
yum clean all && yum makecache
yum install -y zabbix-server-mysql zabbix-agent
zabbix-server-mysql:
yum install -y centos-release-scl
修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
vim zabbix.repo
......
[zabbix-frontend]
......
enabled=1 #开启安装源
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
安装 zabbix 所需的数据库
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
mysql_secure_installation
添加数据库用户,以及 zabbix 所需的数据库信息
mysql -u root -p123456
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
创建一个名为 "zabbix" 的 MySQL 数据库,字符集为 UTF-8,排序规则为 utf8_bin
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
导入数据库信息
rpm -ql zabbix-server-mysql #查询 sql 文件的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.40/create.sql.gz | mysql -uroot -p123456 zabbix
#导入 Zabbix 监控系统所需的 MySQL 数据库架构
修改 zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
修改 zabbix 的 php 配置文件
vim /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-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
解决 zabbix-server Web页面中文乱码问题
yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
server:10050 服务端的端口
server:10051 监控端(客户端)的端口
自定义的监控内容:
监控服务器的登录节点,不能超过3个
在工作中监控主要依靠脚本。
面试题:怎么监控mysql的I/O线程--zabbix
自己研究一下。
zabbix监控容器会出现假告警。监控服务器状态 监控硬件信息 内存 磁盘读写监控进程服务器。容器不行。
部署 zabbix 客户端
systemctl disable --now firewalld
setenforce 0
服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun.com
客户端配置时区,与服务器保持一致
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
设置 zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d
sed -i 's#Zabbix Official Repository' /etc/yum.repos.d/zabbix.repo
yum clean all && yum makecache
yum install -y zabbix-agent2
修改 agent2 配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.233.10 #80行,指定 zabbix 服务端的 IP 地址
ServerActive=192.168.233.10 #125行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-agent01 #136行,指定当前 zabbix 客户端的主机名
启动 zabbix-agent2
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
netstat -natp | grep zabbix
在服务端验证 zabbix-agent2 的连通性
yum install -y zabbix-get
zabbix_get -s '192.168.233.20' -p 10050 -k 'agent.ping'
1
在 Web 页面中添加 agent 主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】设置成 zbx-agent01
【可见的名称】设置成 zbx-agent01-192.168.233.20
【群组】选择 Linux server
【接口】的【IP地址】设置成 192.168.233.20
再点击上方菜单栏【模板】
【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
点击 【添加】
yum install epel-release
yum install nginx
ZBX SNMP JMX IPMI
ZBX:
含义: ZBX是Zabbix的缩写。
描述: Zabbix是一种开源的网络监控和管理工具。它允许管理员监视各种网络服务、服务器健康状态、性能统计等,并提供强大的告警系统。
SNMP:
含义: SNMP是Simple Network Management Protocol的缩写。
描述: SNMP是一种用于管理和监控网络设备的协议。它通过在设备上运行代理程序来收集和传递信息,允许网络管理员远程监控设备的性能和状态。
JMX:
含义: JMX是Java Management Extensions的缩写。
描述: JMX是Java平台上的一种管理和监控标准。它提供了一组API,使得开发人员可以在运行中的Java应用程序中监控和管理应用程序的性能和状态。
IPMI:
含义: IPMI是Intelligent Platform Management Interface的缩写。
描述: IPMI是一种用于管理服务器硬件的标准。它允许通过网络管理服务器的电源状态、温度、风扇速度等硬件信息,而无需操作系统的干预。
自定义监控内容
案列:自定义监控客户端服务器登录的人数
需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息
明确需要执行的 linux 命令
who | wc -l
创建 zabbix 的监控项配置文件,用于自定义 key
vim /etc/zabbix/zabbix_agent2.conf
268 Include=/etc/zabbix/zabbix_agent2.d/*.conf
#自定义监控项的格式如下
291 # Format: UserParameter=,
cd /etc/zabbix/zabbix_agent2.d/
vim UserParameter_login.conf
systemctl restart zabbix-agent2
在服务端验证新建的监控项
zabbix_get -s '192.168.233.20' -p 10050 -k 'login.user'
在 Web 页面创建自定义监控项模板
1.创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Login User
【可见的名称】设置成 Template Login User
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
2.创建应用集(用于管理监控项的)
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Login User
点击 【添加】
3.创建监控项
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Number of login users
【键值】设置成 login.user #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
4.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Number of login users is greater than 3
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
点击 【添加】
5.创建图形
点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Number of login users
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
点击 【添加】
6.将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
7.设置邮件报警
点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
【名称】设置成 qq_Email
【SMTP服务器】设置成 smtp.qq.com
【SMTP服务器端口】设置成 25
【SMTP HELO】设置成 qq.com
【SMTP电邮】设置成 自己的邮箱地址,例如 124481457@qq.com
【认证】选择 用户名和密码
【用户名称】设置成 自己的邮箱地址,例如 124481457@qq.com
【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码 fyguqxrazfsubajb
【描述】可自定义
点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
点击 【添加】,并测试功能
点击左边菜单栏【用户设置】-->【报警媒介】,点击【添加】
【类型】选择 qq_Email
【收件人】设置成 960027936@139.com
【当启用时】设置成 1-7,00:00-24:00
点击 【添加】
再点击 【更新】
点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】
测试邮件报警
增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警
监控nginx
步骤一:修改nginx的配置文件
cd /etc/nginx/conf.d
vim default.conf
server {
...................
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow 192.168.73.0/24;
deny all;
...........................
}
nginx -t
systemctl start nginx
[root@test2 zabbix_agent2.d]# vim test1_nginx.conf
UserParameter=nginx.status[*],/opt/test-nginx.sh $1
nginx.sh 是一个脚本文件的路径,而 $1 是脚本接受的第一个参数。
#配置监控策略
zabbix_get -s '192.168.233.20' -p 10050 -k nginx.status[check]
#在服务端测试
步骤三: 在 Web 页面创建自定义监控项模板
(1)创建模板
点击左边菜单栏【配置】中的【模板】,点击【创建模板】
【模板名称】设置成 Template Nginx Status
【可见的名称】设置成 Template Nginx Status
【群组】选择 Template
【描述】可自定义
点击 【添加】,此时就可在【链接的模板】中搜索到Template Nginx Status 了
(2)创建应用集(用于管理监控项的)
点击上方菜单栏【应用集】,点击【创建应用集】
【名称】设置成 Nginx Status
点击 【添加】
(3)创建监控项
点击上方菜单栏【监控项】,点击【创建监控项】
【名称】设置成 Nginx is running
【键值】设置成 nginx.status[check] #键值必须要与自定义的监控项配置文件中设置的保持一致
【更新间隔】设置成 10s
【历史数据保留时长】Storage period 30d #保留时间可自定义设置
点击 【添加】
(4)创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
点击上方菜单栏【触发器】,点击【创建触发器】
【名称】设置成 Nginx is down
【严重性】设置成 一般严重
【表达式】点击添加,【监控项】点击选择 Nginx is running,【功能】选择 last(),【结果】选择=0,点击 【插入】
点击 【添加】
(5)创建图形
点击上方菜单栏【图形】,点击【创建图形】
【名称】设置成 Nginx is running
【宽】、【高】可直接采用默认值
【监控项】点击添加勾选相关监控项 Nginx is running,【功能】选择 最大,其它可保持默认值
点击 【添加】
(6)将主机与模板关联起来(一个主机可以关联多个模板)
点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
点击上方菜单栏【模板】,【Link new tamplates】搜索 Nginx,选择 Template Nginx Status,点击【更新】
此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标