| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | #!/bin/shecho -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  fifiapk add zabbix-agent# configureecho -n "Please provide the current server's public ip : "read _cur_ipecho -n "Please provide the zabbix-server's ip : "read _ipecho -n "Please provide the hostname of this agent : "read _host_nameecho -n "Please provide the mysql root password : "read _root_mysql_passwd# configure zabbix agentsed -i "s#Server=127.0.0.1#Server=$_ip#g" /etc/zabbix/zabbix_agentd.confsed -i "s#ServerActive=127.0.0.1#ServerActive=$_ip#g" /etc/zabbix/zabbix_agentd.confsed -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_dsed -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 assetsed -i "s/# allow CURRENT-SERVER-IP/allow $_cur_ip/g" /etc/nginx/conf.d/default.confcp "$_assets"/zabbix/userparameter_nginx.conf "$_agent_conf_d"/mkdir /etc/zabbix/zabbix_agentd.scriptscp "$_assets"/zabbix/scripts/nginx-stat.py /etc/zabbix/zabbix_agentd.scripts/chmod +x /etc/zabbix/zabbix_agentd.scripts/nginx-stat.pyecho -n "This is box is a proxmox CT? [Y|n] "read ynyn=${yn:-y}if [ "$yn" = "Y" ] || [ "$yn" = "y" ]; then  cp "$_assets"/zabbix/proxmox-ct.conf "$_agent_conf_d"/fi# allow comm. port with zabbix-serverufw allow from "$_ip" to any port 22ufw allow from "$_ip" to any port 10050# ufw allow from "$_ip" to any port 10051rc-update add zabbix-agentdservice zabbix-agentd restartecho -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"
 |