Zabbix(六):项目实战之--自动发现nginx调度器及后端web服务集群、自定义参数监控

简介:

项目:

 1.自动发现nginx调度器及后端apache构建的web服务集群;

 2.使用自定义参数监控调度器上nginx服务的相关统计数据及速率数据;

 3.使用自定义参数监控后端apache服务的相关统计数据及速率数据;(选做)

 4.制定出nginx调度器及后端apache服务的监控模板,在模板中定义出:items, trigger, graph;(选做)


-------------------------------------------------------------------------------------------------------

项目规划:

zabbix-server端:172.16.1.2

zabbix-agent端/nginx调度器:172.16.1.99

zabbix-agent端/后端RS1:172.16.1.3

zabbix-agent端/后端RS2:172.16.1.10


把nginx调度器的ip地址设置的大一些,是为了设置zabbix Discovery的时候,自动区分发现nginx调度器及后端apache构建的web服务集群,所以下面可以设置两个zabbix Discovery,分别发现不同作用的主机。


1.

zabbix-server端:

安装以下应用

yum install zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent zabbix-get -y

详细的server端配置请参照:http://blog.51cto.com/12667170/2044254


三个zabbix-agent端:

安装以下应用

yum install -y zabbix-agent zabbix-sender

详细的agent端配置请参照:http://blog.51cto.com/12667170/2044254


2.创建nginx调度器

在nginx.conf配置文件中的http段内添加upstream内容,将后端两台RS加入到该upstream中

upstream zrs {

    server 172.16.1.3;

    server 172.16.1.10;

}

server {

    listen 80;

    location / {

        proxy_pass http://zrs;

        proxy_set_header X-Real-IP $remote_addr;

    }

}


两个后端rs各配置一个index.html方便测试,并开启httpd服务


测试可以看到使用了RoundRobin模式对后端rs访问。

[root@zrs2 ~]# for i in {1..10}; do curl http://172.16.1.99; done

<h1>172.16.1.3</h1>

<h1>172.16.1.10</h1>

<h1>172.16.1.3</h1>

<h1>172.16.1.10</h1>

<h1>172.16.1.3</h1>

<h1>172.16.1.10</h1>

<h1>172.16.1.3</h1>

<h1>172.16.1.10</h1>

<h1>172.16.1.3</h1>

<h1>172.16.1.10</h1>


3.自动发现nginx调度器及后端apache构建的web服务集群


创建nginx discovery

1.png


创建web discovery

2.png


分别打开nginx调度器端和后端rs主机上的zabbix-agent服务

查看Hosts,已经添加进了这三台主机


4.使用自定义参数监控调度器上nginx服务的相关统计数据及速率数据


为了监控nginx状态,在nginx的主配置文件的server中添加location监控nginx的状态值。


[root@zrs2 ~]# vim /etc/nginx/nginx.conf 


  location /status {

          stub_status on;

  }


[root@zrs2 ~]# systemctl restart nginx.service

[root@zrs2 ~]# curl 172.16.1.99/status

Active connections: 1 

server accepts handled requests

 1 1 1 

Reading: 0 Writing: 1 Waiting: 0 


监控nginx的状态,需要item的key,默认的没有,需要自定义参数UserParameters


5.自定义参数(UserParameters)


nginx自定义参数

vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf


UserParameter=nginx.active,curl -s http://172.16.1.99/status | awk '/^Active/{print $NF}'

UserParameter=nginx.accepts,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $1}'

UserParameter=nginx.handled,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $2}'

UserParameter=nginx.requests,curl -s http://172.16.1.99/status | awk '/^[[:space:]]+[0-9]/{print $3}'


保存退出,重启服务

[root@zrs2 zabbix_agentd.d]# systemctl restart zabbix-agent.service


在server端查看,可以不用eno查看状态,直接用第二种方法就能获取值,都成功了


[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k net.if.in[eno16777736,bytes]

285905110

[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.active

1

[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.accepts

9

[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.handled

10

[root@zrs1 ~]# zabbix_get -s 172.16.1.99 -k nginx.requests

11



接下来可以根据上面自定义的参数UserParameters,创建新的item项,可以输入刚才自定义的key。


在Hosts的172.16.1.99主机后面点击Items,然后Create item

如下创建4个监控项,也就是刚才设置的,注意的是preprocessing中改为Change per second

3.png

4.png

5.png

6.png


可以给这些监控创建一个graph

7.png


经过一段时间后,查看这个graph有了数值,表示自定义参数监控设置成功。

8.png


6.nginx调度器创建监控模板,在模板中定义出:items, trigger, graph。


创建nginx template

9.png

在这个模版上创建item,监控入站流量,注意的是preprocessing中改为Change per second

10.png


创建trigger

11.png


为了触发器被触发需要定义动作actions

12.png

13.png


这时需要定义Administration中users下面的media

14.png


再定义media types中的email中的media type

15.png


创建graph

16.png


7.后端apache服务配置监控模板,在模板中定义出:items, trigger, graph。


创建web template

17.png


在这个模版上创建item,监控出站流量,注意的是preprocessing中改为Change per second

18.png


创建trigger为了跟上面的trigger区分,这里Severity改为High

19.png


创建graph

20.png



8.链接应用模版

如下图,在172.16.1.99的host旁边,选择templates

21.png

链接nginx template

22.png


同样的步骤为两个后端rs链接模版


9.查看Hosts,刚才自定义配置监控都成功了。

23.png



本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/2045749,如需转载请自行联系原作者

相关文章
|
4月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
102 5
|
3月前
|
负载均衡 前端开发 JavaScript
Nginx 代理多服务
以上是 Nginx 代理多服务的几种常见方式,在实际应用中,可以根据具体的业务需求和系统架构选择合适的代理方式,并结合其他 Nginx 的功能和配置来优化和完善系统的性能和功能。
|
4月前
|
缓存 负载均衡 应用服务中间件
Nginx 实现一个端口代理多个前后端服务
【10月更文挑战第19天】Nginx 的强大功能不仅限于此,它还可以与其他技术和工具相结合,为我们的应用提供更强大的支持和保障。在不断发展的互联网时代,掌握 Nginx 的使用技巧将为我们的工作和生活带来更多的便利和效益。
|
4月前
|
应用服务中间件 Apache 开发工具
nginx服务企业应用
nginx服务企业应用
|
4月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
163 0
|
2月前
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
95 6
|
1月前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
58 2
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
183 3
|
3月前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
2月前
|
存储 前端开发 Java
深入理解后端开发:从基础到高级
本文将带你走进后端开发的神秘世界,从基础概念到高级应用,一步步揭示后端开发的全貌。我们将通过代码示例,让你更好地理解和掌握后端开发的核心技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息和启示。
128 6

热门文章

最新文章

推荐镜像

更多