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["
- 文章链接: https://blog.zhangcun.store/2022/12/23/ansible-yi-jian-an-zhuang-zabbix-agent/
- 版权声明: 本网站所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
你的赏识是我前进的动力
支付宝
微信
