iutyhrg 发表于 2016-5-31 09:20:21

Zabbix踩坑之旅 —— B类地址的自动发现

前言:由于公司服务器较多,因此需要对多台主机做监控很麻烦,由此又踩了个坑。
以下环境是Zabbix 2.4版本。

* 一、实现多主机密钥登陆

* 二、使用ansible对多主机进行安装agent

* 三、Zabbix添加自动发现

一、实现多主机密钥登陆
Zabbix server 创建密钥:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/meihua/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/meihua/.ssh/id_rsa.
Your public key has been saved in /home/meihua/.ssh/id_rsa.pub.
The key fingerprint is:
38:41:a2:fb:a0:1f:d8:4f:97:5c:dd:74:aa:af:c3:dd meihua@mh-test4
The key's randomart image is:
+--[ RSA 2048]----+
|    . .          |
|   . o         |
|.   .   . .|
|   .   o . o o   |
|o   o S . o    |
| + o . +   .   |
|o o o +... .   |
| . + .    o.. E|
|. .   .o.    |
+-----------------+





使用脚本将密钥传递给每个主机:
          由于密码是在TXT中记录好的,新建一个文件导入即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/env bash
#
source /etc/profile
while read A;do
   IP=$(echo $A|awk '{print $1}')         * 取出主机IP
   passwd=$(echo $A|awk '{print $3}')       * 取出主机密码
   /usr/bin/expect <<EOF                  * expect交互式键入
   set timeout -1                           * 设置永不超时
   spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $IP   
   expect {
# 对从未访问的主机键入yes
      -re "Are you sure you want to continue connecting (yes/no)?" {
          send "yes\r"   
          exp_continue
      }
# 将密码进行键入
      -re "password:" {
          send "$passwd\r"
          exp_continue
      }
   }
   expect eof
EOF
done < user.list
# vim user.list
172.16.1.100root   ABCDEFGHIJK
172.16.2.100root   ABCDEFGHIJK
172.16.3.100root   ABCDEFGHIJK
172.16.4.100root   ABCDEFGHIJK





二、使用ansible对多主机进行安装agent

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# cat /etc/ansible/hosts   * 将agent的IP写入hosts文件

172.16.1.100
172.16.2.100
172.16.3.100
172.16.4.100
# tree
.
├── ansible.cfg
├── hosts
├── hosts.bak
├── roles
│   └── zabbix
│       ├── files          * 将需要安装的软件包及zabbix_agent的配置文件放置files下
│       │   ├── zabbix-2.4.7-1.el6.x86_64.rpm
│       │   ├── zabbix-agent-2.4.7-1.el6.x86_64.rpm
│       │   ├── zabbix_agentd.conf
│       │   ├── zabbix-get-2.4.7-1.el6.x86_64.rpm
│       │   └── zabbix-sender-2.4.7-1.el6.x86_64.rpm
│       ├── handlers
│       │   └── main.yml
│       └── tasks
│         └── main.yml
└── zabbix.yml
# cat /etc/ansible/roles/zabbix/handles/tasks/main.yml
- name: Create file directory                           * 创建包存放目录
file: path=/packages/zabbix/ state=directory
- name: Copy The Zabbix agent packages to destination   * 将包复制过去
copy: src={{ item }} dest=/packages/zabbix/
with_items:
   - zabbix-agent-2.4.7-1.el6.x86_64.rpm
   - zabbix-2.4.7-1.el6.x86_64.rpm
   - zabbix-sender-2.4.7-1.el6.x86_64.rpm
   - zabbix-get-2.4.7-1.el6.x86_64.rpm
- name: install local files                           * 通过yum安装
yum: name={{ item }} state=present
with_items:
   - /packages/zabbix/zabbix-get-2.4.7-1.el6.x86_64.rpm
   - /packages/zabbix/zabbix-2.4.7-1.el6.x86_64.rpm
   - /packages/zabbix/zabbix-sender-2.4.7-1.el6.x86_64.rpm
   - /packages/zabbix/zabbix-agent-2.4.7-1.el6.x86_64.rpm
- name: local file synchronization                      * 将配置文件复制过去
copy: src=zabbix_agentd.conf dest=/etc/zabbix/zabbix_agentd.conf
notify:
   - restart local server
- name: start local Server                              * 启动zabbix-agentd
service: name=zabbix-agent state=started
# cat /etc/ansible/roles/zabbix/handlers/main.yml       * 配置文件变更时重启
- name: restart local server
service: name=zabbix-agent state=restarted
# ansible-play /etc/ansible/zabbix.yml                  * 执行即可





三、Zabbix添加自动发现
       坑:由于公司主机较多,因此需要通过Zabbix Discovery进行添加,减少工作量。但此时遇到了第一个“坑——B类地址自动发现”。
       通常都习惯了Zabbix的自动发现是C类的,因此B类地址需要特殊的设置方式,配置方法如下:

自动发现IP添加:
       C类添加方式:
               192.168.0.1-254
       B类添加方式:
               192.168.0-16.0-254         (注:地址范围数目大小要小于64K)
       掩码添加方式:
                  192.168.0.0/24               (注:掩码仅支持16-30)

=== 配置自动发现Configuration——》Discovery

=== 选择添加规则

=== 选择添加host操作

=== 完成自动发现


脚本写的比较烂,但是能实现就好,就是自动发现的B类地址要查看以下官方文档,其他还算是正常工作。

页: [1]
查看完整版本: Zabbix踩坑之旅 —— B类地址的自动发现