added munin and monit install
This commit is contained in:
parent
8aa2f3e162
commit
dbf8690c72
130
assets/monitrc
Normal file
130
assets/monitrc
Normal file
@ -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
|
@ -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
|
||||
___ __ __
|
||||
/ |_ _______/ /_____ _/ /_
|
||||
|
Loading…
x
Reference in New Issue
Block a user