Files
alpine-web-werver/bin/zabbix.sh
T
2019-04-17 21:48:48 +02:00

95 lines
2.9 KiB
Bash
Executable File

#!/bin/sh
echo -e '
_ _ _
_____ _| |__| |__(_)__
|_ / _` | `_ \ `_ \ / _|
/__\__,_|_.__/_.__/_\__|
'
. bin/checkroot.sh
# get the current position
_cwd="$(pwd)"
# check for assets forlder
_assets="$_cwd/assets"
if [ ! -d "$_assets" ]; then
_assets="$_cwd/../assets"
if [ ! -d "$_assets" ]; then
echo "!! can't find assets directory !!"
exit
fi
fi
apk add zabbix-agent
# configure
echo -n "Please provide the current server's public ip : "
read _cur_ip
echo -n "Please provide the zabbix-server's ip : "
read _ip
echo -n "Please provide the hostname of this agent : "
read _host_name
echo -n "Please provide the mysql root password : "
read _root_mysql_passwd
# configure zabbix agent
sed -i "s#Server=127.0.0.1#Server=$_ip#g" /etc/zabbix/zabbix_agentd.conf
sed -i "s#ServerActive=127.0.0.1#ServerActive=$_ip#g" /etc/zabbix/zabbix_agentd.conf
sed -i "s#Hostname=Zabbix server#Hostname=$_host_name#g" /etc/zabbix/zabbix_agentd.conf
_agent_conf_d="/etc/zabbix/zabbix_agentd.d"
mkdir $_agent_conf_d
sed -i "s|#\ Include=$|Include= $_agent_conf_d|g" /etc/zabbix/zabbix_agentd.conf
# apk
# check for alpine security updates
# # MYSQL
# # https://serverfault.com/questions/737018/zabbix-user-parameter-mysql-status-setting-home
# # create zabbix user home
# mkdir /var/lib/zabbix
# # generate random password for zabbix mysql user
# _passwd="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c12)"
# # add mysql credentials to zabbix home
# printf "[client]\n
# user=zabbix\n
# password=$_passwd" > /var/lib/zabbix/.my.cnf
# # create zabbix mysql user
# mysql -uroot -p"$_root_mysql_passwd" -e "CREATE USER 'zabbix' IDENTIFIED BY '$_passwd';"
# mysql -uroot -p"$_root_mysql_passwd" -e "GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '$_passwd';"
# # add zabbix-agent parameter
# cp "$_assets"/zabbix/userparameter_mysql.conf "$_agent_conf_d"/
# NGINX
# https://github.com/sfuerte/zbx-nginx
# nginxconf already included in default.nginxconf asset
sed -i "s/# allow CURRENT-SERVER-IP/allow $_cur_ip/g" /etc/nginx/conf.d/default.conf
cp "$_assets"/zabbix/userparameter_nginx.conf "$_agent_conf_d"/
mkdir /etc/zabbix/zabbix_agentd.scripts
cp "$_assets"/zabbix/scripts/nginx-stat.py /etc/zabbix/zabbix_agentd.scripts/
chmod +x /etc/zabbix/zabbix_agentd.scripts/nginx-stat.py
echo -n "This is box is a proxmox CT? [Y|n] "
read yn
yn=${yn:-y}
if [ "$yn" = "Y" ] || [ "$yn" = "y" ]; then
cp "$_assets"/zabbix/proxmox-ct.conf "$_agent_conf_d"/
fi
# allow comm. port with zabbix-server
ufw allow from "$_ip" to any port 22
ufw allow from "$_ip" to any port 10050
# ufw allow from "$_ip" to any port 10051
rc-update add zabbix-agentd
service zabbix-agentd restart
echo -e "Zabbix-agent installed and configured, please add the host $_host_name in your zabbix-server"
echo -e "And import requested templates in assets/zabbix/templates/"
# echo -e "zabbix user mysql password is $_passwd"