侧边栏壁纸
博主头像
zyixin

当你觉得为时已晚的时候,恰恰是最早的时候

  • 累计撰写 64 篇文章
  • 累计创建 0 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Zabbix

zyixin
2022-04-01 / 0 评论 / 0 点赞 / 1,653 阅读 / 13,772 字
温馨提示:
本文最后更新于 2022-04-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

zabbix

  • Zabbix是一个高度集成的监控解决方案
  • 可以实现企业级的开源分布式监控
  • Zabbix通过C/S模式采集监控数据
  • Zabbix通过B/S模式实现Web管理

1 部署安装Zabbix监控平台

1.1 部署运行环境LNMP

安装依赖

[root@zabbix-server ~]# yum -y install gcc pcre-devel zlib-devel openssl-devel

编译安装nginx

[root@zabbix-server ~]# tar -zxvf nginx-1.19.1.tar.gz
[root@zabbix-server ~]# cd nginx.1.19.1
[root@zabbix-server nginx.1.19.1]# ./configure --with-http_ssl_module
[root@zabbix-server nginx.1.19.1]# make && make install

安装php

[root@zabbix-server ~]# yum -y insatll php php-mysql
[root@zabbix-server ~]# yum -y install mariadb-server mariadb-devel mariadb
[root@zabbix-server ~]# yum -y install php-fpm

修改nginx配置

[root@zabbix-server ~]# vim +65 /usr/local/nginx/conf/nginx.conf
··· ···
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
}

启动数据库

[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# systemctl enable mariadb
[root@zabbix-server ~]# systemctl start php-fpm
[root@zabbix-server ~]# systemctl enable php-fpm

启动nginx

[root@zabbix-server ~]# /usr/local/nginx/sbin/nginx

查看端口是否启动

[root@zabbix-server ~]# netstat -utnlp | grep :80
[root@zabbix-server ~]# netstat -utnlp | grep :3306
[root@zabbix-server ~]# netstat -utnlp | grep :9000

编写nginx测试网页

[root@zabbix-server ~]# vim /usr/local/nginx/html/test.php
<?php
$i=33;
echo $i;
?>

[root@zabbix-server ~]# curl http://192.168.139.15/test.php

1.2 安装源码zabbix

[root@zabbix-server ~]# yum -y install net-snmp-devel curl-devel libevent-devel
[root@zabbix-server ~]# tar -zxvf zabbix-3.4.15.tar.gz
[root@zabbix-server ~]# cd zabbix-3.4.15
[root@zabbix-server zabbix-3.4.15]# ./configure --enable-server --enable-proxy --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl
[root@zabbix-server zabbix-3.4.15]# make install
[root@zabbix-server zabbix-3.4.15]# ls /usr/local/etc/		#配置文件所在目录
[root@zabbix-server zabbix-3.4.15]# ls /usr/local/bin		#命令所在目录
[root@zabbix-server zabbix-3.4.15]# ls /usr/local/sbin		#启动服务命令

1.3 初始化准备

**· 创建数据库与数据库账户 **

[root@ansible-server ~]# mysql
mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@'localhost' identified by 'zabbix';
mysql> exit

[root@ansible-server ~]# cd /home/setup/zabbix-3.4.15/database/mysql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix-server mysql]# mysql -uzabbix -pzabbix zabbix < data.sql

**· 上线Zabbix页面 **

[root@zabbix-server ~]# cd /home/setup/zabbix-3.4.15/frontends/php
[root@zabbix-server php]# cp -a * /usr/local/nginx/html/
[root@zabbix-server php]# chmod -R 777 /usr/local/nginx/html/*

**· 修改nginx配置 **

[root@zabbix-server ~]# vim /usr/local/nginx/conf/nginx.conf
http {
··· ···
    fastcgi_buffers 8 16K;              #缓存php生成的页面内容,8个16k
    fastcgi_buffer_size 32K;            #缓存php生产的头部信息
    fastcgi_connect_timeout 300;        #连接PHP的超时时间
    fastcgi_send_timeout 300;           #发送请求的超时时间
    fastcgi_read_timeout 300;

**· 安装依赖软件 **

[root@zabbix-server ~]# cd /home/setup
[root@zabbix-server ~]# yum -y install php-gd php-xml php-ldap
[root@zabbix-server ~]# yum -y install php-bcmath php-mbstring
[root@zabbix-server ~]# vim /etc/php.ini
date.timezone = Asia/Shanghai			#设置时区
post_max_size = 16M						#最大执行时间,秒
max_execution_time = 300				#POST数据最大容量
max_input_time = 300					#服务器接收数据的时间限制

[root@zabbix-server setup]# systemctl restart php-fpm
[root@zabbix-server setup]# /usr/local/nginx/sbin/nginx -s stop
[root@zabbix-server setup]# /usr/local/nginx/sbin/nginx

**· 访问zabbix页面 **

登陆地址:http://ip地址/index.php

· 配置数据库连接配置
zabbix登陆页面

· 配置监控服务器
zabbix登陆页面-2

· 查看安装信息

[root@zabbix-server ~]# cat /usr/local/nginx/html/conf/zabbix.conf.php

<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']     = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'zabbix';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = '192.168.139.15';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zyx-monitor';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

1.4 登陆管理页面

管理员名称:andmin
初始密码:zabbix

· 修改页面语言及管理员密码
点击右上角个人信息
zabbix设置页面语言
设置管理员密码和页面语言
zabbix设置页面语言-2

1.5 运行zabbix监控服务

** 1.5.1 修改服务主配置文件**

[root@zabbix-server ~]# vim /usr/local/etc/zabbix_server.conf
DBHost=localhost				#数据库主机
DBName=zabbix					#设置数据库名称
DBUser=zabbix					#设置数据库账户
DBPassword=zabbix				#设置数据库密码
LogFile=/tmp/zabbix_server.log	#设置日志

** 1.5.2 启动服务**
因为源码安装,zabbix不会创建进程的所有者,所以需要自己手动创建

[root@zabbix-server ~]# useradd zabbix					#不创建用户无法启动服务
[root@zabbix-server ~]# zabbix-server					#启动服务

** 1.5.3 查看服务信息**

[root@zabbix-server ~]# netstat -utnlp | grep :10051	#查看端口

2 Zabbix监控服务

2.1 基础监控

** 2.1.1 配置被监控端 **
· 安装zabbix软件提供zabbix-agent服务

[root@agent-1 ~]# mkdir -pv /home/setup; cd /home/setup
[root@agent-1 setup]# scp 192.168.139.15:/home/setup/zabbix-3.4.15.tar.gz ./

· 安装软件(139.100为例)

[root@agent-1 setup]# yum -y install gcc pcre-devel
[root@agent-1 setup]# tar -zxvf zabbix-3.4.15.tar.gz
[root@agent-1 setup]# cd zabbix-3.4.15/
[root@agent-1 zabbix-3.4.15]# ./configure --enable-agent
[root@agent-1 zabbix-3.4.15]# make install

[root@agent-1 zabbix-3.4.15]# ls /usr/local/etc
[root@agent-1 zabbix-3.4.15]# ls /usr/local/bin
[root@agent-1 zabbix-3.4.15]# ls /usr/local/sbin

· 修改服务的主配置文件

[root@agent-1 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1, 192.168.139.15			#允许访问服务器地址列表
ServerActive=192.168.139.15:10051			#监控服务器ip地址
LogFile=/tmp/zabbix_agentd.log				#日志文件

· 启动服务

[root@agent-1 ~]# useradd zabbix
[root@agent-1 ~]# zabbix_agentd

· 查看服务信息
[root@agent-1 ~]# netstat -utnlp | grep :10050
[root@agent-1 ~]# ls /tmp/zabbix_agentd.log

** 2.1.2 配置监控服务器**
· 添加监控主机

Host(主机)是监控的基本载体
Zabbix 所有监控都是基于Host
通过Configuration -> Hosts -> Create Host创建
注意:设置中文环境后,中英文差异

zabbix监控配置页面-1

zabbix监控配置页面-2

根据提示输入
zabbix监控配置页面-3
· 选择监控模块
为主机添加关联的监控模板
-在"Templates" 模块选项卡页面中
-找到Link nwe TempLates,select选择合适的模板添加
-这里我们选择Template OS Linux模板
zabbix监控配置页面-4

· 查看监控数据
可以点击"Monitreing" -> “Latest data”
在过滤器中填写条件,根据群组和主机搜索即可
zabbix监控配置页面-5

查看实时监控数据
zabbix监控配置页面-6

2.2 自定义监控

** 2.2.1 配置客户端 **
· 启动自定义监控
被监控端修改Agent配置文件

[root@agent-1 ~]# vim /usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1									#是否允许自定义key
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf		#加载配置文件目录

· 定义监控命令

[root@agent-1 ~]# cd /usr/local/etc/zabbix_agentd.conf.d/
[root@agent-1 ~]# vim count.line.passwd.conf
# 查看/etc/passwd的文件里有多少个用户
UserParameter=count.line.passwd,wc -l /etc/passwd | awk '{print $1}'
# 自定义key语法格式
# UserParameter=自定义key名称,命令

· 重启服务

[root@agent-1 ~]# netstat -utnlp |grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      36486/zabbix_agentd
[root@agent-1 ~]# killall -9 zabbix_agentd
[root@agent-1 ~]# zabbix_agentd

· 测试配置

[root@agent-1 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k count.line.passwd
52
[root@agent-1 ~]# useradd test
[root@agent-1 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k count.line.passwd
53

** 2.2.2 配置监控 服务器 **
· 登陆监控服务器Web管理页面,做如下配置:
创建监控模板
-选择 配置 -> 模板 创建模板
zabbix模板配置页面-1
-设置模板名称与组名称
zabbix模板配置页面-2
创建应用集
-模板添加后,默认模板中没有任何应用、项目、触发器、图形等
zabbix模板配置页面-3
-点击模板后面的 应用集,刷新出的页面中选择 创建应用集,
-设置 名称,点击添加
zabbix模板配置页面-4
创建监控项
-与创建应用一样,创建项目
-配置 -> 模板 -> 项目 -> 创建监控项
zabbix模板配置页面-5
使用新模板监控主机
-选择 配置 -> 主机 -> 选择主机
zabbix模板配置页面-7
-点击 模板 ,选择选项监控项目,添加
-添加完成后,点击更新 更新主机配置
zabbix模板配置页面-8
查看监控数据
-点击 检测中 -> 最新数据 -> 选择监控项 -> 图形
zabbix模板配置页面-9

3 Zabbix报警机制

· 自定义的监控项默认不会自动报警
· 首页也不会提示错误
· 需要配置触发器与报警动作才可以自动报警

3.1 概念介绍

** 触发器(trigger)**
-表达式,如内存不足300M,用户超过30个等
-当触发条件发生后,会导致一个触发事件
-触发事件会执行某个动作
** 动作(action)**
-触发器的条件被触发后的行为
-可以是发送右键,也可以是重启某个服务等

3.2 配置监控报警

** 3.2.1 创建触发器 **
· 通过 配置 -> 模板
· 选择模板点击后面的 触发器 -> 创建触发器
-强烈建议使用英文创建(中文翻译不敢恭维)
zabbix监控报警配置页面-1

zabbix监控报警配置页面-2

** 触发器表达式 **
· Expression表达式:触发异常的条件

{<server>:<key>.<function>(<parameter>)}<operator><constant>
{主机:key.函数(参数)}<表达式>常数

zabbix监控报警配置页面-3

· Expression表达式案例1

{web1:system.cpu.load[all,avg1].last(0)}>5			#0为最新数据
#如果web1主机最新的CPU平均负载值大于5,则触发器状态Problem
{vfs.fs.size[/,free].max(5m)}<10G					#5m为最近5分钟
#根分区,最近5分钟的最大容量小于10G,则状态进入Problem
{vfs.file.cksum[/etc/passwd].diff(0)}>0				#0为最新数据
#最新一次校验/etc/passwd如果与上一次有变化,则状态进入Problem

· Expression表达式案例2
-大多数函数使用秒作为参数,使用#代表不同含义
-avg,count,last,min and max 函数支持额外的第二个参数time_shift(时间偏移量)
-这个参数允许从过去一段时间内引用数据

|  函数内容		| 		描述	        |
|  sum(600)   | 600秒内所有值的总和   |
|  sum(#5)    | 最后5个值的总和       |
|  last(20)   | 最后20秒的值          |
|  last(#5)   | 倒数第5个值           |
|  avg(1h,1d) | 一天前的1小时的平均值  |

配置触发器
· 设置触发器名称,点击add添加表达式
· 填写表达式
-监控项为账户数量,最近300秒账户数量大于53
zabbix监控报警配置页面-4

zabbix监控报警配置页面-5

** 3.2.2 创建动作 **
** 设置邮件服务器 **
· 设置邮件服务器
-管理 -> 报警媒介类型 -> 选择Email邮件
-设置邮件服务器信息
zabbix监控报警配置页面-6

** 创建 Media **
· 为账户添加Media
-在 管理 -> 用户 中找到选择admin账户
zabbix监控报警配置页面-7

-选择Media菜单 -> 点击更新添加报警媒介
-在 Meida Type中填写报警类型,收件人,时间等信息

** 创建动作 **
· Action(动作)
-定义当触发器被触发时,执行什么Action
-通过配置 -> 动作 -> 创建动作
zabbix监控报警配置页面-8

-配置动作(填写名称)
-配置导致动作的触发条件(账户大于53)
zabbix监控报警配置页面-9

-配置动作的具体操作行为(发送信息或执行远程命令)
-无线次数发送邮件,60秒1次,发送给Admin用户
zabbix监控报警配置页面-10

** 效果测试 **
· 在被监控主机创建账户
· 登陆监控端Web页面,在仪表盘中查看问题
zabbix监控报警配置页面-11

· 在zabbix服务器上查看是否收到邮件

[root@zabbix-server ~]# su - zabbix
[zabbix@zabbix-server ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/zabbix": 2 messages 2 new
>N  1 root                  Thu Jul 16 20:50  20/820   "Hello word"
 N  2 root@localhost.local  Thu Jul 16 21:41  20/815   "big53"
& 

2

Message  2:
From root@localhost.localdomain  Thu Jul 16 21:41:26 2020
Return-Path: <root@localhost.localdomain>
X-Original-To: zabbix@localhost
Delivered-To: zabbix@localhost.localdomain
From: <root@localhost.localdomain>
To: <zabbix@localhost.localdomain>
Date: Thu, 16 Jul 2020 21:41:25 +0800
Subject: big53
Content-Type: text/plain; charset="UTF-8"
Status: R

Problem started at 21:41:24 on 2020.07.16
Problem name: cfq1
Host: agent-1
Severity: Disaster

Original problem ID: 22

4 Zabbix进阶操作

4.1 自动发现

· 自动发现(Discovery)
-当Zabbix需要监控的设备越来越多,手动添加监控设备越来越有挑战,此时,可以考虑使用自动发现功能
· 自动发现可以实现:
-发现主机、添加主机,添加主机到组、连接模板等

**· 自动发现(Discovery)流程 **
-创建自动发现规则
-创建Action动作(发现主机后自动执行什么动作)
-通过动作,执行添加主机,链接模板到主机等操作

** 自动发现规则 **
· 创建自动发现规则
-配置 -> 自动发现 -> 创建自动发现
zabbix自动发现配置-1

· 填写规则
-自动发现的IP地址(逗号隔开可以写多个)
-多久做一次自动发现(默认为1小时,仅实验修改为1m)
-检查的方式:HTTP、FTP、Agent的自定义key等检查
zabbix自动发现配置-2

** 创建动作 **
· 配置 -> 动作
· 事件源 -> 创建动作
-注意:选择事件源为:自动发现
zabbix自动发现配置-3

-添加动作名称,添加触发动作的条件
-操作(触发动作后要执行的操作命令),操作细节如下:
-添加主机到组,与模板链接(http模板)
zabbix自动发现配置-4

zabbix自动发现配置-5

** 创建新主机 **
· 创建一台新的主机,验证zabbix是否可以自动发现该主机
-可以重新部署一台新的虚拟机
-也可以将旧虚拟机的IP地址,临时修改为其他IP

** 查看测试结果 **
· 登陆zabbix服务器的Web页面。查看主机列表
zabbix自动发现配置-6

4.2 主被动监控

· 主动和被动都是对被监控端主机而言的
· 默认zabbix采用的是被动监控
-默认监控:Server向Agent发起连接,发送监控key,Agent连接请求,响应监控数据
-主动监控:Agent向Server发起连接,Agent请求需要检测的监控项目列表,Server响应Agent发送一个items列表,Agent确认收到监控列表,TCP连接完成,会话关闭,Agent开始周期性地收集数据
· 区别:
-Server不用每次需要数据都连接Agent,Agent会自己收集数据并处理数据,Server仅需要保存数据即可
· 当监控主机达到一定量级后,Zabbix服务器会越来越慢
· 此时,可以考虑使用主动监控,释放服务器的压力
· 另外,Zabbix也支持分布式监控,也是可以考虑的方案

** 配置主动监控 **
· 配置客户端 192.168.139.201

安装源码zabbix软件
创建新的被监控主机(主动监控)
-给 agent-3 (192.168.139.201) 安装zabbix_agent软件

[root@agent-3 ~]# yum -y install gcc pcre-devel
[root@agent-3 ~]# cd /home/setup
[root@agent-3 ~]# tar -zxvf zabbix-3.4.15.tar.gz
[root@agent-3 ~]# cd zabbix-3.4.15
[root@agent-3 ~]# ./configure --enable-agent
[root@agent-3 ~]# make install

修改配置文件

[root@agent-3 ~]# vim /usr/local/etc/zabbix_agentd.conf
#Server=127.0.0.1,192.168.139.15			#注释该行
StartAgents=0								#禁止被动监控(有服务进程没有端口)
ServerActive=192.168.139.15					#监控服务器ip  一定要取消127.0.0.1

Hostname=agent-3							#告诉监控服务器,是谁发的数据信息一定要和zabbix服务器配置的监控主机名称一致
RefreshActiveChecks=120						#默认120秒检测一次

启动服务

[root@agent-3 ~]# useradd zabbix
[root@agent-3 ~]# zabbix_agentd

查看服务信息

[root@agent-3 ~]# ps -C zabbix_agentd
   PID TTY          TIME CMD
 47025 ?        00:00:00 zabbix_agentd
 47026 ?        00:00:00 zabbix_agentd
 47027 ?        00:00:00 zabbix_agentd

· 配置服务器 192.168.139.15

克隆模板
· 为了方便,克隆系统自带模板(在此基础上就该更方便)
· 配置 -> 模板
-选择 Template OS Linux
-全克隆该模板,新建一个新的模板
-新模板名称为:Template OS linux ServerActive
zabbix主动监控配置-1

zabbix主动监控配置-2

修改监控项模式
· 将模板中的所有监控项目全部修改为主动监控模式
-Configuration -> Templates
-选择新克隆的模板,点击后面的items(监控项)
-点击全选,点击批量更新
-将类型修改为:Zabbix Agent(Active主动模式)
zabbix主动监控配置-3

zabbix主动监控配置-4

zabbix主动监控配置-5

· 批量修改监控项的监控模式后,并非所有监控项目都支持主动模式
-批量修改后,会发现有几个没有修改主动模式成功
-说明,这些健吗项目不支持主动监控,关闭即可
-可以点击类型排序,方便操作,点击状态即可关闭
zabbix主动监控配置-6

添加监控主机
· 在ZAbbix监控服务器,添加被监控的主机(主动模式)
zabbix主动监控配置-7

zabbix主动监控配置-8

· 名称:agent-3
将主机添加到AAA组
· IP地址为0.0.0.0,端口为0
zabbix主动监控配置-9

验证效果
· 查看数据图案

  • 监测中 -> 图形
    -选择需要查看的主机组、主机以及图形
    zabbix主动监控配置-10

-图形数据
zabbix主动监控配置-11

4.3 拓扑图与聚合图形

** 拓扑图 **
· 绘制拓扑图可以快速了解服务器架构
· 检测中 -> 拓扑图
· 选择 创建拓扑图 即可
zabbix拓扑图配置-1

· 操作说明
-lcon(图标),添加新的设备后可以点击图标修改属性
-Shape(形状)
-Link(连线),先选择两个图标,再连接连线
-完成后,点击Update更新
zabbix拓扑图配置-2

** 聚合图形 **
· 在一个页面显示多个数据图表,方便了解多组数据
· 检测中 -> 聚合图形 -> 创建聚合图形
-Owner:使用默认的Admin用户
-Name:名称设置为agent–3_host
-Columns:列数设置为2列
-Rows:行数设置为4行
zabbix聚合图形配置-1

· 选择刚刚创建的聚合图形(agent-3_host)
· 点击后面的构造函数(constructor)
-点击Change(更改),设置每行每列需要显示的数据图表
zabbix聚合图形配置-2
-设置需要显示的数据图表
zabbix聚合图形配置-3

5 监控案例

—在客户端编写监控脚本,给监控服务器调用

** 环境准备 **
· 一台Nginx服务器(192.168.139.200),部署Nginx时要加载status模块,因为192.168.139.200服务器是自动发现的,没有zabbix_agent的包,所以需要安装一下
-安装zabbix_agent

[root@agent-2 ~]# yum -y install gc pcre-devel
[root@agent-2 ~]# cd /home/setup
[root@agent-2 setup]# tar -zxvf zabbix-3.4.15.tar.gz
[root@agent-2 setup]# cd zabbix-3.4.15
[root@agent-2 zabbix-3.4.15]# configure --enable-agent
[root@agent-2 zabbix-3.4.15]# make install

[root@agent-2 ~]# vim /usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1,192.168.139.15
ServerActive=192.168.139.15:10051
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1

[root@agent-2 ~]# useradd zabbix
[root@agent-2 ~]# zabbix_agentd
[root@agent-2 ~]# netstat -utnlp |grep :10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      43022/zabbix_agentd

-安装nginx

[root@agent-2 ~]# cd /home/setup
[root@agent-2 ~]# yum -y install zlib-devel
[root@agent-2 setup]# scp root@192.168.139.15:/home/setup/nginx-1.19.1.tar.gz ./
[root@agent-2 setup]# tar -zxvf nginx-1.19.1.tar.gz
[root@agent-2 setup]# cd nginx-1.19.1
[root@agent-2 nginx-1.19.1]# ./configure --with-http_stub_status_module
[root@agent-2 nginx-1.19.1]# make && make install
[root@agent-2 nginx-1.19.1]# ls /usr/local/nginx/
conf  html  logs  sbin

-配置nginx

[root@agent-2 ~]# vim /usr/local/nginx/conf/nginx.conf
··· ···
server {
        location /status {
                stub_status on;
        }
		
··· ···

[root@agent-2 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@agent-2 ~]# /usr/local/nginx/sbin/nginx
[root@agent-2 ~]# netstat -utnlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      46031/nginx: master


[root@agent-2 ~]# curl http://localhost/status
Active connections: 1 
server accepts handled requests
 7 7 1 
Reading: 0 Writing: 1 Waiting: 0 

5.1 监控nginx服务状态

** 编写监控脚本 **

[root@agent-2 ~]# vim /usr/local/bin/nginx_status.sh
#!/bin/bash

case $1 in
"Active")
curl -s http://localhost/status | awk 'NR==1{print $3}';;
"accepts")
curl -s http://localhost/status | awk 'NR==3{print $1}';;
"Waiting")
curl -s http://localhost/status | awk 'NR==4{print $6}'
esac

[root@agent-2 ~]# chmod +x /usr/local/bin/nginx_status.sh
[root@agent-2 ~]# /usr/local/bin/nginx_status.sh Waiting
[root@agent-2 ~]# /usr/local/bin/nginx_status.sh Active
[root@agent-2 ~]# /usr/local/bin/nginx_status.sh accepts

** 把脚本定义成监控命令 **

[root@agent-2 ~]# vim /usr/local/etc/zabbix_agentd.conf.d/x.conf
UserParameter=nginx_statu[*],/usr/local/bin/nginx_status.sh $1

[root@agent-2 ~]# killall -9 zabbix_agentd
[root@agent-2 ~]# killall -9 zabbix_agentd
zabbix_agentd: no process found
[root@agent-2 ~]# zabbix_agentd

** 测试定义的监控命令 **

[root@agent-2 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx_statu[Waiting]
[root@agent-2 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx_statu[Active]
[root@agent-2 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx_statu[accepts]

5.2 监控网络连接状态

5.3 扩展

0

评论区