Browse Source

added munin and monit install

Bachir Soussi Chiadmi 7 years ago
parent
commit
dbf8690c72
2 changed files with 209 additions and 0 deletions
  1. 130 0
      assets/monitrc
  2. 79 0
      install-debian-server.sh

+ 130 - 0
assets/monitrc

@@ -0,0 +1,130 @@
+set daemon 60
+set logfile syslog facility log_daemon
+set mailserver localhost
+set mail-format { from: monit@server1.example.com }
+set alert root@localhost
+set httpd port 2812 and
+  allow admin:PASSWD_TO_REPLACE
+ # SSL ENABLE
+ # PEMFILE /var/certs/monit.pem
+
+check process sshd with pidfile /var/run/sshd.pid
+ start program "/usr/sbin/service ssh start"
+ stop program "/usr/sbin/service ssh stop"
+ if failed port 22 protocol ssh then restart
+ if 5 restarts within 5 cycles then timeout
+
+check process apache with pidfile /var/run/apache2/apache2.pid
+ group www
+ start program = "/usr/sbin/service apache2 start"
+ stop program = "/usr/sbin/service apache2 stop"
+ if failed host localhost port 80 protocol http
+ and request "/monit/token" then restart
+ if cpu is greater than 60% for 2 cycles then alert
+ if cpu > 80% for 5 cycles then restart
+ if totalmem > 500 MB for 5 cycles then restart
+ if children > 250 then restart
+ if loadavg(5min) greater than 10 for 8 cycles then stop
+ if 3 restarts within 5 cycles then timeout
+
+check process mysqld with pidfile /var/run/mysqld/mysqld.pid
+group mysql
+start program = "/usr/sbin/service mysqld start"
+stop program = "/usr/sbin/service mysqld stop"
+if failed host 127.0.0.1 port 3306 then restart
+if 5 restarts within 5 cycles then timeout
+
+
+
+# ---------------------------------------------------------------------------------------------
+# NOTE: Replace example.pid with the pid name of your server, the name depends on the hostname
+# ---------------------------------------------------------------------------------------------
+
+#check process proftpd with pidfile /var/run/proftpd.pid
+# start program = "/usr/sbin/service proftpd start"
+# stop program = "/usr/sbin/service proftpd stop"
+# if failed port 21 protocol ftp then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process postfix with pidfile /var/spool/postfix/pid/master.pid
+# group mail
+# start program = "/usr/sbin/service postfix start"
+# stop program = "/usr/sbin/service postfix stop"
+# if failed port 25 protocol smtp then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process nginx with pidfile /var/run/nginx.pid
+# start program = "/usr/sbin/service nginx start"
+# stop program = "/usr/sbin/service nginx stop"
+# if failed host 127.0.0.1 port 80 then restart
+#
+#check process memcached with pidfile /var/run/memcached.pid
+# start program = "/usr/sbin/service memcached start"
+# stop program = "/usr/sbin/service memcached stop"
+# if failed host 127.0.0.1 port 11211 then restart
+#
+#check process pureftpd with pidfile /var/run/pure-ftpd/pure-ftpd.pid
+# start program = "/usr/sbin/service pure-ftpd-mysql start"
+# stop program = "/usr/sbin/service pure-ftpd-mysql stop"
+# if failed port 21 protocol ftp then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process named with pidfile /var/run/named/named.pid
+# start program = "/usr/sbin/service bind9 start"
+# stop program = "/usr/sbin/service bind9 stop"
+# if failed host 127.0.0.1 port 53 type tcp protocol dns then restart
+# if failed host 127.0.0.1 port 53 type udp protocol dns then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process ntpd with pidfile /var/run/ntpd.pid
+# start program = "/usr/sbin/service ntp start"
+# stop program = "/usr/sbin/service ntp stop"
+# if failed host 127.0.0.1 port 123 type udp then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process mailman with pidfile /var/run/mailman/mailman.pid
+# group mail
+# start program = "/usr/sbin/service mailman start"
+# stop program = "/usr/sbin/service mailman stop"
+#
+#check process amavisd with pidfile /var/run/amavis/amavisd.pid
+# group mail
+# start program = "/usr/sbin/service amavis start"
+# stop program = "/usr/sbin/service amavis stop"
+# if failed port 10024 protocol smtp then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process courier-imap with pidfile /var/run/courier/imapd.pid
+# group mail
+# start program = "/usr/sbin/service courier-imap start"
+# stop program = "/usr/sbin/service courier-imap stop"
+# if failed host localhost port 143 type tcp protocol imap then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process courier-imap-ssl with pidfile /var/run/courier/imapd-ssl.pid
+# group mail
+# start program = "/usr/sbin/service courier-imap-ssl start"
+# stop program = "/usr/sbin/service courier-imap-ssl stop"
+# if failed host localhost port 993 type tcpssl sslauto protocol imap then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process courier-pop3 with pidfile /var/run/courier/pop3d.pid
+# group mail
+# start program = "/usr/sbin/service courier-pop start"
+# stop program = "/usr/sbin/service courier-pop stop"
+# if failed host localhost port 110 type tcp protocol pop then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process courier-pop3-ssl with pidfile /var/run/courier/pop3d-ssl.pid
+# group mail
+# start program = "/usr/sbin/service courier-pop-ssl start"
+# stop program = "/usr/sbin/service courier-pop-ssl stop"
+# if failed host localhost port 995 type tcpssl sslauto protocol pop then restart
+# if 5 restarts within 5 cycles then timeout
+#
+#check process dovecot with pidfile /var/run/dovecot/master.pid
+# group mail
+# start program = "/usr/sbin/service dovecot start"
+# stop program = "/usr/sbin/service dovecot stop"
+# if failed host localhost port 993 type tcpssl sslauto protocol imap then restart
+# if 5 restarts within 5 cycles then timeout

+ 79 - 0
install-debian-server.sh

@@ -338,6 +338,85 @@ else
   echo "Vhost installation aborted"
 fi
 
+echo '\033[35m
+   __  ___          _ __      __  __  ___          _
+  /  |/  /__  ___  (_) /_   _/_/ /  |/  /_ _____  (_)__
+ / /|_/ / _ \/ _ \/ / __/ _/_/  / /|_/ / // / _ \/ / _ \
+/_/  /_/\___/_//_/_/\__/ /_/   /_/  /_/\_,_/_//_/_/_//_/
+\033[0m'
+echo "\033[35;1mInstalling Munin \033[0m"
+sleep 3
+# https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/
+apt-get install munin munin-node munin-plugins-extra
+# Configure Munin
+# enable plugins
+ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_
+ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
+ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb
+ln -s /usr/share/munin/plugins/mysql_isam_space_ /etc/munin/plugins/mysql_isam_space_
+ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
+ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
+ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads
+
+ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/
+ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/
+ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/
+
+# ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/
+
+# dbdir, htmldir, logdir, rundir, and tmpldir
+sed -i 's/^#dbdir/dbdir/' /etc/munin/munin.conf
+sed -i 's/^#htmldir/htmldir/' /etc/munin/munin.conf
+sed -i 's/^#logdir/logdir/' /etc/munin/munin.conf
+sed -i 's/^#rundir/rundir/' /etc/munin/munin.conf
+sed -i 's/^#tmpldir/tmpldir/' /etc/munin/munin.conf
+
+sed -i "s/^\[localhost.localdomain\]/[${HOSTNAME}]/" /etc/munin/munin.conf
+
+# ln -s /etc/munin/apache24.conf /etc/apache2/conf-enabled/munin.conf
+sed -i 's/Require local/Require all granted\nOptions FollowSymLinks SymLinksIfOwnerMatch/g' /etc/munin/apache24.conf
+htpasswd -c /etc/munin/munin-htpasswd admin
+sed -i 's/Require all granted/AuthUserFile \/etc\/munin\/munin-htpasswd\nAuthName "Munin"\nAuthType Basic\nRequire valid-user/g' /etc/munin/apache24.conf
+
+
+service apache2 restart
+service munin-node restart
+echo "\033[92;1mMunin installed\033[Om"
+
+echo "\033[35;1mInstalling Monit \033[0m"
+sleep 3
+# https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/2/
+apt-get install monit
+# TODO setup monit rc
+cat "$_cwd"/assets/monitrc > /etc/monit/monitrc
+
+# TODO setup webaccess
+passok=0
+while [ "$passok" = "0" ]
+do
+  echo -n "Write web access password to monit"
+  read passwda
+  echo -n "ReWrite web access password to monit"
+  read passwdb
+  if [ "$passwda" = "$passwdb" ]; then
+    sed -i 's/PASSWD_TO_REPLACE/$passwda/g' /etc/monit/monitrc
+    passok=1
+  else
+    echo "pass words don't match, please try again"
+  fi
+done
+
+# TODO setup mail settings
+sed -i "s/server1\.example\.com/$HOSTNAME/g" /etc/monit/monitrc
+
+mkdir /var/www/html/monit
+echo "hello" > /var/www/html/monit/token
+
+service monit start
+
+echo "\033[92;1mMonit installed\033[Om"
+
+
 echo '\033[35m
     ___                __        __
    /   |_      _______/ /_____ _/ /_