Сервер linuxoid.in/Заметки
Материал из Linux Wiki
Добавление нового хоста
Nagios
Добавление хоста в мониторинг Nagios'a:
- Для мониторинга параметров на новом хосте создать пользователя для Nagios: useradd -G adm -m -r -l nagios
- Поставить ssh-server
- /etc/hosts.deny
sshd: ALL
- /etc/hosts.allow
sshd: 192.168.220.247
- /etc/ssh/sshd_config
PasswordAuthentication no PermitRootLogin no AllowUsers nagios AllowTcpForwarding no X11Forwarding no
- В /home/nagios создать подкаталог .ssh, скопировать туда публичный ключ с хоста мониторинга, назначить права.
- С хоста мониторинга после этого надо зайти на новый хост для добавления его в known_hosts - иначе Nagios не захочет ходить на новый хост.
- Разрешить хождение на хост в iptables, если хосты находятся в разных сетях.
- Поставить пакет nagios-plugins-basic
- Для мониторинга памяти добавить в систему скрипт /usr/lib64/nagios/plugins/check_memory.sh, не забыть поставить правильные права и владельца.
check_memory.sh
#!/bin/bash
#
# Script to check memory usage on Linux. Ignores memory used by disk cache.
#
print_help() {
echo "Usage:"
echo "[-w] Warning level as a percentage"
echo "[-c] Critical level as a percentage"
exit 0
}
while test -n "$1"; do
case "$1" in
--help|-h)
print_help
exit 0
;;
-w)
warn_level=$2
shift
;;
-c)
critical_level=$2
shift
;;
*)
echo "Unknown Argument: $1"
print_help
exit 3
;;
esac
shift
done
if [ "$warn_level" == "" ]; then
echo "No Warning Level Specified"
print_help
exit 3;
fi
if [ "$critical_level" == "" ]; then
echo "No Critical Level Specified"
print_help
exit 3;
fi
free=`free -m | awk '/buffers\/cache/{print $4}'`
used=` free -m | awk '/buffers\/cache/{print $3}'`
total=$(($free+$used))
result=$(($used*100/$total))
if [ "$result" -lt "$warn_level" ]; then
echo "Memory OK. $result% used."
exit 0;
elif [ "$result" -ge "$warn_level" ] && [ "$result" -le "$critical_level" ]; then
echo "Memory WARNING. $result% used."
exit 1;
elif [ "$result" -gt "$critical_level" ]; then
echo "Memory CRITICAL. $result% used."
exit 2;
fi
Monit
- /etc/default/monit
startup=1
- /etc/monit/monitrc
set daemon 120 # check services at 2-minute intervals with start delay 240 # optional: delay the first check by 4-minutes (by set logfile syslog facility log_daemon set idfile /var/.monit.id set statefile /var/.monit.state set mailserver mail.linuxoid.in # primary mailserver set eventqueue basedir /var/monit # set the base directory where events will be stored set mail-format { from: monit@АДРЕС_НОВОГО_ХОСТА } set alert root@mail.linuxoid.in # receive all alerts include /etc/monit/conf.d/*
Munin
- Поставить munin-node
- usermod -a -G adm munin
- /etc/munin/plugin-conf.d/munin-node - добавить:
[proc*] group adm [uptime] group adm [load] group adm [diskstats] group adm [vmstat] group adm [cpu] group adm [memory] group adm
- /etc/munin/munin-node.conf
cidr_allow 192.168.220.247/32
- Разрешить подключение на порт 4949 нового хоста с хоста мониторинга.
Общие настройки
- Создать /etc/cron.allow для запрещения пользовательских crontab'ов.
- Дефолтные правила на каталоги:
chmod 711 /{bin,dev,mnt,etc,home,lib,usr,service,var,.} /usr/bin/ /usr/sbin/ ; chmod 700 /{sbin,proc,sys,root,boot}
- nullmailer лежит в /usr/sbin, поэтому лишь для его работы приходится ставить на /usr/sbin 711
Перевод SUID-бинарников на группы:
find / -xdev -perm -4000 -ls
groupadd -r suid
bins='/bin/su /bin/ping /bin/mount /bin/ping6 /bin/umount /usr/bin/chsh /usr/bin/chfn /usr/bin/newgrp /usr/bin/passwd /usr/bin/gpasswd /sbin/mount.nfs'
chown :suid $bins
chmod 4750 $bins
find / -xdev -perm -4000 -ls