ansible一键安装zabbix_agent
发表于:2022-12-23 |
playbook目录结构
mkdir /etc/ansible/playbook
cat zabbix_agent.yaml
见zabbix_agent.yaml
cd /etc/zabbix/roles
mkdir -p zabbix_agent/{tasks,handlers,templates,vars,files,meta}
touch zabbix_agent/{tasks,handlers,templates,vars}/main.yml
tree zabbix_agent/
---- ----
zabbix_agent/
├── files
├── handlers
│   └── main.yml
├── meta
├── tasks
│   └── main.yml
├── templates
│   └── main.yml
└── vars
    └── main.yml

10 directories, 0 files
---- ----

/etc/ansible/playbook/zabbix_agent.yaml

---
- hosts: ceshi
  remote_user: root
  roles:
    - zabbix_agent
    
/etc/ansible/roles/zabbix_agent/tasks/main.yaml

---
- name: 创建zabbix_agent.zip放置目录
  file: path=/soft state=directory
- name: 拷贝安装zip包
  copy: src=zabbix_agent.zip dest=/soft/zabbix_agent.zip
- name: 拷贝脚本
  copy: src=install-agent.sh dest=/soft/install-agent.sh
- name: 执行安装脚本
  shell: cd /soft && sh install-agent.sh

  
    
    
/etc/ansible/roles/zabbix_agent/files/install-agent.sh

测试为eth0,生产为bond0

yum install gcc-c++ -y
cd /soft
unzip zabbix_agent.zip
cd /soft/zabbix_agent
groupadd -g 10000 zabbix
useradd -u 10000 -g zabbix -m zabbix
tar -xvf pcre-8.31.tar
tar -zxvf zabbix-3.4.11.tar.gz
cd pcre-8.31
./configure --prefix=/usr/local/pcre
make && make install
cd ../zabbix-3.4.11
./configure --prefix=/usr/local/zabbix --enable-agent --with-libpcre=/usr/local/pcre/
make && make install
sed -i "s/Server=127.0.0.1/Server=66.1.2.200/g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=66.1.2.200/g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "/# StartAgents=3/a\StartAgents=0" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=`ifconfig eth0|grep inet|awk '{print $2}'|tr -d "addr:"`/g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "/# HostMetadata=/a\HostMetadata=centos" /usr/local/zabbix/etc/zabbix_agentd.conf
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
echo "/usr/local/pcre/lib" >> /etc/ld.so.conf
ldconfig -v
sed -i "22i\\# chkconfig: 2345 80 90" /etc/init.d/zabbix_agentd
sed -i "23i\\# description: ZABBIX SERVICE" /etc/init.d/zabbix_agentd
chkconfig --level 35 zabbix_agentd on
chkconfig --list|grep zabbix
service zabbix_agentd start
ps -ef|grep zabbix
echo "done"


检查剧本的语法
ansible-playbook --syntax-check main.yaml
模拟执行剧本
ansible-playbook -C main.yaml
直接执行剧本
ansible-playbook main.yaml



centos6.5
yum install gcc-c++ -y
mkdir /soft
mv /home/Urstrong2/zabbix_agent安装 /soft/
cd /soft/zabbix_agent安装
groupadd -g 10000 zabbix
useradd -u 10000 -g zabbix -m zabbix
tar -xvf pcre-8.31.tar
tar -zxvf zabbix-3.4.11.tar.gz
cd pcre-8.31
./configure --prefix=/usr/local/pcre
make && make install
cd ../zabbix-3.4.11
./configure --prefix=/usr/local/zabbix --enable-agent --with-libpcre=/usr/local/pcre/
make && make install
sed -i "s/Server=127.0.0.1/Server=66.1.2.200/g" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s/ServerActive=127.0.0.1/ServerActive=66.1.2.200/g" /usr/local/zabbix/etc/zabbix_agentd.conf
#sed -i "/# StartAgents=3/a\StartAgents=0" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=`ifconfig eth0|grep inet|awk '{print $2}'|tr -d "addr:"`/g" /usr/local/zabbix/etc/zabbix_agentd.conf
# 生产bond0,测试eth0
sed -i "/# HostMetadata=/a\HostMetadata=centos" /usr/local/zabbix/etc/zabbix_agentd.conf
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
echo "/usr/local/pcre/lib" >> /etc/ld.so.conf
ldconfig -v
sed -i "22i\\# chkconfig: 2345 80 90" /etc/init.d/zabbix_agentd
sed -i "23i\\# description: ZABBIX SERVICE" /etc/init.d/zabbix_agentd
chkconfig --level 35 zabbix_agentd on
chkconfig --list|grep zabbix
service zabbix_agentd start
ps -ef|grep zabbix
echo "done";


zabbix-agent自动发现并监控端口


#!/usr/bin/env python
#coding:utf-8
  
import os,json
 
port_list=[]
port_dict={"data":None}
cmd='''netstat -tnlp|grep -v 127.0.0.1|egrep -i "java|php|httpd|nginx|mysqld|redis|squid3|named"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq'''
local_ports=os.popen(cmd).readlines()
  
for port in local_ports:
    pdict={}
    pdict["
上一篇:
Ubuntu 20.04 修改网卡名称为eth0
下一篇:
Docker镜像制作实战:设置时区和系统编码