zabbix自动注册简单介绍---创建自动注册的actions

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

下面就是自动注册

Zabbix-2.4-安装-3-LMLPHP

在operations这里找到Add host

 Zabbix-2.4-安装-3-LMLPHP
 
 
 action里面可以加入如下动作。自动加入到组,并且自动Link一个模板
 Zabbix-2.4-安装-3-LMLPHP

 Zabbix-2.4-安装-3-LMLPHP

 
 
创建Screen

screen让你可以把喜欢或者觉得重要的graph加入到一个图形界面里显示。比如同时显示2个监控图形。
Zabbix-2.4-安装-3-LMLPHP

 Zabbix-2.4-安装-3-LMLPHP

创建1个2行2列的screen。

 Zabbix-2.4-安装-3-LMLPHP

 
 
 Zabbix-2.4-安装-3-LMLPHP

 点击change可以添加图形
Zabbix-2.4-安装-3-LMLPHP

点击change可以随便选择,选择放graph
注意下面Dynamic要勾上
Zabbix-2.4-安装-3-LMLPHP

4个change都改了
Zabbix-2.4-安装-3-LMLPHP

 面板这里这里可以添加喜爱的screen
Zabbix-2.4-安装-3-LMLPHP

加入进来了

Zabbix-2.4-安装-3-LMLPHP

从Monitor--Screens里也可以加

Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

zabbix监控主动模式


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

 
下面是目前被动模式的配置
Zabbix-2.4-安装-3-LMLPHP

 Zabbix-2.4-安装-3-LMLPHP

 
 
 
 
 添加agent主动监控模板
模板可以克隆目前的被动模板,然后更改为主动模式
Zabbix-2.4-安装-3-LMLPHP

全部克隆

 Zabbix-2.4-安装-3-LMLPHP

 
zabbix基本上除了加机器,所有地方都可以克隆,其余均不动,这里加个Active。点击下面的add即可
Zabbix-2.4-安装-3-LMLPHP

 
看到了刚才克隆的
 Zabbix-2.4-安装-3-LMLPHP

 
 
点开这个模板,你能看到它连接了某个模板
Zabbix-2.4-安装-3-LMLPHP

点击进去

Zabbix-2.4-安装-3-LMLPHP

点击Full clone

 
 Zabbix-2.4-安装-3-LMLPHP

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

Zabbix-2.4-安装-3-LMLPHP

 
 Zabbix-2.4-安装-3-LMLPHP

把系统模板的链接改下,改成主动的那个
Zabbix-2.4-安装-3-LMLPHP

改成如下

Zabbix-2.4-安装-3-LMLPHP

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

 
找到这个模板,然后全选
Zabbix-2.4-安装-3-LMLPHP

批量修改

 Zabbix-2.4-安装-3-LMLPHP

下面这里改成Active的

Zabbix-2.4-安装-3-LMLPHP

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

 Zabbix-2.4-安装-3-LMLPHP

 
批量更改link的模板的items
 Zabbix-2.4-安装-3-LMLPHP

也改成active的

Zabbix-2.4-安装-3-LMLPHP

 改成如下的了
 
 Zabbix-2.4-安装-3-LMLPHP

 再次查看系统active的模板,items全部变成active的了
Zabbix-2.4-安装-3-LMLPHP

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

Zabbix-2.4-安装-3-LMLPHP

node2的配置文件需要更改
把Server和ListenPort都注释掉
Zabbix-2.4-安装-3-LMLPHP

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

Zabbix-2.4-安装-3-LMLPHP

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

 Zabbix-2.4-安装-3-LMLPHP

 过滤下配置
[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-2.4-安装-3-LMLPHP

 
 
 模板里添加此主机
 Zabbix-2.4-安装-3-LMLPHP

 
 
 这时候,主机这里显示灰色
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

 监控这里开始有数据了,表示主动监控成功了
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

 
 
 
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模式下

Zabbix-2.4-安装-3-LMLPHP

这里虽然默认是0,最好是取消注释,下面是Zabbix Server的地址
Zabbix-2.4-安装-3-LMLPHP

下面这里是Zabbix Server的端口,默认就是10051,不用更改,下面是proxy的名称,这里不要和别的proxy以及agent重名了。
 Zabbix-2.4-安装-3-LMLPHP

DBHost和DBName都没变,不用修改

 Zabbix-2.4-安装-3-LMLPHP

 用户名和密码。
Zabbix-2.4-安装-3-LMLPHP

检查配置

[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节点
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

生产中最好把描述写上,方便别人
Zabbix-2.4-安装-3-LMLPHP

接下来类似正常添加主机,先把下面的删除了
Zabbix-2.4-安装-3-LMLPHP

接下来把node2加进去,让proxy监控,和一般加主机没太多区别
Zabbix-2.4-安装-3-LMLPHP

下面这里要选择proxy

 Zabbix-2.4-安装-3-LMLPHP

先别着急add,模板这里也要改。改成如下
Zabbix-2.4-安装-3-LMLPHP

 添加完毕,如下
Zabbix-2.4-安装-3-LMLPHP

还需要把node2的指向改成proxy

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

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

Zabbix-2.4-安装-3-LMLPHP

重启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的配置文件,这里可以随便写,但是要有意义,还不能和别的重名
Zabbix-2.4-安装-3-LMLPHP

 网页这里配置的proxy名字也要对应
Zabbix-2.4-安装-3-LMLPHP

 
 
 

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


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

 
 
 自动注册肯定运行在主动模式下了
页面上删除机器,使用自动注册让它被监控
更改agent配置
 

下面的163结尾的地址是proxy的地址
 Zabbix-2.4-安装-3-LMLPHP

hostname肯定是唯一的
Zabbix-2.4-安装-3-LMLPHP

1、自动注册
下面这个类似角色,模板
下面是你的主机元数据,通过获取agent端的元数据,可以提取关键字,然后关联相应的模板。这里不用修改
Zabbix-2.4-安装-3-LMLPHP

 
system.uname是什么呢,作用是什么呢,我这metadata是通过这个监控项获取,你不用设置
Zabbix-2.4-安装-3-LMLPHP

通过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-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

条件,因为那个zabbix连在proxy上的
首先你那个agent主机是连在proxy上的,其次你的matedata类似Linux
Zabbix-2.4-安装-3-LMLPHP

 
就是下面这种
[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一个模板

Zabbix-2.4-安装-3-LMLPHP

创建完毕,等着,一会就出现了发现的主机
Zabbix-2.4-安装-3-LMLPHP

 Zabbix-2.4-安装-3-LMLPHP

一会出来了
你要是觉得慢,可以重启下agent,agent第一次起来就去请求数据了
检查,已经自动加入到组里了
Zabbix-2.4-安装-3-LMLPHP

已经自动link上模板了
Zabbix-2.4-安装-3-LMLPHP

 
 
Zabbox自动化监控---自动发现

 
这次不会用到Zabbix proxy,是Zabbix server主动扫描IP段,继续删除这台机器
Zabbix-2.4-安装-3-LMLPHP

删除完毕后action这里自动注册关闭了,防止干扰下面的实验,你以为成功了,其实是它的功劳
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

接下来不使用proxy了
使用discovery,你可以配置一下扫描一个ip段,扫描到之后把它加进来
先改成被动模式,node的agent.conf改成如下,server的地址
Zabbix-2.4-安装-3-LMLPHP

StartAgents改成3
Zabbix-2.4-安装-3-LMLPHP

下面这里改成默认的127.0.0.1
Zabbix-2.4-安装-3-LMLPHP

 
其余的不用管了
[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默认有一个,点开
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

 
IP range小点,不然等待所有主机超时,慢,因为做实验,所以无所谓
以IP地址为标识
勾上enabled
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

这时候需要创建action,注意右边
Zabbix-2.4-安装-3-LMLPHP

Zabbix-2.4-安装-3-LMLPHP

默认有一个是关闭的,在它的基础上改
Zabbix-2.4-安装-3-LMLPHP

默认的这些都不用改
Zabbix-2.4-安装-3-LMLPHP

operation这里添加add host
Zabbix-2.4-安装-3-LMLPHP

然后点击右边的启用
Zabbix-2.4-安装-3-LMLPHP

看到这里又自动发现了
Zabbix-2.4-安装-3-LMLPHP

05-11 05:16