Linux之Zabbix分布式监控篇(二)

发布于:2025-07-20 ⋅ 阅读:(11) ⋅ 点赞:(0)

一、前置回顾

  • zabbix作为一个分布式监控工具,能帮助我们7*24*365监控硬件使用情况(cpu,内存),以及网络流量波动,从而能让运维能及时排查错误
  • zabbix由zabbix-server(10051)、zabbix-agent(10050)、zabbix-database、zabbix-proxy、zabbix-web五大组件组成,若需要进行其他客户机的监控,其他监控机则需安装zabbix-agent服务
  • zabbix部署和排错思路,并完成了客户机的添加,服务机的图表功能的使用,要在监控项的前提下添加图表、同时完成了前置nginx服务监听

二、知识补充

  • 监测nginx端口使用情况,但是无法正常访问其使用情况

解决方案:chmod u+s /usr/bin/netstat,其目的是让其他用户和root用户权限一致并有同等的权限来访问netstat命令

数据恢复正常!!!!

  • 批量监控nginx指数

  • 首先修改zabbix_agentd.conf配置文件
## $1作为环境输入(process,port,word)
UserParameter=check_nginx_[*],/data/sh/check_nginx.sh $1

# UserParameter=check_nginx_process,ps -ef | grep nginx | grep -v grep | wc -l
# UserParameter=check_nginx_port,netstat -tnlp | grep 80  | wc -l
# UserParameter=check_nginx_word,curl -s "http://10.0.0.6/index.html" | grep "Welcome" | wc -                                                                                                                                                                                                                                                                                                 
  • 完成check_nginx脚本的编写=====>修改监控项的键值
#!/bin/bash
function process(){
     ps -ef | grep nginx | grep -v grep |grep -v check_nginx |wc -l
}
function port(){
     netstat -tnlp | grep 80  | wc -l
}
function word(){
     curl -s "http://10.0.0.6/index.html" | grep "Welcome" | wc -l
}

$1

  • 优化nginx运行状态散乱情况

添加一个新的图标,将监控项全部加入图表

测试效果

  • 监控windows系统

1.在window上部署zabbix_agentd环境

2.windows安装zabbix_agentd监控

3.完成了windows的zabbix_agentd 配置后添加zabbix主机

添加完成后即可监控主机情况了

三、zabbix实现自动发现和注册

自动发现

服务端主动扫描-----发起监控+配置

通过zabbix_discover读取Rule规则,然后基于ICMP探测方式去扫描网段,若机器IP存活的话将其加入自动发现列表

完成自动发现规则的创建

长时间未检测到主机机器,经过查询日志发现缺少fping工具

yum -y install fping

出现了权限问题无法访问

chmod +s /usr/sbin/fping

访问过慢可以增加进程数

发现需要监控的设备

配置发现动作

配置动作

配置操作

重启zabbix服务

 /etc/init.d/zabbix_server restart

/etc/init.d/zabbix_agentd restart

若已经监控到发现机器之后,一定需要修改其他zabbix_agentd机器配置情况,就可直接以查找到被注册发现的机器了

 

自动注册

客户端提前进行Agent 配置<--------->上报监控

  • 创建自动注册动作

  • 创建触发条件

  • 配置动作信息

  • 完成注册发现

四、发送邮件告警

设置邮件告警

【场景】:假如Nginx宕机了,如何进行监控告警

  • 针对部署Nginx机器创建触发器

  • Nginx触发告警设置

  • 检查是否能正常告警

实现邮件转发

  • 找到媒介模块

  • 进行Email媒介相关配置

使用163邮箱进行发送

填写邮箱密码

填写SMTP服务器地址:  smtp.163.com

选择接收用户

创建接收用户

创建触发器动作

配置触发告警度条件------动作

配置该动作条件满足后执行的操作-------操作

测试进行邮件发送

解决方案:安装curl开发库包:yum -y install curl-devel,并重新进行zabbix环境的编译

完成环境的重新编译(给server端安装插件)

./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-libcurl

自定义邮件告警模板

重新编辑触发器模板(恢复和操作时都可设置)

填写告警模板

名称:Action-Email
默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

检查告警模板生效

检查触发日志

测试微信告警实战

注册企业微信

创建zabbix报警应用

企业ID

wwb790ba1d960b0da3

确定其AgentId、Secret、CorpID(企业ID)

配置可信IP

获取微信报警工具

修改微信告警脚本

下载报警工具并解压微信接口 : wget http://dl.cactifans.org/tools/zabbix_weixin.x86_64.tar.gz

通过脚本发送邮箱(先修改配置文件)

 

拷贝配置文件到/etc/目录下

cp weixincfg.json /etc/
使用微信脚本发送即可【前提要绑定好IP---->username 即发送的联系人】

./weixin username hello welcome to my world

拷贝脚本至zabbix_server目录下

## 添加至zabbix服务中
mkdir  -p /usr/local/zabbix/alertscripts
cd  /usr/local/zabbix/alertscripts
mv weixin /usr/local/zabbix/alertscripts/
chmod o+x weixin

修改zabbix-servre配置文件

加入配置信息:AlertScriptsPath=/usr/local/zabbix/alertscripts

重启脚本:/etc/init.d/zabbix_server restart

创建新的告警媒介

给用户添加告警媒介

配置触发器动作

完成以上配置后企业微信就能收到告警信息了

五、zabbix_proxy代理节点的配置

  • 准备一个zabbix_proxy代理服务器

./configure --prefix=/usr/local/zabbix/ --enable-proxy --enable-agent --with-mysql --with-libcurl

  • 编译环境需准备工具

yum install curl-devel pre-devel gcc make

  • 创建zabbix_server数据库及用户
## 在zabbix-srver机器上配置

## 创建数据库及用户
create database zabbix_proxy character set utf8 collate utf8_bin;
create user zabbix_proxy@'%' identified by 'aaaAAA111.';
grant all privileges on zabbix_proxy.* to zabbix_proxy@'%';
alter user 'zabbix_proxy'@'%' identified with mysql_native_password by 'aaaAAA111.';
flush privileges;


## 导入sql表信息
cd /root/zabbix-6.0.32/database/mysql/
mysql -uroot -p zabbix_proxy < schema.sql 

  • 修改zabbix_proxy配置文件

加入DBHost信息:DBHost=10.0.0.6

重启zabbix_proxy服务

/usr/local/zabbix/sbin/zabbix_proxy
 

创建用户

useradd zabbix

  • 检查服务进程

日志运行情况分析

  • 添加代理

填写代理信息

proxy程序已经正常启动

  • 给监测机器添加代理机器

  • 修改被代理机器的agentd配置文件


测试结果如下


网站公告

今日签到

点亮在社区的每一天
去签到