ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

zabbix-agent

2022-01-11 15:03:20  阅读:163  来源: 互联网

标签:ip add agent server zabbix 监控


Zabbix-agent监控

 

好久不更新,一口气更新几篇,终于到了我最喜欢的zabbix监控这篇!
zabbix可以监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。我们知道,zabbix由2部分构成,zabbix server与可选组件zabbix agent,zabbix-server是基于mysql存储的,监控文件都存到mysql库里,上次已经安装完zabbix server,这次主要是关于agent的操作,不废话了,开整:

Zabbix-agent服务及配置:

在对应的客户端上安装zabbix
查看服务状态:systemctl status zabbix-agent
服务启动:systemctl start zabbix-agent
在这里插入图片描述
如果启动报如下错误,kill进程重新启动即可:
在这里插入图片描述
启动服务之后,agent变配置完成,之后去web端进行监控项操作,由于我们服务器比较多,所以使用脚本进行agent服务的批量启动,在web端也需要批量添加服务器,比较麻烦,好在zabbix支持自动发现满足条件的主机。

配置自动发现规则

可添加网段,能够发现整个网段内启动agent服务的机器,但要注意配置-自动发现-设备唯一性准则 不要选ip地址,否则会发现不了:

在这里插入图片描述

配置DISK监控项

zabbix模板自带CPU与内存的监控项,没有DISK和NET的监控项,所以需要我们自己添加:
首先,磁盘的在客户端进行配置:
在这里插入图片描述
对每个启动agent服务的客户端,(通常在/etc/zabbix下)添加磁盘的conf 文件,并重启zabbix-agent
在这里插入图片描述
然后去zabbix-server查看配置是否生效,切换到zabbix-server的bin目录执行如下命令,ip换成agent服务器ip,能正常读取出来就可以,
./zabbix_get -s 192.1.1.1 -p 10050 -k custom.vfs.dev.write.ops[sda]
在这里插入图片描述

配置NET监控项

net的很简单,只需要监控项net写上具体网卡就可以监控,我的是ens160:
在这里插入图片描述

聚合图形

zabbix支持聚合图形的编辑和实时监控,可导出为xml文件,并可以导入xml图表
在这里插入图片描述
在这里插入图片描述
我们的需求是每行添加五个图表,对应一个IP。然后多少个agent就有多少行,使用java直接生成xml比较简单,要注意0那行需要选择0静态,不然页面会跟着选择的ip乱跑 :

import java.util.ArrayList;
import java.util.List;


public class ZabbixXml {

    public String createXml(List <String> ip) {

        int hsize = 5;
        int vsize = ip.size ();

        String name,host;
        int x,y;

        //5种图表监控项,根据需要添加
        List<String> imgname = new ArrayList<String>() {
            {
                this.add ( "CPU utilization" );
                this.add ( "Memory usage" );
                this.add ( "IO" );
                this.add ( "Network traffic on ens160" );
                this.add ( "CPU load" );
            }
        };
        String head = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
                "<zabbix_export>\n" +
                "    <version>4.0</version>\n" +
                "    <date>2020-11-12T07:21:22Z</date>\n" +
                "    <screens>\n" +
                "        <screen>\n" +
                "            <name>Zabbix server</name>\n" +
                "            <hsize>"+hsize+"</hsize>\n" +
                "            <vsize>"+vsize+"</vsize>\n" +
                "            <screen_items>\n";

        for(int i=0;i<ip.size ();i++ ){
            host = ip.get ( i );

            for(int j =0;j<5;j++) {
                x=j;
                y=i;
                name = imgname.get ( j );
                String screen_item = "                    <screen_item>\n" +
                        "                    <resourcetype>0</resourcetype>\n" +
                        "                    <width>500</width>\n" +
                        "                    <height>100</height>\n" +
                        "                    <x>"+x+"</x>\n" +
                        "                    <y>"+y+"</y>\n" +
                        "                    <colspan>1</colspan>\n" +
                        "                    <rowspan>1</rowspan>\n" +
                        "                    <elements>0</elements>\n" +
                        "                    <valign>0</valign>\n" +
                        "                    <halign>0</halign>\n" +
                        "                    <style>0</style>\n" +
                        "                    <url/>\n" +
                        "                    <dynamic>0</dynamic>\n" +
                        "                    <sort_triggers>0</sort_triggers>\n" +
                        "                    <resource>\n" +
                        "                        <name>"+name+"</name>\n" +
                        "                        <host>"+host+"</host>\n" +
                        "                    </resource>\n" +
                        "                    <max_columns>3</max_columns>\n" +
                        "                    <application/>\n" +
                        "                </screen_item>\n";
                head=head+screen_item;
            }
        }
        String end = "            </screen_items>\n" +
                "        </screen>\n" +
                "    </screens>\n" +
                "</zabbix_export>";

        return head+end;
    }
    public static void main(String args[]){
        List <String> ip =new ArrayList<String>() {
            {
            //换下IP
                this.add ( "192.168.1.1" );
                this.add ( "192.168.1.2" );
            }
        };
        ZabbixXml test = new ZabbixXml ();
        System.out.println ( test.createXml ( ip ) );

    }
}

然后将生成的文本复制成xml导入到zabbix,就可以生成相对定制化的监控图表:
在这里插入图片描述

支持展示时间段,可配置最长数据保存时间等:

在这里插入图片描述

标签:ip,add,agent,server,zabbix,监控
来源: https://www.cnblogs.com/zhaoqian0129/p/15788305.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有