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配置文件


测试结果如下

相关推荐
运维栈记22 分钟前
CPython的全局解释器锁-GIL即将成为历史
java·开发语言·数据库
未来并未来31 分钟前
深入理解 Redis 集群化看门狗机制:原理、实践与风险
数据库·redis·缓存
yBmZlQzJ38 分钟前
第5天 | openGauss中一个用户可以访问多个数据库
数据库·opengauss
lilyssh1 小时前
在分布式系统中,如何保证缓存与数据库的数据一致性?
数据库·缓存
智象科技2 小时前
智象科技赋能金融、证券行业 IT 运维
大数据·运维·网络·数据库·科技·金融·智能运维
best_virtuoso3 小时前
消息队列 2.RabbitMQ
分布式·rabbitmq
WannaRunning3 小时前
可靠消息最终一致性分布式事务解决方案
分布式
缘来如此҉3 小时前
Mysql数据库——增删改查CRUD
数据库·mysql·oracle
apihz3 小时前
域名WHOIS信息查询免费API使用指南
android·开发语言·数据库·网络协议·tcp/ip
gwcgwcjava3 小时前
[时序数据库-iotdb]时序数据库iotdb的安装部署
数据库·时序数据库·iotdb