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

一、前置回顾

  • 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配置文件
bash 复制代码
## $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脚本的编写=====>修改监控项的键值
bash 复制代码
#!/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目录下

bash 复制代码
## 添加至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数据库及用户
sql 复制代码
## 在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配置文件


测试结果如下

相关推荐
倔强的石头_13 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
不做菜鸟的网工4 天前
Zabbix收集H3C交换机实时配置命令 「SNMP TRAP」
zabbix
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
肖祥4 天前
docker安装zabbix7.4
zabbix
加号34 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏4 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker