前言:由于公司服务器较多,因此需要对多台主机做监控很麻烦,由此又踩了个坑。

以下环境是Zabbix 2.4版本。

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

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

* 三、Zabbix添加自动发现

一、实现多主机密钥登陆

Zabbix server 创建密钥:

[root@test ~]# 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-test4The key's randomart p_w_picpath is:+--[ RSA 2048]----+|    . .          ||   . o           ||  .   .     . .  ||   .   o . o o   ||  o   o S . o    || + o . +   .     ||o o o +  ... .   || . + .    o.. E  ||  . .     .o.    |+-----------------+

        

使用脚本将密钥传递给每个主机: 

          由于密码是在TXT中记录好的,新建一个文件导入即可

#!/bin/env bash#source /etc/profilewhile read A;do   IP=$(echo $A|awk '{print $1}')           * 取出主机IP   passwd=$(echo $A|awk '{print $3}')       * 取出主机密码   /usr/bin/expect <

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

# cat /etc/ansible/hosts   * 将agent的IP写入hosts文件[zabbix_user]172.16.1.100172.16.2.100172.16.3.100172.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类地址要查看以下官方文档,其他还算是正常工作。