CentOS-7部署安装Zabbix 3.0

  • 实验目的:

  • 部署Zabbix 3.0

  • 配置邮件告警功能,配置OS自动发现与自动添加功能

  • 配置action对发现的主机自动监控并邮件告警

  • 配置action对发现的主机自动监控并实现钉钉机器人告警

部署安装Zabbix 3.0:

  • 配置"主机名和hosts解析"

HOSTNAME=zabbix
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash		#触发bash;主机名已改变

在这里插入图片描述

  • 安装MySQL(CentOS-7中更名为 mariadb )

yum -y install mariadb-server mariadb

在这里插入图片描述

systemctl start mariadb		#启动服务
systemctl enable mariadb	#加入系统服务,开机自启动

在这里插入图片描述

cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el7.noarch.rpm

在这里插入图片描述

  • 安装一些需要用到的 zabbix 软件包
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

在这里插入图片描述

  • 安装zabbix-get软件包,方便后面通过执行命令获取监控信息
yum install -y zabbix-get-3.0.28-1.el7.x86_64

在这里插入图片描述

  • 补 充 : ( z a b b i x 的 一 些 包 名 以 及 用 途 ) \color{red}{补充:(zabbix的一些包名以及用途)} (zabbix)
  1. zabbix-server-mysql-3.4.6-1.el7.x86_64 (zabbix server主安装程序)
  2. zabbix-agent-3.4.6-1.el7.x86_64 (zabbix agent 主安装程序)
  3. zabbix-web-3.4.6-1.el7.noarch(zabbix web安装程序)
  4. zabbix-get-3.4.6-1.el7.x86_64.rpm (zabbix server安装程序,用于获取监控数据)
  5. zabbix-web-mysql-3.4.6-1.el7.noarch.rpm (zabbix web连接数据库的安装程序)
  6. zabbix-release-3.4.2-1.el7.noarch.rpm (生成zabbix yum源配置文件)
  7. zabbix-sender-3.4.6-1.el7.x86_64.rpm (zabbix agent安装程序,用于发送监控数据)

接着重点说下两个包(zabbix-get和zabbix-sender):

  • zabbix-get (在server端安装)
  • zabbix-sender(在agent端安装)
  • zabbix-get是安装在zabbix server端的,用于和zabbix agent端通信,用于从agent端主动拉取数据到server端;
  • zabbix-sender是安装在zabbix agent端,用于和zabbix server端通信,用于主动把agent端的数据推送给server端。
rpm -qa |grep zabbix	#查看已经安装的Zabbix程序包

在这里插入图片描述

Mysql建库,导入zabbix库与表

mysql
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix		# 导入数据库脚本,生成数据库环境并授权
  • Zcat 命令:
    “Zcat” 是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。 它将压缩文件扩展为标准输出,使您可以查看其内容。 另外,zcat与运行gunzip -c命令的结果完全相同。
    在这里插入图片描述

修改Zabix主配置文件,进行启动

#将DBPassword复制一行进行修改
sed -i 's/# DBPassword=.*/&\nDBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
#为Zabbix前端配置PHP,更改时区
sed -i 's|# \(php_value date.timezone\) Europe/Riga|\1 Asia/Shanghai|g' /etc/httpd/conf.d/zabbix.conf
#重启服务
systemctl restart zabbix-server zabbix-agent httpd
#加入系统服务,开机自启动
systemctl enable zabbix-server zabbix-agent httpd

在这里插入图片描述

  • 网页访问: http://192.168.137.235/zabbix
    在这里插入图片描述
  • 此处可以看到上面我们修改的时区 date 值,已经生效
    在这里插入图片描述
  • 填写数据库的Password:zabbix
    在这里插入图片描述
  • 列出 Zabbix 服务的详细信息,默认下一步
    在这里插入图片描述
  • 安装前的总结,默认下一步
    在这里插入图片描述
  • 安装结束,点击完成登陆Web管理页面即可
    在这里插入图片描述
  • 默认用户名和密码 Admin/zabbix
    在这里插入图片描述
  • 更改界面语言为中文(根据个人喜好,非必做)
    在这里插入图片描述
  • 更改为 Chinese(zh_Cn)中文,Update确认更新
    在这里插入图片描述

配置邮件告警功能:

  • 管理 – 报警媒介类型 – Email(邮件)
    在这里插入图片描述

  • 新增用于发送告警邮件的 163 邮箱
    在这里插入图片描述

  • 更改管理员(Admin)的报警媒介
    管理 – 用户 – Admin

    在这里插入图片描述

  • 添加一个报警媒介
    在这里插入图片描述

  • 根据需求,自行设定调整
    在这里插入图片描述

  • 更新,完成添加
    在这里插入图片描述

配置自动发现功能并测试:

  • 新开一台虚拟机,并安装配置 zabbix 客户端
# 主机名和hosts解析部署
HOSTNAME=zabbix-test
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts
bash		#触发bash;主机名已改变

在这里插入图片描述

# 将 Zabbix 服务端添加到 hosts 解析文件中(方便后面配置文件指向服务端地址)
echo "192.168.137.235 zabbix_server">>/etc/hosts

在这里插入图片描述

# 使用官方yum源安装配置Zabbix agent
cd /usr/local/src/
wget https://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
rpm -ivh /usr/local/src/zabbix-release-3.0-1.el6.noarch.rpm

在这里插入图片描述

# 安装客户端
yum -y install zabbix-agent

在这里插入图片描述

# 修改客户端配置文件 zabbix_agentd.conf
cd /etc/zabbix/
sed -i 's/^Server=127.0.0.1/Server=zabbix_server/g' zabbix_agentd.conf
sed -i 's/^ServerActive=127.0.0.1/ServerActive=zabbix_server:10051/g' zabbix_agentd.conf
sed -i "s/^\(Hostname=\).*/\1$(hostname)/g" zabbix_agentd.conf
# 在当前系统级别开启 zabbix-agent 服务,并启动客户端(便于实现自动发现)
chkconfig zabbix-agent on
/etc/init.d/zabbix-agent start

在这里插入图片描述

  • 网页添加自动发现功能:
    配置 – 自动发现 – 创建发现规则

    在这里插入图片描述
  • 添加自动发现规则
    在这里插入图片描述
  • 状态已启用
    在这里插入图片描述
  • 检测中 – 自动发现
    可以查看到客户端已经连接上来,自动发现 完成

    在这里插入图片描述
  • 补 充 ( 可 选 的 操 作 ) : − − 创 建 自 动 发 现 A c t i o n ( 动 作 ) − − 实 现 自 动 添 加 或 者 发 送 邮 件 通 知 ) \color{red}{补充(可选的操作):-- 创建自动发现Action(动作) -- 实现自动添加或者发送邮件通知)} ()Action())
    • 首先创建一个主机群组,方便后面自动添加发现主机到群组
      在这里插入图片描述
    • 配置 – 动作 – 事件源(自动发现) – 创建动作 – 自动添加主机后发送通知邮件
      在这里插入图片描述
    • 创建自动发现动作
      配置动作选项卡
      在这里插入图片描述
    • 配置条件选项卡
      在这里插入图片描述
    • 配置操作选项卡 – 发送邮件
      在这里插入图片描述
    • 查看自动发现动作Action列表
      在这里插入图片描述
    • 在事件中我们可以看到自动发现触发的事件
      在这里插入图片描述
    • 客户端连接断开都会收到邮件
      在这里插入图片描述

创建主机及主机组:

  • 配置 – 主机 – 创建主机
    在这里插入图片描述
  • 添加第一个选项卡的内容,其余几个选项卡暂时不进行设置
    在这里插入图片描述
  • 查看主机组,已经生成刚刚新建的主机组,并且 zabbix-agent 已经添加到此主机组中
    在这里插入图片描述

配置监控项(item):

在这里插入图片描述

  • 新建监控项
    在这里插入图片描述
  • 配置添加CPU监控项

system.cpu.switches:上下文的数量进行切换。它返回一个整数值。

  • 服务端执行命令获取客户端CPU上下文的数量进行切换的整数值
zabbix_get -s 192.168.137.137 -k "system.cpu.switches"

在这里插入图片描述

  • 配置监控项获取
    在这里插入图片描述
  • 再次查看 zabbix-agent 的监控项
    在这里插入图片描述
  • 查看趋势图走势
    在这里插入图片描述
  • 配置添加网卡监控项
net.if.in[if,<mode>]	网络接口上传流量统计;返回 整数。
[if,<mode>]	带中括号的Key表示能接受参数的key
if 指定网卡接口名称;<mode> 指定具体需要监控模式的数据
  • 补充:新增自定义key方式
要想使用自定义key,需要更改agent端配置文件/etc/zabbix/zabbix-agentd.conf
UserParameter=<key>,<command> -- 不接收参数
UserParameter=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo
UserParameter=<key[*]>,<command>$1...$9 -- 接收参数
UserParameter=system.memory.usage[*],awk '/^$1/{print $$2}' /proc/meminfo
第一个$1是前system.memory.usage[*]的所有输出结果;$$2是通过awk过滤出第二行或列的值。

示 例 : \color{red}{示例:}

找到UserParameters,添加UserParametes=system.memory.free,awk '/^MemFree/{print $2}' /proc/meminfo(自定义的key,需注意不要与内建key重名) --监控空闲内存的值
配置完成需要重启服务:systemctl restart zabbix-agent.service
服务端通过命令查看客户端空先内存:zabbix_get -s 192.168.137.139 -k "system.memory.free"

在这里插入图片描述

  • 服务端执行命令获取客户端网络接口上传流量统计的整数值
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,packets]"
zabbix_get -s 192.168.137.137 -k "net.if.in[eth0,bytes]"

在这里插入图片描述

  • 在客户端执行 ifconfig 命令查看数据从哪里来,是否一致
    在这里插入图片描述
  • 配置监控项获取并保存(更新)
    在这里插入图片描述
  • 控项的最下端除了保存(更新)还支持克隆选项,可以克隆一个监控项并进行配置
    在这里插入图片描述
  • 克隆一个监控项,添加监控为: lnboud Bytes – 入站字节数
    只修改键值和名称就行

    在这里插入图片描述
  • 继续克隆添加 出站报文数及出站字节数
    出站报文数

    在这里插入图片描述
  • 出站字节数
    在这里插入图片描述
  • 保存查看新增监控项
    在这里插入图片描述
  • 依旧可以查看到监控数据的走势
    在这里插入图片描述

配置触发器(Trigger):

  • 配置 – 主机 – 相应主机/主机组 – 触发器 – 选择对应的群主与主机 – 创建触发器
    在这里插入图片描述
  • 新建触发器 lnboud Packets – 入站数报文数 平均每秒超过100触发一个事件Event(警报)
    在这里插入图片描述
  • 选择对应的监控项
    在这里插入图片描述
  • 选择 入站数报文数
    在这里插入图片描述
  • 配置触发器表达式
    在这里插入图片描述
  • 最后配置,进行添加

{zabbix-agent:net.if.in[eth0,packets].last(#1)}>100
在这里插入图片描述

  • 查看触发器列表
    在这里插入图片描述
  • 查看监控项走势
    在这里插入图片描述
  • 查看关联的触发器,及监控报文数的大小
    在这里插入图片描述
  • 回到触发器,讲数值改为 “5” (100定义的太大了) 再进行观察
    查看异常事件(3种方法)

    在这里插入图片描述
    • 第一种:过滤出对应主机的触发器
      在这里插入图片描述
    • 第二种,查看对应主机的事件
      在这里插入图片描述
    • 第三种,查看仪表板的对应系统状态
      在这里插入图片描述

配置动作 – Actions并配置邮件告警:

  • 配置 – 动作 – 触发器(创建动作)
    在这里插入图片描述
  • 配置动作
    在这里插入图片描述
  • 配置条件
    在这里插入图片描述
  • 配置操作 – 邮件发送消息
    在这里插入图片描述
  • 查看动作列表
    在这里插入图片描述
  • 查看是否收到邮件
    在这里插入图片描述

∗ ∗ 总 结 : ∗ ∗ \color{red}{**总结:**}
客户端连接服务端 – 配置监控项 – 配置触发器 – 执行动作 – 收到告警
∗ ∗ 补 充 : ∗ ∗ \color{red}{**补充:**}
- 动作选项卡配置详解
在这里插入图片描述
- 条件选项卡配置详解
在这里插入图片描述
- 操作选项卡配置详解
在这里插入图片描述
- 动作操作配置详解
- 发送消息
在这里插入图片描述
- 执行的远程命令
在这里插入图片描述

借助脚本尝试着恢复故障演练:

  • 安装httpd服务:

客户端安装 Httpd 服务并启动,监听端口80;
服务端监控此服务(端口),如果探测不到,执行“重启/启动”操作。
探测到状态为“OK”;否则为“Problem”

# 客户端安装httpd服务
 yum install -y  httpd

在这里插入图片描述

# 客户端启动 httpd 服务并查看进程及端口
systemctl start httpd.service		#启动服务
ps -ef |grep httpd				#查看服务进程		
ss -tnl						#查看启用端口

在这里插入图片描述

  • zabbix-agent主机添加监控项(items):

在这里插入图片描述

  • 查看监控项,已添加
    在这里插入图片描述
  • 查看检测数据
    在这里插入图片描述
  • 查看检测趋势
    在这里插入图片描述
  • zabbix-agent主机添加触发器(Triggers):
  • 新建触发器

{zabbix-agent:net.tcp.listen[80].last(#1)}=0
在这里插入图片描述

  • 选择表达式
    在这里插入图片描述
  • 查看触发器列表
    在这里插入图片描述
停止 httpd 服务
systemctl stop httpd.service

在这里插入图片描述

  • 再次查看监控趋势
    在这里插入图片描述
启动 httpd服务,查看事件
systemctl start httpd.service
状态由:OK -- Problem -- OK

在这里插入图片描述

  • zabbix-agent主机添加动作(Actions):
    • 配置"动作"选项卡
      在这里插入图片描述
    • 配置"条件"选项卡
      在这里插入图片描述
    • 配置"操作"选项卡
      • 配置第一步
        在这里插入图片描述
      • 配置第二步
        在这里插入图片描述

custom script(自定义脚本)实现的前提:
在agent端配置:
1、zabbix拥有执行相应脚本的权限;
编辑/etc/sudoers文件,添加:zabbix ALL=(ALL) NOPASSWD:ALL
注释如下行:Defaults requlretty
2、agent进程要允许执行远程命令,编辑/etc/zabbix/zabbix-agentd.conf文
件,设置 EnableRemoteCommands=1;重启服务生效

  • 修改zabbix-agent配置文件:
visudo		#为zabbix用户赋予sudo权限,如果 /etc/sudoers文件中有Defaults requiretty这一行需要注释,表明远程执行命令不需要开启终端

在这里插入图片描述

systemctl restart zabbix-agent.service		#重启zabbix-agent客户端服务

在这里插入图片描述

  • 配置第三步
    在这里插入图片描述
  • 查看动作Action列表
    在这里插入图片描述
  • 关闭httpd服务,触发动作
systemctl stop httpd.service		#停止httpd服务
ps -ef |grep httpd				#查看服务进程		
ss -tnl						#查看启用端口

在这里插入图片描述

  • 查看状态趋势变化
    在这里插入图片描述
  • 查看事件,发现服务down机时间非常短
    在这里插入图片描述
  • 根据日志级别,执行的动作是会显示在 /var/log/zabbix/zabbix_server.log 中
  • 修 改 h t t p d 服 务 启 动 端 口 号 , 验 证 是 否 会 继 续 执 行 后 面 几 步 ( 问 题 升 级 ) \color{red}{修改httpd服务启动端口号,验证是否会继续执行后面几步(问题升级)} httpd
grep Listen /etc/httpd/conf/httpd.conf			#查看httpd占用端口号
sed -i 's/80/8080/g' /etc/httpd/conf/httpd.conf		#修改监听端口Listen 80为8080
grep Listen /etc/httpd/conf/httpd.conf			#查看httpd占用端口号

在这里插入图片描述

ss -tnl						#查看当前占用端口
systemctl restart httpd.service	#重启httpd服务
ss -tnl						#查看当前占用端口

在这里插入图片描述

  • 查看最新数据,数据趋势
    在这里插入图片描述

  • 等待几分钟,查看事件执行状态
    在这里插入图片描述

  • 查看,邮件已送达
    在这里插入图片描述

  • 修改回80 端口号重启服务,查看邮件
    在这里插入图片描述

添加报警邮件的媒介类型–采用脚本(script):

  • 新增报警媒介类型
    在这里插入图片描述
    s c r i p t − − 脚 本 在 z a b b i x 服 务 端 存 放 位 置 : \color{red}{script -- 脚本在zabbix服务端存放位置:} scriptzabbix
位于server主机的alertscripts参数定义的目录下,默认为/usr/lib/zabbix/alertscripts/
zabbix调用脚本时会向其传递参数;3.0之前的版本通过:
	$1:消息接收人	$2:消息主题	  $3:消息主体
3.X之后的版本,此三个参数默认不再传递,需自行定义;
	参数(){ALSTER.SENDTO}	{ALSTER.SUBJECT}	{ALSTER.MESSAGE}
  • 查看媒介列表
    在这里插入图片描述

  • 在原来的基础上新增 “Admin” 报警媒介类型
    在这里插入图片描述

  • 选择类型,新增
    在这里插入图片描述

  • 更新报警媒介
    在这里插入图片描述

  • 新增动作–操作(使用脚本发送邮件)
    在这里插入图片描述

  • 在zabbix服务端添加脚本

yum provides */mail		#查看mail命令在哪个安装包中(脚本中用到此命令,需要安装)
yum install -y mailx-12.5-19.el7.x86_64		#安装包含mailm命令安装包
vi sendmail.sh		#新建脚本文件,需要与配置报警媒介脚本命名一样

在这里插入图片描述

chmod +x sendmail.sh	#赋予执行权限
systemctl restart zabbix-server	#重启服务生效
bash -n sendmail.sh	测试脚本有没有问题
bash -x sendmail.sh 18438074712@163.com "hello world" "hello everyone"	#发送测试邮件

在这里插入图片描述

  • 验证邮件是否发送成功
    在这里插入图片描述

  • 客户端再次更改端口号,等待时间,再次验证。
    查看事件,四步都已执行

    在这里插入图片描述

  • 执行动作的日志可以在:报表 – 动作日志中查看执行发送(包含主题内容)的状态
    在这里插入图片描述

  • 查看邮件是否真正收到
    在这里插入图片描述

创建图形(Graphs):

  • 配置 – 主机 – 图形(graphs)
  • 创建出入站报文数趋势图
    在这里插入图片描述
  • 查看图形
    监测中 – 图形 – 选择对应群组/主机
    在这里插入图片描述
  • 创建出入站字节数趋势图
    在这里插入图片描述
  • 创建CPU上下文切换次数趋势图
    在这里插入图片描述
  • 创建 web-service 趋势图(使用饼状)
    在这里插入图片描述
  • 将上面是个趋势图形,一屏共同展示:
    检测中 – 聚合图形 – 创建聚合图形
    在这里插入图片描述
  • 查看聚合图形列表,并进行配置
    在这里插入图片描述
  • 添加图形
    在这里插入图片描述
  • 依次将四个图形加入聚合图形
    在这里插入图片描述
  • 查看效果
    在这里插入图片描述

配置主机模板(Template):

与 创 建 主 机 及 配 置 主 机 监 控 项 , 触 发 器 , 图 形 等 非 常 近 似 , 因 此 这 里 不 做 太 详 细 的 介 绍 \color{red}{与创建主机及配置主机监控项,触发器,图形等非常近似,因此这里不做太详细的介绍}
在这里插入图片描述

  • 创建模板
    在这里插入图片描述
  • 过滤test-templates-group群组下的模板列表
    在这里插入图片描述
  • 进去模板,创建此模板的应用集
    在这里插入图片描述
  • 创建模板监控项–网卡出入站字节数
    在这里插入图片描述
  • 查看模板–监控项列表
    在这里插入图片描述
  • 创建模板–图形(Graph)
    在这里插入图片描述
  • 查看test-templates模板下的图形列表
    在这里插入图片描述
  • 主机链接模板方式
    在这里插入图片描述
  • 主机取消链接模板方式
    在这里插入图片描述
  • 查看链接模板主机的监控趋势图形
    在这里插入图片描述
  • 链接/聚合其他模板至此模板,可以套用他们的模板配置内容
    例如:在test-templates模板中链接Template OS Linux模板,都是适用于linux操作系统

    在这里插入图片描述
  • 链接完Template OS Linux模板后再次查看test-templates模板都有哪些内容
    明显增加了许多:应用集/监控项/触发器/图形…等

    在这里插入图片描述
  • 模板的导入/导出 – 方便不同zabbix-server之间共享模板
    在这里插入图片描述
  • 新建主机监控项web-service,调用宏“{$HTTP_PORT}”
    在这里插入图片描述
  • 查看刚刚配置的监控项
    在这里插入图片描述
  • 添加全局宏
    在这里插入图片描述
  • 再次查看刚刚配置的监控项
    在这里插入图片描述
  • 添加模板宏
    在这里插入图片描述
  • 再次查看刚刚配置的监控项
    在这里插入图片描述
  • 添加主机宏
    在这里插入图片描述
  • 再次查看刚刚配置的监控项
    在这里插入图片描述
    总 结 : \color{red}{总结:}
由此断定,范围越小,优先级越高;
宏的依次查找次序为:
全局宏 -- 模板宏 -- 主机宏
宏类型:
	内建:{MACRO_NAME}
	自定义:{$MACRO_NAME}
命名方式:大写字母、数字和下划线组成;

通过创建自定义key,为客户端添加空闲内存监控项:

	创建自定义Key方法,上面在创建主机组的时候已经讲过,也做了示范;

在这里插入图片描述

  • 查看最新数据 memory-free 监控项
    在这里插入图片描述
  • 查看趋势图,并以Mb单位显示
    在这里插入图片描述
    定 义 此 监 控 项 的 触 发 器 时 , 应 该 让 它 小 于 某 个 值 时 , 触 发 A c t i o n ( 动 作 ) 进 行 告 警 − − 不 做 演 示 定 义 此 监 控 项 的 触 发 器 时 , 应 该 让 它 小 于 某 个 值 时 , 触 发 A c t i o n ( 动 作 ) 进 行 告 警 − − 不 做 演 示 \color{red}{定义此监控项的触发器时,应该让它小于某个值时,触发Action(动作)进行告警 -- 不做演示定义此监控项的触发器时,应该让它小于某个值时,触发Action(动作)进行告警 -- 不做演示} Action()Action()

客户端安装Nginx服务,并配置监控:

  • 注 意 : \color{red}{注意:}
上面安装了httpd服务,端口会被占用,因此先把httpd服务停掉;
systemctl stop httpd.service
将zabbix中httpd的80端口监控项也禁用掉。
  • 客户端安装nginx服务:
# 先下载nginx的rpm包
cd /usr/local/src/
wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.10.0-1.el7.ngx.x86_64.rpm

在这里插入图片描述

# 安装nginx服务
yum install -y nginx-1.10.0-1.el7.ngx.x86_64.rpm

在这里插入图片描述

  • 编辑"/etc/nginx/conf.d/default.conf"配置文件,添加一下location段
    在这里插入图片描述
  • 启动nginx服务
nginx -t		#查看配置文件语法是否存在错误
systemctl start nginx.service		#启动服务
ps -ef |grep nginx			#查看进程
netstat -anpl |grep pid	#查看占用端口号
curl http://127.0.0.1/ngxstatus		#网页查看nginx的活动连接数

在这里插入图片描述

  • 新增获取nginx活动连接数的自定义key
# 修改zabbix-agent配置文件"/etc/zabbix/zabbix_agentd.conf" 添加:
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk '/^Active/{print $3}'
  • 新增获取nginx接受访问数量的自定义key
UserParameter=nginx.status.active,curl -s http://127.0.0.1/ngxstatus | awk 'NR==3{print $3}'
# 重启服务
systemctl restart zabbix-agent.service

在这里插入图片描述

# zabbix-server端命令获取自定义key的结果(nginx活动连接数)
zabbix_get -s 192.168.137.139 -k "nginx.status.active"
# zabbix-server端命令获取自定义key的结果(nginx接收访问的数量)
zabbix_get -s 192.168.137.139 -k "nginx.status.accepts"

在这里插入图片描述

  • 为 了 方 便 读 取 参 数 值 , 自 动 去 匹 配 需 要 读 取 的 参 数 , 需 要 写 个 脚 本 \color{red}{为了方便读取参数值,自动去匹配需要读取的参数,需要写个脚本} 便
cat /usr/bin/ngxstatus.sh

在这里插入图片描述

# 赋予脚本执行权限
chmod +x /usr/local/ngxstatus.sh
# 依次执行脚本获取各个值
/usr/bin/ngxstatus.sh active

在这里插入图片描述

# 修改zabbix-agent配置文件自定义key参数的变量值
UserParameter=nginx.status.[*],/usr/bin/ngxstatus.sh $1
# 重启服务
systemctl restart zabbix-agent.service

在这里插入图片描述

  • 服务端执行命令,再次查看获取到的值
zabbix_get -s 192.168.137.139 -k "nginx.status.[active/accepts/...]"

在这里插入图片描述

  • 总 结 : \color{red}{总结:}
    结合调用脚本中自定义的Key,去创建zabbix-agent的监控项,这里不做详解,结合上面自定义的空闲内存key的方式就能实现。
    示例:
    • 配置nginx–active监控项
      在这里插入图片描述
    • 创建触发器,绑定到监控项(item)
      在这里插入图片描述
    • 查看监控趋势图
      在这里插入图片描述
      如果状态为零,触发器会触发一个事件,事件会执行一个动作Action,然后发送告警
      这里简单介绍这些,剩下的自行去试验添加,并将nginx获取的这些指标,放到一个聚合图形里。

Python之钉钉机器人Zabbix告警功能:

首先在钉钉群聊里添加一个自定义的机器人:
创建群聊 -- 群设置 -- 添加机器人 -- 选择自定义机器人

在这里插入图片描述

  • 点击添加
    在这里插入图片描述

  • 自定义机器人名称;完成添加
    在这里插入图片描述

  • 复制webhook的内容
    在这里插入图片描述

  • 添加完成,会有一条群聊消息
    在这里插入图片描述

  • 创建脚本:

# 在zabbix服务端的alertscripts目录下新建一个python脚本
cd /usr/lib/zabbix/alertscripts/
# 脚本内容可以直接克隆我的Git:
git --version		#查看是否安装又git
yum -y install git	#安装git工具

在这里插入图片描述

git clone https://github.com/Linux-Chiron/zabbix-dingding.git		#克隆zabbix-dingding代码到本地
mv zabbix-dingding/zabbix_dingding.py .		#移动zabbix_dingding.py脚本到当前目录

在这里插入图片描述

  • 修改脚本中 “api_url” 参数的URL(webhook)值:
    在这里插入图片描述
# 为脚本赋予执行权限
chmod +x zabbix_dingding.py
# 查看Python版本,使用Python2.x
进入:python
退出:quit()
# 手动调试脚本
python zabbix_dingding.py 123

在这里插入图片描述

  • 看 到 手 动 调 试 脚 本 时 , 报 错 了 ; 解 决 方 法 : − − 不 做 截 图 演 示 \color{red}{看到手动调试脚本时,报错了;解决方法:-- 不做截图演示} ;
yum -y install epel-release	#安装epel扩展源
yum -y install python-pip		#安装python-pip
pip install --upgrade pip		#升级pip
pip install requests			#安装requests包
  • 再次手动调试脚本:
    在这里插入图片描述
创建报警媒介:

在这里插入图片描述

  • 将报警媒介绑定到用户admin的报警媒介
    在这里插入图片描述

  • 查看Admin用户报警媒介列表,添加成功
    在这里插入图片描述

  • 添加动作
    在这里插入图片描述

  • 条件选项卡添加关联的触发器条件
    在这里插入图片描述

  • 配置操作选项卡 – 只发送钉钉
    在这里插入图片描述

  • 查看Action动作列表
    在这里插入图片描述

  • 更改入站报文数的触发器表达式值
    在这里插入图片描述

  • 查看检测中 – 事件
    在这里插入图片描述

  • 查看钉钉是否有告警 – 故障/恢复通知

    • 故障通知:
      在这里插入图片描述

    • 恢复通知:
      在这里插入图片描述

补 充 : − − 动 作 选 项 卡 中 标 题 及 内 容 信 息 : \color{red}{补充:-- 动作选项卡中标题及内容信息 :}
  • 故障通知内容:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
  • 恢复通知内容:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值