搭建Zabbix分布式监控

news/2024/7/7 22:18:59

1、实现zabbix监控nginx

实验环境:

server1    172.25.1.1                 server          redhat7

test1        172.25.1.11                agent          redhat7

在“手动添加”主机的基础上进行扩展

开启服务:

[root@server ~]# systemctl start zabbix-server

[root@server ~]# systemctl enable zabbix-server

[root@server ~]# systemctl start mariadb

[root@server ~]# systemctl enable mariadb

[root@test1 ~]# /etc/init.d/zabbix-agent start
在agent端提前下载好nginx的rpm包,nginx-1.8.0-1.el6.ngx.x86_64.rpm

[root@test1 ~]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm              //也可以下载nginx源码包,不过编译的时候必须添加status模块

注意:这里由于笔者的主机为企业6,所以安装包为6版本

[root@test1 ~]# cd /etc/nginx/conf.d/

[root@test1 conf.d]# vim default.conf                               //增加了一个status模块

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        location / {
            root   html;
            index  index.html index.htm;
        }

    location /nginx-status {
        stub_status on;
        access_log off;
    }

[root@test1 ~]# 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@test1 ~]# nginx                    //启动nginx服务

网页进行nginx的状态查看

为了安全考虑,我们可以设置黑白名单

        location /nginx-status {
            stub_status on;
            access_log off;
            allow 172.25.1.11;                                    //只允许本机使用,这里的ip也可以写成127.0.0.1
            deny all;                                                   //除本机外所有访问拒绝
        }

重起nginx服务,此时其他主机不可对其状态进行访问

例如物理机:

本机172.25.1.11主机进行访问:

[root@test1 ~]# curl 172.25.1.11/nginx-status

通过正则表达式取出状态值

[root@test1 ~]# curl -s http://172.25.1.11/nginx-status | grep Active | awk '{print $3}'

[root@test1 ~]# cd /etc/zabbix/
[root@test1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@test1 zabbix]# cd zabbix_agentd.d/
[root@test1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@test1 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@test1 zabbix_agentd.d]# ls
userparameter_mysql.conf  userparameter_nginx.conf
[root@test1 zabbix_agentd.d]# vim userparameter_nginx.conf

UserParameter=nginx.active,curl -s http://172.25.1.11/ngimx-status | grep Active | awk '{print $3}'

[root@test1 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart                 //重启服务

以相同的方式分别取出其他状态并进行绘图:

[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $1}'           
27
[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $2}'
28
[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $3}'
32

[root@test1 zabbix_agentd.d]# vim userparameter_nginx.conf                        //其中的  nginx.active等都是键值

UserParameter=nginx.active,curl -s http://172.25.1.11/nginx-status | grep Active | awk '{print $3}'
UserParameter=nginx1.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $1}'
UserParameter=nginx2.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $2}'
UserParameter=nginx3.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $3}'

[root@test1 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart

[root@server1 zabbix_agentd.d]# cd

[root@server1 ~]# ls              //提前可下载好这个rpm工具包

zabbix-get-3.4.6-1.el7.x86_64.rpm

[root@server1 ~]# rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx.active'  
1
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx1.active'  
46
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx2.active'  
47
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx3.active'

此时我们到zabbix网页添加监控项

点击“配置”——>主机

点击test1的监控项,并点击有上角的“添加监控”选项:

点击右端的“创建监控项" ,填写键值,键值必须与userparameter_nginx.conf 文件中的键值相同——>填写完点击“添加”

点击图形——>点击有上角的“创建图形”   ,这里笔者写的绘图风格为“填满的区域”

点击“添加”添加nginx_status

点击图形右边的“预览”选项:              这里的绘图风格为“填满的区域”,读者可自行改变风格

以这样的添加监控的方式继续添加剩下的三项:

点击监控项进行添加:

最终添加完后的监控项共四项,结果如下:

继续点击图形——>点击下面的“添加”——>开始添加图形:

点击查看预览就可以看到图形啦。

我们可以绘出“填满的区域”风格的图:

也可以是“线”风格的:

实验到此就结束啦!!!

另外补充:如果搭建完没有看到线或者任何图案,则说明你的主机可能是不可用的,这时你查看test1是否处于可用状态,即“可用性“那一栏是否是绿色的,若不是,检查服务是否并未启动等。


http://lihuaxi.xjx100.cn/news/238053.html

相关文章

区块链侧链技术优势

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!asch使用的是不同于以太坊和比特币的侧链架构,dapp是运行在侧链上的,每套侧链对应一个dapp。 侧链的独立性 侧链架构的好处是代码和数据…

如何删除GO语言中安装的包

为什么80%的码农都做不了架构师?>>> 搜索了一下,只发现有安装包的相关说明,go的命令中,没有uninstall之类的命令。 参考: Go packages 中的解释: To uninstall, just delete the folder with t…

密码破解

思科启动过程:1、POTS:加点自检 - 设备通电以后,检查设备的各种硬件是否完好(橙--绿,无故障的是绿色或者灭掉) 2、查找操作系统(yes/no)flash网络3、查找“启动配置文件”:startup-config(yes/n…

git操作手册_基本的Git手册

git操作手册介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you a little bit about Git including:嗨! 我是Sanjula ,在本指南中,我希望教您一些有关Git的知识,包括: What Git is 什么是…

zabbix部署onealert云警告平台

onealert告警功能 告警 All In One,支持微信、邮箱、短信、APP、电话告警支持接入 Zabbix、Nagios、阿里云、腾讯云、监控宝等等告警信息灵活的分配策略,可灵活的分配告警信息发送给相关人员微信、邮箱、app 等告警方式全部免费实验环境: 首…

三大软件公司争霸赛区块链

导语:\\区块链技术发展到今天,区块链的扩容、吞吐量、运维弹性(Operational Resilience)、安全性、企业支持和Token管理等挑战,已成为区块链进一步发展绕不开的技术问题。\\突破这些现实技术挑战,不仅构能建…

基于信任的私人区块链可信吗?

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!真相其实并不遥远 围绕区块链技术商业化,关于保障分布式账本区块链系统历史记录的出处,出现了两个不同的思想流派: 其一是…

F#探险之旅(三):命令式编程(上)

F#系列随笔索引页面 在本系列的第二部分(函数式编程上、中、下)中,我们了解了如何使用F#进行纯粹的函数式编程。但是在一些情况下,比如I/O,几乎不能避免改变状态,也就是说会带来side effect。F#并不强求你以…