一、前置回顾
- 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配置文件
测试结果如下