Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:mreichmu:monitoring
monitoring-appliance
setup-monitoring.init
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File setup-monitoring.init of Package monitoring-appliance
#! /bin/bash # Copyright (c) 2013 M. Reichmuth # All rights reserved. # # Author: M. Reichmuth, 2013 # # /etc/init.d/setup-monitoring ### BEGIN INIT INFO # Provides: setup-monitoring # Required-Start: $ALL # Required-Stop: $null # Default-Start: 2 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Setup log & monitoring appliance # Description: This script setup the log & monitoring # appliance and removes itself ### END INIT INFO # Check for existence of needed config file and read it LOGMON_CFG=/etc/sysconfig/setup-monitoring test -r $LOGMON_CFG || { echo "$LOGMON_CFG not existing"; if [ "$1" = "stop" ]; then exit 0; else exit 6; fi; } # Read config . $LOGMON_CFG # Load the rc.status script for this service. . /etc/rc.status # Reset status of this service rc_reset # Input function function ask_yes_or_no() { read -p "$1 ([y]es or [N]o): " case $(echo $REPLY | tr '[A-Z]' '[a-z]') in y|yes) echo "yes" ;; n|no) echo "no" ;; *) echo $(ask_yes_or_no "Wrong input, try again") ;; esac } function ask_password() { unset password prompt=$1 while IFS= read -p "$prompt" -r -s -n 1 char do if [[ $char == $'\0' ]] then break fi prompt='*' password+="$char" done echo $password } function rc_status2() { echo -en "\033[1A" rc_status $1 $2 $3 $4 $5 } ### START SETUP echo "START SETUP MONITORING APPLIANCE AT $(date)" > $LOG_FILE # Disable IPV6 if [[ "yes" == $(ask_yes_or_no "Do you wanna disable IPv6 support?") ]] then echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf 2>>$LOG_FILE rc_status2 -v else rc_status2 -s fi # Get default password DFT_PASS=$(ask_password "Please enter a default password for all accounts: ") DFT_USER="admin" echo # Configure mysql if [[ "yes" == $(ask_yes_or_no "Do you wanna configure the mysql database?") ]] then #mysql_install_db chkconfig mysql on >> $LOG_FILE 2>&1 && sed '/\[mysqld\]/ a\ bind-address = localhost' /etc/my.cnf > /tmp/my.cnf.new 2>>$LOG_FILE && mv /tmp/my.cnf.new /etc/my.cnf >> $LOG_FILE 2>&1 && rcmysql start >> $LOG_FILE 2>&1 && /usr/bin/mysqladmin -u root password $DFT_PASS >> $LOG_FILE 2>&1 rc_status2 -v else rc_status2 -s fi # Configure RabbitMQ if [[ "yes" == $(ask_yes_or_no "Do you wanna configure rabbitmq?") ]] then chkconfig rabbitmq-server on >> $LOG_FILE 2>&1 && rabbitmq-plugins enable rabbitmq_management >> $LOG_FILE 2>&1 && rabbitmq-plugins enable rabbitmq_management_visualiser >> $LOG_FILE 2>&1 && cat > /etc/rabbitmq/rabbitmq.config<<EOF [ {mnesia, [{dump_log_write_threshold, 1000}]}, {kernel,[{inet_dist_use_interface,{127,0,0,1}}]}, {rabbit, [{tcp_listeners, [{"127.0.0.1", 5672}]}]}, {rabbitmq_management, [ {http_log_dir, "/var/log/rabbit-mgmt"} ] }, {rabbitmq_management_agent, [ {force_fine_statistics, true} ] }, {rabbitmq_mochiweb, [ {listeners, [{mgmt, [{port, 55672}, {ip, "127.0.0.1"}]}]}, {default_listener, [{port, 60000} ] } ] } ]. EOF echo "RABBITMQ_NODENAME=rabbit@localhost" >> /etc/sysconfig/rabbitmq-server 2>>$LOG_FILE && echo "RABBITMQ_NODE_IP_ADDRESS=127.0.0.1" >> /etc/sysconfig/rabbitmq-server 2>>$LOG_FILE && echo "ERL_EPMD_ADDRESS=127.0.0.1" >> /etc/sysconfig/rabbitmq-server 2>>$LOG_FILE && rcrabbitmq-server start >> $LOG_FILE 2>&1 && rabbitmqctl -n rabbit@localhost add_user $DFT_USER $DFT_PASS >> $LOG_FILE 2>&1 && rabbitmqctl -n rabbit@localhost set_user_tags $DFT_USER administrator >> $LOG_FILE 2>&1 && rabbitmqctl -n rabbit@localhost set_permissions -p "/" $DFT_USER ".*" ".*" ".*" >> $LOG_FILE 2>&1 && rabbitmqctl -n rabbit@localhost set_user_tags guest >> $LOG_FILE 2>&1 && cat > /etc/apache2/conf.d/rabbitmq.conf<<EOF <IfDefine RABBITMQ> ProxyPreserveHost on ProxyPass /rabbitmq http://localhost:55672/ ProxyPassReverse /rabbitmq http://localhost:55672/ </IfDefine> EOF a2enflag RABBITMQ >> $LOG_FILE 2>&1 && a2enmod proxy >> $LOG_FILE 2>&1 && a2enmod proxy_http >> $LOG_FILE 2>&1 rc_status2 -v else rc_status2 -s fi # Configure icinga & nconf if [[ "yes" == $(ask_yes_or_no "Do you wanna configure icinga & nconf?") ]] then echo "event_broker_options=-1" >> /etc/icinga/icinga.cfg 2>>$LOG_FILE && echo "broker_module=/usr/lib/icinga/eventhandler/neb2amqp.o name=localhost host=localhost port=5672 virtual_host=/ exchange_name=icinga connector=icinga userid=guest password=guest" >> /etc/icinga/icinga.cfg 2>>$LOG_FILE && chkconfig icinga on >> $LOG_FILE 2>&1 && rcicinga start >> $LOG_FILE 2>&1 && a2enflag ICINGA >> $LOG_FILE 2>&1 && cat > /etc/apache2/conf.d/nconf.conf<<EOF <IfDefine NCONF> Alias /nconf "/srv/www/nconf" <Directory "/srv/www/nconf"> Options None AllowOverride All Order allow,deny Allow from all </Directory> </IfDefine> EOF a2enflag NCONF >> $LOG_FILE 2>&1 && rmdir /srv/www/nconf/config >> $LOG_FILE 2>&1 && mv /srv/www/nconf/config.orig /srv/www/nconf/config >> $LOG_FILE 2>&1 && mysqladmin --password=$DFT_PASS create nconf >> $LOG_FILE 2>&1 && mysql --password=$DFT_PASS mysql -e "CREATE USER 'nconfuser'@'localhost' IDENTIFIED BY '$DFT_PASS';" >> $LOG_FILE 2>&1 && mysql --password=$DFT_PASS mysql -e "GRANT ALL PRIVILEGES ON nconf.* TO 'nconfuser'@'localhost';" >> $LOG_FILE 2>&1 && mysqladmin --password=$DFT_PASS flush-privileges >> $LOG_FILE 2>&1 && mysql -u nconfuser --password=$DFT_PASS nconf < /srv/www/nconf/INSTALL/create_database.sql >> $LOG_FILE 2>&1 && rpm -e nconf-installation >> $LOG_FILE 2>&1 && ln -s /usr/sbin/icinga /srv/www/nconf/bin/nagios >> $LOG_FILE 2>&1 && cat > /srv/www/nconf/config/nconf.php<<EOF >> $LOG_FILE 2>&1 && <?php define('NCONFDIR', '/srv/www/nconf'); define('OS_LOGO_PATH', "img/logos"); define('NAGIOS_BIN', '/srv/www/nconf/bin/icinga'); define('CHECK_UPDATE', 1); define('TEMPLATE_DIR', 'nconf_fresh'); define("DEBUG_MODE", 0); # [0|1] define("DEBUG_GENERATE", 3); # [1=ERROR|2=WARN|3=INFO|4=DEBUG|5=TRACE] define("DB_NO_WRITES", 0); # [0|1] Experimental, use with CAUTION! define('REDIRECTING_DELAY', "1"); define('ALLOW_DEPLOYMENT', 1); $STATIC_CONFIG = array("static_cfg"); define('CHECK_STATIC_SYNTAX', 1); $SUPERADMIN_GROUPS = array ("+admins"); $ONCALL_GROUPS = array (); define('OVERVIEW_QUANTITY_STANDARD', "25"); define('SELECT_VALUE_SEPARATOR', "::"); define('PASSWD_ENC', "clear"); define('PASSWD_DISPLAY', 0); define('PASSWD_HIDDEN_STRING', "********"); ?> EOF cat > /srv/www/nconf/config/mysql.php<<EOF <?php define('DBHOST', 'localhost'); define('DBNAME', 'nconf'); define('DBUSER', 'nconfuser'); define('DBPASS', '$DFT_PASS'); ?> EOF cat > /srv/www/nconf/config/deployment.ini<<EOF [extract config] type = local source_file = "/srv/www/nconf/output/NagiosConfig.tgz" target_file = "/tmp/" action = extract [copy collector config] type = local source_file = "/tmp/Default_collector/" target_file = "/etc/icinga/conf.d/nconf/collector/" action = copy [copy global config] type = local source_file = "/tmp/global/" target_file = "/etc/icinga/conf.d/nconf/global/" action = copy reload_command = "sudo /etc/init.d/icinga reload" EOF mkdir /etc/icinga/conf.d/nconf >> $LOG_FILE 2>&1 && chown wwwrun /etc/icinga/conf.d/nconf >> $LOG_FILE 2>&1 && rm -r /etc/icinga/objects >> $LOG_FILE 2>&1 && sed 's/^cfg_file=\/etc\/icinga\/objects/#cfg_file=\/etc\/icinga\/objects/' /etc/icinga/icinga.cfg > /tmp/icinga.cfg 2>>$LOG_FILE && mv /tmp/icinga.cfg /etc/icinga/icinga.cfg >> $LOG_FILE 2>&1 && echo "wwwrun ALL = (root) NOPASSWD: /etc/init.d/icinga reload" >> /etc/sudoers 2>>$LOG_FILE rc_status2 -v else rc_status2 -s fi # Configure apache2 if [[ "yes" == $(ask_yes_or_no "Do you wanna configure apache?") ]] then chkconfig apache2 on >> $LOG_FILE 2>&1 rc_status2 -v else rc_status2 -s fi # Configure check_mk & multisite # Configure graphite & graphsky # Configure kibana & elasticsearch if [[ "yes" == $(ask_yes_or_no "Do you wanna configure kibana?") ]] then chkconfig kibana on >> $LOG_FILE 2>&1 && # cat > /etc/apache2/conf.d/kibana.conf<<EOF # <IfDefine KIBANA> # ProxyPreserveHost on # ProxyPass /kibana http://localhost:5601/ # ProxyPassReverse /kibana http://localhost:5601/ # </IfDefine> #EOF a2enflag KIBANA >> $LOG_FILE 2>&1 && a2enmod proxy >> $LOG_FILE 2>&1 && a2enmod proxy_http >> $LOG_FILE 2>&1 && /etc/init.d/kibana start >> $LOG_FILE 2>&1 rc_status2 -v else rc_status2 -s fi # Configure logstash #chkconfig logstash on # Configure JasperReport # NSCA # collectd # gmond # syslog-ng # RabbitMQ extern echo "Monitoring appliance successfully configured!" >> $LOG_FILE 2>&1 echo echo "Monitoring appliance successfully configured!" >> $LOG_FILE 2>&1 echo echo "END SETUP MONITORING APPLIANCE AT $(date)" >> $LOG_FILE ### END SETUP # Remove myself insserv setup-monitoring -r rpm -e monitoring-appliance rc_exit
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor