반응형
-
zabbix-agent 설치 쉘 스크립트 version.1
쉘 스크립트를 실행할 때 인자값을 주어 실행하는 방식 입니다. sh [스크립트명] [자빅스 서버 IP] [firewalld 설정 여부] 와 같이 실행하시면 되고 firewalld 설정을 원한다면 set-firewalld를, 원하지 않는다면 두번째 인자값은 공백으로 두어도 무관 합니다.
- ex1) /root/zbx-agent-install.sh 에 코드를 저장 하였고, 자빅스 서버의 IP가 192.168.0.1, firewalld 설정을 할 경우
- --> sh /root/zbx-agent-install.sh 192.168.0.1 set-firewalld
- ex2) /etc/zbx-agent-install.sh 에 코드를 저장 하였고, 자빅스 서버의 IP가 192.168.100.20, firewalld 설정을 하지 않을 경우
- --> sh /etc/zbx-agent-install.sh 192.168.100.20
#!/bin/bash
get_hostname=`hostname`
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm > /dev/null 2>&1
yum -y install zabbix-agent > /dev/null 2>&1
sed -i "s/Server=127.0.0.1/Server=$1/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
sed -i "s/ServerActive=127.0.0.1/ServerActive=$1/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
sed -i "s/Hostname=Zabbix server/Hostname=$get_hostname/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
if [ "$2" == "set-firewalld" ];then
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=$1 port protocol=tcp port=10050 accept" > /dev/null 2>&1
firewall-cmd --reload > /dev/null 2>&1
fi
systemctl restart zabbix-agent
systemctl enable zabbix-agent > /dev/null 2>&1
-
zabbix-agent 설치 쉘 스크립트 version.2
Master Zabbix 서버의 IP와 firewalld 설정 여부를 직접 기입하는 스크립트 입니다.
#!/bin/bash
get_hostname=`hostname`
echo -e "\x1b[31m******************************************************************"
echo -e "* zabbix-agent 설치 스크립트를 시작 합니다 *"
echo -e "* https://nirsa.tistory.com *"
echo -e "******************************************************************\x1b[0m"
echo -e "\n"
while true; do
echo "########################## Master ip 수집#########################"
read -p "# Master Zabbix 서버의 IP를 적어 주세요:" get_masterip
read -p "# 입력하신 IP가 확실 한가요?(y/n):" yn
case $yn in
[Yy]* ) break;;
* ) echo -e " ==> IP를 정확히 입력한 후 물음에 Y를 입력 해주세요.\n";;
esac
done
while true; do
echo -e "\n"
echo "######################### Firewalld 설정 #########################"
echo "############# Firewalld가 실행중인 상태여야 합니다 ###############"
echo "############ S.ip [Master Zabbix] Port 10050/tcp 허용#############"
read -p "# firewalld 설정을 진행 하시겠습니까?(y/n): " get_firewalld
case $get_firewalld in
[Yy]* )
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=$get_masterip port protocol=tcp port=10050 accept" > /dev/null 2>&1
firewall-cmd --reload > /dev/null 2>&1
break;;
[Nn]* ) break;;
* ) echo -e " ==> yes 또는 no를 입력 해주세요..\n";;
esac
done
echo "##################################################################"
echo "# zabbix-agent 설치를 시작 합니다."
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm > /dev/null 2>&1
yum -y install zabbix-agent > /dev/null 2>&1
echo "# /etc/zabbix/zabbix_agentd.conf 파일을 작성 합니다."
sed -i "s/Server=127.0.0.1/Server=$get_masterip/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
sed -i "s/ServerActive=127.0.0.1/ServerActive=$get_masterip/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
sed -i "s/Hostname=Zabbix server/Hostname=$get_hostname/gi" /etc/zabbix/zabbix_agentd.conf > /dev/null 2>&1
echo "# zabbix-agent 서비스를 실행/등록 합니다."
systemctl restart zabbix-agent
systemctl enable zabbix-agent > /dev/null 2>&1
echo -e "\n"
echo -e "\x1b[31m******************************************************************"
echo -e "* zabbix-agent 설치 스크립트가 종료 되었습니다. *"
echo -e "* https://nirsa.tistory.com *"
echo -e "******************************************************************\x1b[0m"
스크립트 실행 시 아래와 같은 화면으로 진행 됩니다.
반응형
'Programming > Bash Shell Script' 카테고리의 다른 글
[Bash Shell Script] zabbix-agent, modsecurity, rsyslog 자동 설치/설정 쉘 스크립트 (1) | 2020.06.08 |
---|---|
[Bash Shell Script] 쉘 스크립트 일부 문자열 비교하기 (0) | 2020.06.01 |
[Bash Shell Script] CentOS 7 Mod_Security2 설치 및 Mod_audit 로깅 설정 쉘 스크립트 (0) | 2020.05.25 |
[Bash Shell Script] CentOS 7 Kubernetes 자동 설치 쉘 스크립트(mater node version) (3) | 2020.02.24 |
[Bash Shell Script] 쉘 스크립트 랜덤 문자열, 난수 생성(랜덤 숫자) (2) | 2020.02.10 |