• Zabbix-2.4-安装-3


     
    zabbix自动注册简单介绍---创建自动注册的actions
     
    怎么把1000台机器加zabbix里
    zabbix提供了网络发现和自动注册2个功能,发现有机器连过来,给它加个模板
    如果是windows,link一个win的模板。如果是linux,link一个linux的模板。
    server主动发现,是你设置一个IP范围,server主动去扫描
    自动注册是agent端发起的。这些都依赖于action
    甚至可以让它自动加入到主机组
     

    下面就是自动注册

    在operations这里找到Add host

     
     
     
     action里面可以加入如下动作。自动加入到组,并且自动Link一个模板
     
     
     
     
    创建Screen
    screen让你可以把喜欢或者觉得重要的graph加入到一个图形界面里显示。比如同时显示2个监控图形。
     

    创建1个2行2列的screen。

     
     
     
     
     点击change可以添加图形
     
    点击change可以随便选择,选择放graph
    注意下面Dynamic要勾上
     
    4个change都改了
     面板这里这里可以添加喜爱的screen

    加入进来了

    从Monitor--Screens里也可以加

     


    zabbix监控主动模式


    默认情况下zabbix是运行在被动模式,这个主动和被动是针对zabbix-agent来说的
    agent默认监听一个端口,10050,server会定期主动过来要数据。server端主动的发命令,告诉agent。取哪些数据
    如果1万台机器,zabbix同时要发10000个请求到agent,问他们数据。这么弄肯定有问题
    zabbix agent也支持主动模式,主动给服务器发消息,这时候用于分布式比较好了

     
    下面是目前被动模式的配置
     
     
     
     
     
     添加agent主动监控模板
    模板可以克隆目前的被动模板,然后更改为主动模式

    全部克隆

     
     
    zabbix基本上除了加机器,所有地方都可以克隆,其余均不动,这里加个Active。点击下面的add即可
     
    看到了刚才克隆的
     
     
     
    点开这个模板,你能看到它连接了某个模板

    点击进去

     

    点击Full clone

     
     

    把克隆出来的改成如下名字,多了个Active用来区分,然后点击Add

     
     
     
    把系统模板的链接改下,改成主动的那个

    改成如下

    以上更改仅仅是添加了新的模板,items这里并没改掉

     
    找到这个模板,然后全选

    批量修改

     

    下面这里改成Active的

    右边的items这里都变成了Active的。上面没变的是link的另一个模板的,因此link的模板也要改

     
     
    批量更改link的模板的items
     

    也改成active的

     改成如下的了
     
     
     再次查看系统active的模板,items全部变成active的了

    删除之前的node2主机,改成主动模式添加

    node2的配置文件需要更改
    把Server和ListenPort都注释掉

    下面是设置为0才表示agent开启主动监控模式

    把ServerActive改成Zabbix Server的地址,把Hostname改成自己的主机名

     
     过滤下配置
    [root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    StartAgents=0
    ServerActive=10.0.1.161
    Hostname=linux-node2.example.com
    Include=/etc/zabbix/zabbix_agentd.d/
    UserParameter=login-user,uptime | awk -F ' '  '{print $4}'
    [root@linux-node2 ~]# 
    

    重启agent服务

    [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]
    [root@linux-node2 ~]# 
    

    看到不再监听端口了

    [root@linux-node2 ~]# netstat -lntp 
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2075/sshd           
    tcp        0      0 :::22                       :::*                        LISTEN      2075/sshd           
    [root@linux-node2 ~]# ps -ef | grep zabbix
    zabbix    76194      1  0 19:38 ?        00:00:00 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
    zabbix    76195  76194  0 19:38 ?        00:00:00 zabbix_agentd: collector [idle 1 sec]          
    zabbix    76197  76194  0 19:38 ?        00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]   
    root      76211  75384  0 19:42 pts/0    00:00:00 grep --colour=auto zabbix
    [root@linux-node2 ~]# 
    

      

    网页里添加主机

     
     
     模板里添加此主机
     
     
     
     这时候,主机这里显示灰色

     监控这里开始有数据了,表示主动监控成功了
     
     
     
    Zabbix Proxy
     
    假如你有多个机房,你每个机房都可以部署zabbix proxy,它的作用主要方面是减轻Zabbix Server的压力
    有些公司有1万个主机需要监控,部署了10个Zabbix Proxy,proxy 不处理任何东西,仅仅搜集数据
    在10.0.1.163机器上安装Zabbix Proxy
    先配置yum源
    mkdir /tools -p
    cd /tools/
    wget   http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
    rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm
    

      

    zabbix-proxy需要有一个数据库,因为它要搜集数据,另外zabbix-proxy是没有web界面的,它只是一个进程
    yum install -y zabbix-proxy  zabbix-proxy-mysql mysql-server
    

      

    安装完毕
    [root@linux-proxy tools]# yum install -y zabbix-proxy  zabbix-proxy-mysql mysql-server
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * base: mirrors.cn99.com
     * extras: mirrors.cn99.com
     * updates: mirrors.cn99.com
    Package zabbix-proxy-2.4.8-1.el6.x86_64 already installed and latest version
    Package zabbix-proxy-mysql-2.4.8-1.el6.x86_64 already installed and latest version
    Package mysql-server-5.1.73-8.el6_8.x86_64 already installed and latest version
    Nothing to do
    [root@linux-proxy tools]# 
    

    启动刚装的mysql,并设置密码

    [root@linux-proxy tools]# /etc/init.d/mysqld start
    Initializing MySQL database:  WARNING: The host 'linux-proxy.example.com' could not be looked up with resolveip.
    This probably means that your libc libraries are not 100 % compatible
    with this binary MySQL version. The MySQL daemon, mysqld, should work
    normally with the exception that host name resolving will not work.
    This means that you should use IP addresses instead of hostnames
    when specifying MySQL privileges !
    Installing MySQL system tables...
    OK
    Filling help tables...
    OK
    
    To start mysqld at boot time you have to copy
    support-files/mysql.server to the right place for your system
    
    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
    To do so, start the server, then issue the following commands:
    
    /usr/bin/mysqladmin -u root password 'new-password'
    /usr/bin/mysqladmin -u root -h linux-proxy.example.com password 'new-password'
    
    Alternatively you can run:
    /usr/bin/mysql_secure_installation
    
    which will also give you the option of removing the test
    databases and anonymous user created by default.  This is
    strongly recommended for production servers.
    
    See the manual for more instructions.
    
    You can start the MySQL daemon with:
    cd /usr ; /usr/bin/mysqld_safe &
    
    You can test the MySQL daemon with mysql-test-run.pl
    cd /usr/mysql-test ; perl mysql-test-run.pl
    
    Please report any problems with the /usr/bin/mysqlbug script!
    
                                                               [  OK  ]
    Starting mysqld:                                           [  OK  ]
    [root@linux-proxy tools]# /usr/bin/mysqladmin -uroot password 'zabbix'
    [root@linux-proxy tools]# mysql -uroot -pzabbix
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.1.73 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | test               |
    +--------------------+
    3 rows in set (0.00 sec)
    
    mysql> 
    

      

    创建zabbix_proxy库,并授权zabbix用户,导入数据

    [root@linux-proxy tools]# rpm -ql zabbix-proxy-mysql
    /usr/sbin/zabbix_proxy_mysql
    /usr/share/doc/zabbix-proxy-mysql-2.4.8
    /usr/share/doc/zabbix-proxy-mysql-2.4.8/create
    /usr/share/doc/zabbix-proxy-mysql-2.4.8/create/schema.sql
    [root@linux-proxy tools]# /usr/bin/mysqladmin -uroot password 'zabbix'
    /usr/bin/mysqladmin: connect to server at 'localhost' failed
    error: 'Access denied for user 'root'@'localhost' (using password: NO)'
    [root@linux-proxy tools]# mysql -uroot -pzabbix
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 5
    Server version: 5.1.73 Source distribution
    
    Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> create database zabbix_proxy character set utf8;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> use zabbix_proxy;
    Database changed
    mysql> source  /usr/share/doc/zabbix-proxy-mysql-2.4.8/create/schema.sql
    Query OK, 0 rows affected (0.01 sec)
    
    Query OK, 0 rows affected (0.02 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    

      

    修改proxy配置文件
     
    [root@linux-proxy tools]# vim /etc/zabbix/zabbix_proxy.conf 
    

    看到如下注释,proxy也可以运行在Active和Passtive模式下,工作中主要还是运行在Active模式下

    这里虽然默认是0,最好是取消注释,下面是Zabbix Server的地址
    下面这里是Zabbix Server的端口,默认就是10051,不用更改,下面是proxy的名称,这里不要和别的proxy以及agent重名了。
     

     DBHost和DBName都没变,不用修改

     
     用户名和密码。

    检查配置

    [root@linux-proxy tools]# vim /etc/zabbix/zabbix_proxy.conf 
    [root@linux-proxy tools]# grep '^[a-Z]'  /etc/zabbix/zabbix_proxy.conf
    ProxyMode=0
    Server=10.0.1.161
    Hostname=node3-proxy
    LogFile=/var/log/zabbix/zabbix_proxy.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_proxy.pid
    DBName=zabbix_proxy
    DBUser=zabbix
    DBPassword=zabbix
    DBSocket=/var/lib/mysql/mysql.sock
    ExternalScripts=/usr/lib/zabbix/externalscripts
    [root@linux-proxy tools]# 
    

      

     启动服务,检查监听,看到proxy使用的是10051端口
    [root@linux-proxy tools]# /etc/init.d/zabbix-proxy start
    Starting Zabbix proxy:                                     [  OK  ]
    [root@linux-proxy tools]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      2076/sshd           
    tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      13310/zabbix_proxy  
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      13219/mysqld        
    tcp        0      0 :::22                       :::*                        LISTEN      2076/sshd           
    tcp        0      0 :::10051                    :::*                        LISTEN      13310/zabbix_proxy  
    [root@linux-proxy tools]# 
    

      

     
    接下来在zabbix-server上加上这个proxy节点

    生产中最好把描述写上,方便别人
    接下来类似正常添加主机,先把下面的删除了
     
    接下来把node2加进去,让proxy监控,和一般加主机没太多区别

    下面这里要选择proxy

     
    先别着急add,模板这里也要改。改成如下
     添加完毕,如下

    还需要把node2的指向改成proxy

    [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf 
    

    下面改成proxy地址,因为它要把数据发给proxy

    重启agent

    [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]
    [root@linux-node2 ~]# 
    

      

    配置的一个小插曲
    网页上加入对linux-node2.example.com 主机的监控,Zabbix Proxy必须能解析node2的主机名。如果解析不了,会报如下错误
    [root@linux-proxy tools]# tail -f /var/log/zabbix/zabbix_proxy.log 
     13537:20170315:225713.912 proxy #17 started [http poller #1]
     13542:20170315:225713.918 proxy #22 started [history syncer #4]
     13531:20170315:225713.918 proxy #11 started [trapper #2]
     13543:20170315:225713.918 proxy #23 started [self-monitoring #1]
     13532:20170315:225713.918 proxy #12 started [trapper #3]
     13528:20170315:225713.919 proxy #8 started [poller #5]
     13533:20170315:225713.922 proxy #13 started [trapper #4]
     13538:20170315:225713.941 proxy #18 started [discoverer #1]
     13520:20170315:225813.966 sending heartbeat message to server failed: error:"negative response: "failed"", info:"proxy "linux-proxy.example.com" not found"
     13534:20170315:225858.853 cannot send list of active checks to [10.0.1.162]: host [linux-node2.example.com] not found
    

      

    下面是正常情况下的日志,Proxy从Server那边获取数据,然后接受node2的数据,如果解析不了node2的主机名,就会报上面错误
    [root@linux-proxy tools]# tail -f /var/log/zabbix/zabbix_proxy.log 
     13638:20170315:230149.414 proxy #17 started [http poller #1]
     13642:20170315:230149.415 proxy #21 started [history syncer #3]
     13634:20170315:230149.415 proxy #13 started [trapper #4]
     13637:20170315:230149.420 proxy #16 started [housekeeper #1]
     13641:20170315:230149.420 proxy #20 started [history syncer #2]
     13633:20170315:230149.424 proxy #12 started [trapper #3]
     13643:20170315:230149.426 proxy #22 started [history syncer #4]
     13635:20170315:230149.431 proxy #14 started [trapper #5]
     13639:20170315:230149.448 proxy #18 started [discoverer #1]
     13620:20170315:230149.453 received configuration data from server, datalen 7423
    

      

     另外proxy的配置文件,这里可以随便写,但是要有意义,还不能和别的重名
     网页这里配置的proxy名字也要对应
     
     
     
     

    Zabbox自动化监控---自动注册


    自动化监控分为:
    agent自动注册
    server端自动发现
    通过zabbix api方式插入数据(比如从cmdb读取资产里的主机,然后通过Zabbix的api插入Zabbix数据库)

     
     
     自动注册肯定运行在主动模式下了
    页面上删除机器,使用自动注册让它被监控
    更改agent配置
     
     
    下面的163结尾的地址是proxy的地址
     
     
    hostname肯定是唯一的
     
    1、自动注册
    下面这个类似角色,模板
    下面是你的主机元数据,通过获取agent端的元数据,可以提取关键字,然后关联相应的模板。这里不用修改
     
    system.uname是什么呢,作用是什么呢,我这metadata是通过这个监控项获取,你不用设置
    通过zabbix_get 获取值下面,类似uname -a的输出
    看到有Linux,server端就给你加Linux模板
    [root@linux-node1 ~]# zabbix_get -s 10.0.1.161 -k system.uname
    Linux linux-node1.example.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64
    
    就改了上面这一个
    [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]
    [root@linux-node2 ~]# 
    

      

    接下来web页面配置
    配置一个事件,很少有人看到事件源自哪里
    选择自动注册,这样再选择create action
     

    条件,因为那个zabbix连在proxy上的
    首先你那个agent主机是连在proxy上的,其次你的matedata类似Linux
     
    就是下面这种
    [root@linux-node1 ~]# zabbix_get -s 10.0.1.161 -k system.uname
    Linux linux-node1.example.com 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64
    

    这两个条件
    注意你的条件是a and b,operation 表示你想让它干什么。添加这台主机,然后添加主机组,再link一个模板

    创建完毕,等着,一会就出现了发现的主机
     
    一会出来了
    你要是觉得慢,可以重启下agent,agent第一次起来就去请求数据了
    检查,已经自动加入到组里了
    已经自动link上模板了
     
     
    Zabbox自动化监控---自动发现
     
    这次不会用到Zabbix proxy,是Zabbix server主动扫描IP段,继续删除这台机器
    删除完毕后action这里自动注册关闭了,防止干扰下面的实验,你以为成功了,其实是它的功劳

    接下来不使用proxy了
    使用discovery,你可以配置一下扫描一个ip段,扫描到之后把它加进来
    先改成被动模式,node的agent.conf改成如下,server的地址
    StartAgents改成3
    下面这里改成默认的127.0.0.1
     
    其余的不用管了
    [root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=10.0.1.161
    StartAgents=3
    ServerActive=127.0.0.1
    Hostname=linux-node2.example.com
    HostMetadataItem=system.uname
    Include=/etc/zabbix/zabbix_agentd.d/
    UserParameter=login-user,uptime | awk -F ' '  '{print $4}'
    [root@linux-node2 ~]# 
    

      

    以上就是改成被动模式,启用监听端口,连上server
    [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [  OK  ]
    Starting Zabbix agent:                                     [  OK  ]
    [root@linux-node2 ~]# 
    
     
    discovery默认有一个,点开
     
    IP range小点,不然等待所有主机超时,慢,因为做实验,所以无所谓
    以IP地址为标识
    勾上enabled
    这时候需要创建action,注意右边
    默认有一个是关闭的,在它的基础上改
    默认的这些都不用改
    operation这里添加add host
    然后点击右边的启用
    看到这里又自动发现了
     
  • 相关阅读:
    c# Array或List有个很实用的ForEach方法,可以直接传入一个方法对集合中元素操作
    js 检查字符串中是否包含中文(正则)
    Js 数组对象排序
    Js日期处理
    JS 检测字符串是否还有某个字符
    js获取URL传参
    使用JavaScript修改浏览器URL地址栏的实现代码
    上传、裁剪图片-----Jcrop图片裁剪插件
    zip拉链方法
    内置函数如help()...
  • 原文地址:https://www.cnblogs.com/nmap/p/6545859.html
Copyright © 2020-2023  润新知