Zabbix 远程监控主机

目录

1、安装 Zabbix

安装客户端

服务端测试通讯

Web页面添加主机

2、监控 Nginx

自定义脚本监控 Nginx

web配置台

3、监控 MySQL

配置模版文件

配置Web界面


1、安装 Zabbix

node-12 作为zabbix的被监控端,提供mysql服务器,配置zabbix监控node-12 客户端,安装zabbix_agent比较简单,只需要开启--enable-agent。

安装客户端
# 下载zabbix6.2
wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.1.tar.gz# 安装依赖
yum -y install gcc gcc-c++ net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel mysql-devel
# 如果是本地yum源安装依赖包,需要安装zabbix_rpm.tar.gz包里的rmp包。
tar -zxvf zabbix_rpm.tar.gz
yum install -y zabbix_rpm/* --skip-broken# 创建用户
useradd -s /sbin/nologin zabbix# 安装zabbix
tar -zxvf zabbix-6.2.1.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-6.2.1/
./configure --prefix=/usr/local/zabbix  --enable-agent
make install# 添加系统软连接
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/--------------------------------------------------------------# 修改配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.1.11
ListenPort=10050
ServerActive=127.0.0.1,192.168.1.11
Hostname=192.168.1.12
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1mkdir /usr/local/etc/zabbix_agentd.conf.d#-----------------------添加启动脚本-----------------------------
# 添加zabbix启动脚本
cp /usr/local/src/zabbix-6.2.1/misc/init.d/fedora/core/* /etc/init.d/
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix      #修改zabbix安装目录chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
# 启动zabbix_agent
/etc/init.d/zabbix_agentd start
netstat -antup | grep 10050
服务端测试通讯
# 测试客户端信息收集
[root@cong11 ~]zabbix_get -s 192.168.137.112 -p10050 -k system.uname

Web页面添加主机

添加host主机:点击配置--主机--新建主机--配置主机

  • 模板:Templates -> Linux by Zabbix agent——zabbix提供多种模板共用户来选择,用户可以根据自己需求选择不同的模板提供的监控项来监控自己的主机,用户也可以自定义模板。单台主机可以选择多个模板。
  • 主机群组:Linux Servers——主机群组可以自己创建新的,也可以使用zabbix提供好的群组,主要来区分不同主机,方便管理,主机群组可以多选。
  • 接口选择:Agent——我们使用的是zabbix_agent来收集信息,所以选择agent
  • 资产记录:zabbix提供资产记录功能,可以手动填写,也可以自动生成

2、监控 Nginx
自定义脚本监控 Nginx

zabbix默认自带了很多有用的监控模板,通常对主机运行状态使用默认的模板就可以了,有时候我们需要根据实际情况自定义一些监控信息。下面就介绍一下zabbix监控nginx服务的配置过程。整个配置过程大致如下:

确定监控内容

Nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等。

# 在nginx的配置文件中,添加status配置
[root@cong11 ~] vim /usr/local/nginx/conf/nginx.conf
location /status {stub_status on;access_log off;allow 127.0.0.1;allow 192.168.1.11;deny all;
}nginx -s reload
# 测试访问
curl http://192.168.1.11/status

注意:在访问效率很高,请求很快被处理完毕的情况下,Waiting 数比较多是正常的。如果 reading + writing 数较多,则说明并发访问量很大,正在处理过程中。

编写agent端的监控脚本

编写脚本,放于/usr/local/zabbix/scripts目录下, 通过脚本获取status页面信息的关键值,zabbix server通过这些关键值才能生成数据图像。

[root@cong11 ~] mkdir /usr/local/zabbix/scripts
vim /usr/local/zabbix/scripts/ngx_status.sh#! /bin/bash
# Description:zabbix监控nginx状态
# Note:此脚本需要配置在被监控端
HOST="127.0.0.1"
PORT="80"
# 检测nginx进程是否存在
function ping {/sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {/usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}# 执行function
$1
# 测试脚本
chmod +x /usr/local/zabbix/scripts/ngx_status.sh
# 本次测试输出4
sh /usr/local/zabbix/scripts/ngx_status.sh active

配置zabbix_agentd.conf文件,定义监控脚本key

[root@cong11 ~]  vim /usr/local/zabbix/etc/zabbix_agentd.conf
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/mkdir /usr/local/zabbix/etc/zabbix_agentd.conf.d/# 定义监控参数:UserParameter=<key>,<command>
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/nginx_status.conf
UserParameter=nginx.status[*],/usr/local/zabbix/scripts/ngx_status.sh $1# 重启zabbix-agent
/etc/init.d/zabbix_agentd restart

zabbix服务端使用zabbix_get 测试获取数据

# zabbix服务端使用zabbix_get 测试获取数据
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[ping]
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[active]
zabbix_get -s 192.168.137.111 -p 10050 -k nginx.status[accepts]
web配置台

创建nginx模板:配置--模板--创建模板

给模板创建监控项

创建监控项要注意命名方式,能够见名知意,最关键的是键值,这里的键值一定要和agent端的配置文件中定义的键值一致。

创建图像:一个图像中显示多个数据的线图,创建完图像之后“应用”

关联模板:选择主机--Zabbix server--选择模板--更新

3、监控 MySQL

zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了。

配置模版文件
# 建立数据库和 zabbix 的连接信息
[root@cong12 ~] vim /usr/local/zabbix/etc/.my.cnf
[client]
host=localhost
user='root'
password='123456'# 修改zabbix_agentd 配置文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/# 复制模版
cp /usr/local/src/zabbix-6.2.1/conf/zabbix_agentd/userparameter_mysql.conf \
/usr/local/zabbix/etc/zabbix_agentd.conf.d/# 修改userparameter_mysql.conf文件:指定.my.cnf路径和mysql命令绝对路径
[root@cong12 ~]vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
UserParameter=mysql.ping[*],HOME=/usr/local/zabbix/etc /usr/bin/mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/usr/local/zabbix/etc /usr/bin/mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*],HOME=/usr/local/zabbix/etc /usr/bin/mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*],HOME=/usr/local/zabbix/etc /usrbin/mysql -h"$1" -P"$2" -sNX -e "show slave status"# 重启zabbix_agentd
/etc/init.d/zabbix_agentd restart
# 在服务器端测试:先执行数据库远程授权:
[root@cong11]zabbix_get -s 192.168.137.112 -p 10050 -k "mysql.ping[192.168.137.112,3306]"

配置Web界面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485256.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕

一、电路接法 电路接法参照江科大视频。 二、相关代码及文件 说明&#xff1a;代码采用hal库&#xff0c;通过修改江科大代码实现。仅OLED.c文件关于引脚定义作了hal库修改&#xff0c;并将宏定义OLED_W_SCL(x)、OLED_W_SDA(x)作了相关修改。 1、OLED.c void OLED_I2C_Init(voi…

Encoder-decoder 与Decoder-only 模型之间的使用区别

承接上文&#xff1a;Transformer Encoder-Decoer 结构回顾 笔者以huggingface T5 transformer 对encoder-decoder 模型进行了简单的回顾。 由于笔者最近使用decoder-only模型时发现&#xff0c;其使用细节和encoder-decoder有着非常大的区别&#xff1b;而huggingface的接口为…

golang 项目中配置gin的web框架

1.go 初始化 mod文件 go mod init gin-ranking 2.gin的crm框架 go get -u github.com/gin-gonic/gin 3.go.mod爆红解决

【汽车电子】万字详解汽车标定与XCP协议

XCP协议基础 文章目录 XCP协议基础一、引言1.1 什么是标定1.2 什么时候进行标定1.3 标定的意义 二、XCP协议简介2.1 xcp简介2.2 XCP如何加快开发过程&#xff1f;2.3 XCP的主要作用 三、XCP工作过程3.1 工作过程3.2 通讯模型3.3 测量与标定 四、XCP报文解析4.1 数据包报文格式4…

利用Ubuntu22.04启动U盘对电脑磁盘进行格式化

概要&#xff1a; 本篇演示利用Ubuntu22.04启动U盘的Try Ubuntu模式对电脑磁盘进行格式化 一、说明 1、电脑 笔者的电脑品牌是acer(宏碁/宏基) 开机按F2进入BIOS 开机按F12进入Boot Manager 2、Ubuntu22.04启动U盘 制作方法参考笔者的文章&#xff1a; Ubuntu制作Ubun…

力扣日记2.22-【回溯算法篇】47. 全排列 II

力扣日记&#xff1a;【回溯算法篇】47. 全排列 II 日期&#xff1a;2023.2.22 参考&#xff1a;代码随想录、力扣 47. 全排列 II 题目描述 难度&#xff1a;中等 给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输…

【鸿蒙 HarmonyOS 4.0】路由router

一、介绍 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。 二、页面跳转 2.1、两种跳转模式&#xff1a; router.pushUrl()&…

uniapp开发微信小程序跳转到另一个小程序中

注意&#xff1a;一开始我的云上务工模块是单独的tabbar界面&#xff0c;但是小程序跳转好像不能直接点击tabbar进行&#xff0c;所以我将这里改成了点击首页中的按钮进行跳转 点击这里进行小程序跳转 目录 基础讲解 uniapp小程序跳转的两个方法 调用说明&#xff08;半屏跳转…

Node.js中如何处理异步编程

在Node.js中&#xff0c;处理异步编程是至关重要的技能。由于Node.js的单线程执行模型&#xff0c;异步编程可以极大地提高程序的性能和响应速度。本文将介绍几种常见的异步编程处理方式&#xff0c;并附上示例代码&#xff0c;帮助您更好地理解和应用异步编程技术。 回调函数…

Linux之用户和用户组

目录 一、简介 1.1 用户账号分类 二、用户 2.1 useradd 2.2 userdel 2.3 usermod 2.4 passwd 2.5 su 2.6 登出 三、用户组 3.1 groupadd 3.2 groupdel 3.3 groupmod 3.4 newgrp 四、用户账号系统 4.1 /ect/passwd 4.2 常见的伪用户如下所示 五、思维导图 …

Cartographer框架简述

catographer框架分为前端和后端 前端包括雷达数据处理&#xff1b;位姿预测&#xff1b;扫描匹配和栅格地图更新。 后端包括后端&#xff1a;线程池任务与调度&#xff1b;向位姿图添加节点&#xff0c;计算节点的子图内约束和子图间约束&#xff08;回环检测&#xff09;&…

每日五道java面试题之spring篇(三)

目录&#xff1a; 第一题 ApplicationContext和BeanFactory有什么区别&#xff1f;第二题 Spring中的事务是如何实现的&#xff1f;第三题 Spring中什么时候Transactional会失效&#xff1f;第四题 Spring容器启动流程是怎样的&#xff1f;第五题 Spring Boot、Spring MVC 和 S…