博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zabbix(六):项目实战之--自动发现nginx调度器及后端web服务集群、自定义参数监控...
阅读量:6982 次
发布时间:2019-06-27

本文共 3633 字,大约阅读时间需要 12 分钟。

项目:

 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,如需转载请自行联系原作者

你可能感兴趣的文章
MagicLinux+MySQL5+PHP5+Apache2+phpMyAdmin
查看>>
服务器RAID磁盘坏道修复实战
查看>>
SOAP
查看>>
理解Windows中的路由表和默认网关
查看>>
MalformedInputException处理
查看>>
OPENAPI的测试用例编写方法
查看>>
事件通知(Event Notification)实践
查看>>
java json和object互换
查看>>
脚本语言程序员怎么学习程序设计?
查看>>
帮助电力,轻松实现运维管理
查看>>
网络嗅探软件全接触(2)
查看>>
J0ker的CISSP之路:复习-Information Security Management(4)
查看>>
SCOM 2007 R2监控系统安装部署(三)安装SCOM报表服务器和审计服务器
查看>>
分布式监控系统Zabbix-3.0.3-完整安装记录 - 添加shell脚本监控
查看>>
Redis中的关系查询(范围查询,模糊查询等...)
查看>>
Git常用命令总结【转】
查看>>
Android高级界面组件的学习(三)
查看>>
JVM 常量池理解
查看>>
【设计模式】—— 创建者模式Builder
查看>>
Phalcon入门教程之模型CURD(2)
查看>>