zabbix添加nginx监控

zabbix默认自带了很多有用的监控模板,通常对主机运行状态使用默认的模板就可以了,有时候我们需要根据实际情况自定义一些监控信息。本文记录一下zabbix监控nginx服务的配置过程。捋一捋思路,整个配置过程大致如下:

1,确定监控内容
2,编写agent端的监控脚本
3,配置agentd.conf文件,定义监控脚本key
4,zabbix服务端使用zabbix_get 测试获取数据
5,登录zabbix web配置台;

1. 确定监控内容

思考一下nginx有哪些信息可以监控,nginx内置了一个status状态的功能,通过配置可以看到nginx的运行情况,status显示的内容包括当前连接数,处于活动状态的连接数,已经处理的请求数等等,关于status状态页的配置在nginx启用status状态页文章有介绍,这里不再多说。

2. 编写agent端监控脚本

通过脚本获取status页面信息的关键值,zabbix server通过这些关键值才能生成数据图像,获取status的关键值脚本如下:

#! /bin/bash#date: 2018-05-04# Description:zabbix监控nginx性能以及进程状态# Note:此脚本需要配置在被监控端,否则ping检测将会得到不符合预期的结果HOST="gudaoyufu.com"PORT="80"# 检测nginx进程是否存在function ping {    /sbin/pidof nginx | wc -l}# 检测nginx性能function active {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep ‘Active‘ | awk ‘{print $NF}‘}function reading {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep ‘Reading‘ | awk ‘{print $2}‘}function writing {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep ‘Writing‘ | awk ‘{print $4}‘}function waiting {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep ‘Waiting‘ | awk ‘{print $6}‘}function accepts {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk ‘{print $1}‘}function handled {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk ‘{print $2}‘}function requests {    /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk ‘{print $3}‘}# 执行function$1

脚本写完先在本地测试一下

[[email protected] ~]# sh /home/scripts/ngx_status.sh active2

3. 配置zabbixd.conf,定义监控脚本key

要使用脚本监控需要将zabbixd.conf文件中的

UnsafeUserParameters=1 开启

在脚本中添加定义以下各项的键值

UserParameter=nginx.status[*],/home/scripts/ngx_status.sh $1

配置好后重启zabbix-agent

service zabbix-agent restart

4. zabbix服务端使用zabbix_get 测试获取数据

[[email protected] ~]# zabbix_get -s 45.76.195.97 -k nginx.status[active]3

服务端测试正常后就可以在web界面配置监控了,zabbix配置都是通过界面配置,要熟练配置监控,要了解zabbix的每个组件的功能及各个组件之间的关系,否则看着一堆菜单选项会无从下手。

zabbix的配置流程大致如下:

创建主机组 -》添加主机 -》 创建监控模板 -》 创建应用集 -》创建监控项 -》 创建图像—》创建触发器 -》 创建事件 -》创建处理动作 -》 创建用户组与用户 -》创建告警方式

由于前面已经创建了主机组和主机,这里从配置模板开始,我们可以通过配置监控模板的方式,让所有相同的监控需求的主机都统一调用这个监控模板,这样就不用一个一个地添加监控项了。

这篇文章只做 创建监控模板 -》 创建应用集 -》创建监控项 -》 创建图像 这三项的步奏,监控告警的内容以后再做。

5. 登录zabbix web配置台

下面开始页面配置
创建模板

定义模板信息,在创建模板的过程当中,就可以把该模板添加到指定的主机组或者主机中

返回模板页已经看到创建的模板已经生成,这时创建的模板是空模板,要在这个模板中创建应用集,监控项等,点击下图中的应用集就可以直接创建。

创建应用集我理解为只是给整个模板组中的一部分监控项模板分类,一个模板组中可以创建不同类别的监控项,创建应用集只是起一个名字,从上图中的应用集进入后创建好应用集然后就可以在应用集中创建监控项了,见下图

创建监控项

创建监控项要注意命名方式,能够见名知意,最关键的是 键值 ,这里的键值一点要和agent端的配置文件中定义的键值一致

在监控脚本中,一共定义了7个监控项,所以这里的监控项页要创建7个,重复上面的步奏,创建脚本中相应的监控项

监控项创建好后就可以创建图像了

创建图像

创建图像在选择要显示的图像的监控项时可以选择多个监控项,这样就可以在一个图像中显示多个数据的线图

图像创建完成以后就可以在看到创建的监控模板已经在工作了,在 最新数据 中可以看到创建的模板信息

进入主机查看,创建的应用集已经在主机的应用集中,因为在刚开始创建模板时已经把模板加到该主机中了

最后看看效果图吧

看到创建的图像模板已经出图像了,创建图像模板时定义了4个监控项,所以这里有4个线图。

原文地址:https://www.cnblogs.com/anay/p/8994290.html

时间: 2024-11-06 13:41:02

zabbix添加nginx监控的相关文章

zabbix添加Tomcat监控

参靠了网上一些关于zabbix添加Tomcat的监控配置,自己整理了下: 一.服务器端配置1.找到zabbix源码存放路径 # find / -name zabbix_java #/usr/local/src/zabbix-2.2.6/src/zabbix_java 2.安装Zabbix-Java-gateway # cd /usr/local/src/zabbix-2.2.6 # ./configure --enable-java --prefix=/usr/local/zabbix/zabb

给zabbix添加percona监控模板

简单说明一下给zabbix添加的percona的监控模板. 在percona官方网站有说明怎么安装,这里记录下步骤.首先搭建好的zabbix环境. 监控插件连接 : 链接:https://pan.baidu.com/s/1xHbc_HhmN-XuGGiKrg7nPQ 提取码:i4ku yum安装percona的监控插件(安装在要监控的mysql服务器上) yum install -y percona-zabbix-templates-1.1.8-1.noarch.rpm 安装完成之后会生成如下四

zabbix添加nginx中间件监控

1.安装zabbix_agent,安装完成后会自动将脚本放在/usr/local/zabbix/scripts目录下 2. 找到并打开 vim  monitor_nginx.sh脚本,如下图中的HOST是获取当前主机的IP信息,可以使用sh /usr/local/zabbix/scripts/monitor_nginx.sh  active 命令进行测试,如果有返回值,说明能正常获取IP 如果无返回值,则可以直接把IP填入HOST 3.用  curl http://127.0.0.1/Nstat

ZABBIX之NGINX监控

1,端口自动发现 cat nginx_port.py #!/usr/bin/env python import os import json t=os.popen("""netstat -antp|awk '/LISTEN/&&/nginx/{print $4}'|awk -F: '{print $NF}' """) ports = [] for port in t.readlines(): r = os.path.basenam

zabbix通过api批量添加web监控

zabbix 添加web监控始终是大问题,不能自动发现只能手动添加 写了个py脚本 #!/usr/bin/env python # -*- coding: utf-8 -*- import json import urllib2 import sys class zabbixtools:     def __init__(self):         self.url = "Zabbixserver"         self.header = {"Content-Type&

Zabbix 的自动监控项目监控Nginx各hostname配置 - Low Level Discovery

Zabbix演示版本:2.4.4 涉及到的脚本语言:PHP low-level discovery的意思是"低层次的自动发现",检查lld. lld并不似因为功能简单或者不重要而被称为"低层次的",而是因为相对于服务器的自动发现,low-level discovery是针对服务器上设备的自动发现. Zabbix 原生支持针对三种(文件系统.网卡.SNMP OIDs)自动发现来配套自动添加Items.Triggers 和 Graphs等.在lld中它们被称为Item原

zabbix实现对nginx监控并实现nginx服务自愈

1.zabbix-server端(ubuntu1804) 1)必要的软件包 zabbix-server-mysql zabbix-frontend-php 2)启动的服务 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:10051 0.0.0.0:* users:(("zabbix_server",pid=3991,fd=4),("zabbix_server"

zabbix详解:(二)添加被监控机器

通过上一篇的学习,看这一篇文章的应该是已经安装好zabbix的了,然而zabbix装好了并不代表就能用,因为他的目的是监控服务器,刚刚安装完也就只能监控zabbix_server自己,显然是要添加被监控机才能叫真正能使用,而zabbix本身虽然自带监控模板,但是有些时候还是不太适用,例如系统的不一样,命令的不一样等等,那怎么办呢,这个时候就需要自己添加监控项目了. 添加被监控机器: 来看看怎么添加被监控机器,只有两步, 第一步,被监控机要装上zabbix_agent,系统不同,就有不同zabbi

zabbix 安装-添加主机-监控项目-触发器-示警媒介类型-动作

Zabbix安装-创建主机-监控项目-触发器- 示警媒介类型 Zabbix 很强大,很全面,但相对来说,Nagios 要更轻量.灵活,特别是它的插件机制,你可以用自己熟悉的语言实现几乎任何自己想要实现的监控.Nagios 在图表方面相对较弱,如果只是希望实现监控及报警,Nagios 是个不错的选择,至于图表,你可以交给 cacti实现. Zabbix维护相对困难,Nagios维护相对容易,Cacti也是一样.但是Cacti的数据存储方式不是太好,过去的数据太模糊.Nagios的监控相对独立(插件