[Zabbix] zabbix-agent批量安装配置


本文总阅读量

0、本文批量安装使用ansible加shell脚本的方法,首先安装ansible

1
yum -y install ansible

1、修改ansible-server端免交互登录

cat /etc/ssh/ssh_config

1
2
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

修改好配置后,重新启动sshd服务即可,命令为:/etc/init.d/sshd restart (或 service sshd restart 或/bin/systemctl restart sshd.service)

2、编辑/etc/ansible/hosts主机配置文件

cat /etc/ansible/hosts

1
2
3
4
[test]
172.29.25.196 ansible_ssh_private_key_file=/root/test ansible_ssh_user=centos
172.29.16.6 ansible_ssh_private_key_file=/root/test ansible_ssh_user=centos
172.29.20.97 ansible_ssh_private_key_file=/root/test ansible_ssh_user=centos

hosts文件使用参数详解

1
2
3
4
5
6
7
8
9
10
11
ansible_ssh_host   #用于指定被管理的主机的真实IP
ansible_ssh_port #用于指定连接到被管理主机的ssh端口号,默认是22
ansible_ssh_user #ssh连接时默认使用的用户名
ansible_ssh_pass #ssh连接时的密码
ansible_sudo_pass #使用sudo连接用户时的密码
ansible_sudo_exec #如果sudo命令不在默认路径,需要指定sudo命令路径
ansible_ssh_private_key_file #秘钥文件路径,秘钥文件如果不想使用ssh-agent管理时可以使用此选项
ansible_shell_type #目标系统的shell的类型,默认sh
ansible_connection #SSH 连接的类型: local , ssh , paramiko,在 ansible 1.2 之前默认是 paramiko ,后来智能选择,优先使用基于 ControlPersist 的 ssh(支持的前提)
ansible_python_interpreter #用来指定python解释器的路径,默认为/usr/bin/python 同样可以指定ruby 、perl 的路径
ansible_*_interpreter #其他解释器路径,用法和ansible_python_interpreter类似,这里"*"可以是ruby或才perl等其他语言

上例中使用的是私钥和用户名,如果想要使用执行端口,密码,用户名可参考上面详解参数。

3、编辑批量上传脚本

cat /etc/ansible/scopy-test-zabbix.sh

1
2
3
4
5
6
7
- hosts: test
remote_user: centos
tasks:
- name: scopy zabbix to all hosts
copy: src="/root/zabbix-3.4.2.tar.gz" dest="/home/centos/zabbix-3.4.2.tar.gz"
- name: scopy zabbix-agent config to all hosts
copy: src="/home/centos/execute-zabbix.sh" dest="/home/centos/execute-zabbix.sh"

src:代表本机的源文件,dest代表目标端的路径
hosts:要与/etc/ansible/hosts下的[test]保持一致。

execute-zabbix.sh脚本为安装zabbix-agent脚本
cat /home/centos/execute-zabbix.sh

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
#!/bin/sh
mkdir /home/zabbix
useradd -r -s /sbin/nologin zabbix
yum -y install gcc gcc-c++ pcre-devel openssl-devel
mv /home/centos/zabbix-3.4.2.tar.gz /home/zabbix/
cd /home/zabbix
tar -zxvf zabbix-3.4.2.tar.gz
cd zabbix-3.4.2
/home/zabbix/zabbix-3.4.2/configure --prefix=/usr/local/zabbix --enable-agent --with-openssl
make
make install
#host1=`ifconfig eth0 |awk -F '[ :]+' 'NR==2 {print $3}'`
host1=`ip addr |grep dynamic |awk '{print $2}'|awk -F'/' '{print $1}'`
echo "LogFile=/tmp/zabbix_agentd.log
Server=172.29.12.85
ServerActive=172.29.12.85
Hostname=$host1"> /usr/local/zabbix/etc/zabbix_agentd.conf

cp /home/zabbix/zabbix-3.4.2/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
ln -s /usr/local/zabbix/etc/zabbix_agentd.conf /usr/local/etc/zabbix_agentd.conf
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
service zabbix_agentd start
chkconfig --add zabbix_agentd
chkconfig --level 35 zabbix_agentd on
netstat -lnpt | grep zabbix_agent

server端的ip地址根据自己的zabbix-proxy或者zabbix-server自行定义。

执行批量脚本将文件上传到目标端:

1
ansible-playbook /etc/ansible/scopy-test-zabbix.sh

在ansible-server端执行批量安装脚本

1
ansible test -m command -a 'sudo sh /home/centos/execute-zabbix.sh'

4、编辑查看zabbix-agent进程的脚本,并批量上传到被监控端

编辑检查zabbix-agent进程脚本
cat /home/centos/check-zabbix-port.sh

1
2
#!/bin/bash
netstat -tunlp |grep 10050

编辑批量上传脚本
cat /etc/ansible/scopy-test-check-zabbixport.sh

1
2
3
4
5
- hosts: test
remote_user: centos
tasks:
- name: scopy zabbix-check-port to all hosts
copy: src="/home/centos/check-zabbix-port.sh" dest="/home/centos/check-zabbix-port.sh"

执行批量上传脚本

1
ansible-playbook /etc/ansible/scopy-test-check-zabbixport.sh

在ansible-server服务端执行检查脚本

1
ansible test -m command -a 'sudo sh /home/centos/check-zabbix-port.sh'
目录
  1. 1. 0、本文批量安装使用ansible加shell脚本的方法,首先安装ansible
  2. 2. 1、修改ansible-server端免交互登录
  3. 3. 2、编辑/etc/ansible/hosts主机配置文件
  4. 4. 3、编辑批量上传脚本
  5. 5. 4、编辑查看zabbix-agent进程的脚本,并批量上传到被监控端

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog