Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
23:02, 06 октября 2011

Кратко: Установка Nagios на CentOS 6 x32

Blog post image

В компаниях где работают важные информационные системы, IT-специалистам требуется следить за работоспособностью таких систем. Бизнес процессы компании не должны прерываться ни при каких условиях. Бывает что сервер падает или зависает служба,  и в это время например клиенты компании не смогут купить определенный товар. Такая не очень красивая ситуация может отразиться на минусовой прибыли, а также на репутации. Представьте себя на месте покупателя, вам не понравится ждать пока заработает бухгалтерская программа на упавшем сервере (учетная система 1С).

Чтобы отследить такие случаи и оперативно исправить проблему, нужно сперва чтобы IT-специалист узнал где у него возникла поломка. Вот тут-то и выходят службы мониторинга систем и сетей на сцену. Данные системы призваны предупреждать системного администратора о случившемся сбое, уведомляя его об этом путем отправки СМС сообщения на его мобильный, электронного почтового письма или пейджинговой строчки.

Так вот в этой короткой записке, будет описан процесс установки Nagios, программы мониторинга систем и сетей на CentOS 6 x32

Краткое содержание:

1. Задача по мониторингу

2. Установка Nagios

3. Настройка агента на клиентских машинах

4. Настройка сервера мониторинга, добавление клиентов

 

Сперва создадим себе задачу, чтобы потом решать ее с помощью системы мониторинга, начнем нашу установку с описания задачи.

1. Задача по мониторингу

Допустим у нас имеется малый офис с пятью серверами:

1. Программный шлюз  который дает доступ в Интернет сотрудникам офиса.

Здесь мы будем проверять ping, http, dns и ssh  сервисы.

ping - по ping мы будем знать работает ли хост.

dns - у меня этот хост также является DNS первичным сервером, поэтому хочу знать состояние DNS службы.

http - по протоколу http у меня работает демон Apache, через который управляется шлюз,  поэтому мне важно иметь рабочий веб доступ к серверу.

ssh - тут всем все понятно, удаленный доступ.

 

2. Почтовый сервер на Postfix'е

Здесь мы мониторим доступность хоста и основных служб SMTP и POP/IMAP

 

3. Сервер виртуализации на базе KVM

Этот сервер будем мониторить по его доступности, а также нам интересен доступ по ssh.

На этом сервер также у нас крутится две машины:

- Доменный контроллер Windows Server STD 2003

- Сервер с учетной системой 1С:Предприятие 8.2 + MS SQL 2008

Мониторить эти две машины будет агент, Nagios агент позволит узнать о этих машина следующею информацию: дисковое место, свободная ОЗУ, загрузка CPU и т.д.

 

А теперь напишем IP адреса все серверов которые буду участвовать:

10.168.50.2 - это IP адрес управляемого программного Интернет шлюза (Linux)

10.168.50.3 - это IP адрес почтового сервера (Linux)

10.168.50.5 - это сервер 1С на Windows Server 2003

10.168.50.6 - это сервер виртуализации на KVM

10.168.50.8 - это доменный контролер

 

Сам Nagios Server будет у нас установлен на Интернет шлюз который раздает Интернет

 

Все задачи ясны, приступим к реализации. Установим Nagios.

 

2. Установка Nagios

Подключим репозитроий "Epel":

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Устанавливаем зависимости и сам Nagios:

# yum install nagios nagios-plugins-all nagios-plugins-nrpe nrpe php httpd -y

После установки, Nagios расположится в каталоге - /etc/nagios/. Основной конфигурационый файл находится в нем, его имя nagios.cfg.

В этом каталоге есть подкаталог с именем - /etc/nagios/conf.d/. Здесь будут лежать наши конфигурационные файлы.

Сразу же ставим службы в автозагрузку и запускаем их:

# chkconfig nagios on

# chkconfig httpd on

# service httpd start

# service nagios start

Сразу же зададим пароль для администраторской учетной записи Nagios под именем "nagiosadmin":

# htpasswd -c /etc/nagios/passwd nagiosadmin

Учетная запись с именем "nagiosadmin" создается автоматически при установке Nagios.

Теперь мы можем войти на веб страничку:

http://your IP/nagios/

Blog post image

 

3. Настройка агента на Windows клиентских машинах

 
На Windows сервере устанавливаем агента, с помощью этого агента будем узнавать о Windows хосте.
Скачайте Microsoft Visual C++ 2005 SP1 x32

На Windows сервере устанавливаем агента, с помощью этого агента будем узнавать о Windows хосте.
Скачайте Microsoft Visual C++ 2005 SP1 x32

http://www.microsoft.com/en-us/download/confirmation.aspx?id=5638

или x64 -  http://www.microsoft.com/en-us/download/details.aspx?id=18471

Установите скачанный файл. Скачайте  агента Nagios по следующей ссылке:

x64

http://files.nsclient.org/0.3.x/NSClient%2B%2B-0.3.5-x64.msi

x32

http://files.nsclient.org/0.3.x/NSClient++-0.3.5-Win32.msi

Инсталируйте его, после чего потребуется его настройка.

Сперва включим Nagios Clinet Tray, откроем файл C:\Program Files\NSClient++\NSC.ini

В секции [modules] расскоментируем SysTray.dll

  1. [modules]
  2. FileLogger.dll
  3. CheckSystem.dll
  4. CheckDisk.dll
  5. NSClientListener.dll
  6. NRPEListener.dll
  7. SysTray.dll
  8. CheckEventLog.dll
  9. CheckHelpers.dll
  10. CheckWMI.dll

Ставим пароль:

  1. ;# PASSWORD
  2. ; This is the password (-s) that is required to access NSClient remotely.
  3. ; If you leave this blank everyone will be able to access the daemon remotly.
  4. password=123456

Ставим IP адрес сервера Nagios

  1. ;# ALLOWED HOST ADDRESSES
  2. ; This is a comma-delimited list of IP address of hosts that are allowed to talk to the all daemons.
  3. ; If leave this blank anyone can access the deamon remotly (NSClient still requires a valid password).
  4. ; The syntax is host or ip/mask so 192.168.0.0/24 will allow anyone on that subnet access
  5. allowed_hosts=10.168.50.2/255.255.255.0
  6. [NSClient]
  7. ;# ALLOWED HOST ADDRESSES
  8. ; This is a comma-delimited list of IP address of hosts that are allowed to talk to NSClient deamon.
  9. ; If you leave this blank the global version will be used instead.
  10. allowed_hosts=10.168.50.2

Ставим пароль еще раз

  1. ;# ENCRYPTION PASSWORD
  2. ; This is the password/passphrase that should be used to encrypt
  3. ; the sent packets.
  4. password=123456

Сохраняем файлик

Нажимаем меню ПУСК -> Выполнить -> service.msc

Находим службу NSClinetpp, нажимаем свойства -> Галка Вход в систему: С системной учетной записью и Разрешить взаимодействие с рабочим столом

Blog post image

У Nagios имеются конфигурационные файлы в следующих каталогах:

1. /etc/nagios/ - содержит главные конфигурационные файлы, там находится головной файлик nagios.cfg, который нужен демону Nagios. Редактировать файл не нужно.

2. /etc/nagios/conf.d/ - дополнительные конфигурационные файлы, вот там-то  и будут наши настройки, мы создадим там необходимые нам файлы для например оглашения хостов с которых будем собирать данные

3. /etc/nagios/objects/ - содержит конфигурационные файлы для выполнения команд, которые и будут собирать статистику. А также каталог содержит example  примеры, в которых описано как можно мониторить. Вот с этих файлов можно взять настройки себе в /etc/nagios/conf.d/ и сидеть тихо :)

 

Теперь настраиваем Nagios, чтобы мониторить Windows компьютеры, подправим последовательно файлы:

1. /etc/nagios/objects/commands.cfg

2. /etc/nagios/nagios.cfg

Редактируем /etc/nagios/objects/commands.cfg

# vi /etc/nagios/objects/commands.cfg

Находим следующее и добавляем пароль -s 123456

  1. # 'check_nt' command definition
  2. define command{
  3. command_name check_nt
  4. command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 123456 -v $ARG1$ $ARG2$
  5. }

Это требуется чтобы включить мониторинг Windows хостов.

Теперь создадим файл /etc/nagios/conf.d/mywinhosts.cfg, где будет наш Windows сервер

  1. # WINDOWS SERVERS
  2. define host{
  3. host_name windows-server
  4. alias WINDOWS-SERVER
  5. address 10.168.50.10
  6. use generic-host
  7. #name generic-host ; The name of this host template
  8. notifications_enabled 1 ; Host notifications are enabled
  9. event_handler_enabled 1 ; Host event handler is enabled
  10. flap_detection_enabled 1 ; Flap detection is enabled
  11. failure_prediction_enabled 1 ; Failure prediction is enabled
  12. process_perf_data 1 ; Process performance data
  13. retain_status_information 1 ; Retain status information across program restarts
  14. retain_nonstatus_information 1 ; Retain non-status information across program restarts
  15. check_command check-host-alive
  16. max_check_attempts 10
  17. notification_interval 0
  18. notification_period 24x7
  19. notification_options d,u,r
  20. contact_groups admins
  21. }
Создадим группу хостов /etc/nagios/conf.d/hostgroups_windows.cfg
Здесь будет наш Windows сервер, серверы можно добавлять через запятую, например строка members windows-server, windows-server2, windows-server3
  1. # WINDOWS SERVERS
  2. define hostgroup {
  3. hostgroup_name windows-servers
  4. alias WINDOWS SERVERS
  5. members windows-server
  6. }

Создадим файл /etc/nagios/conf.d/services_windows.cfg для мониторинга пинга, CPU, памяти, место на диске.

  1. # NSCLIENT
  2. define service {
  3. hostgroup_name windows-servers
  4. service_description NSClient++ Version
  5. check_command check_nt!CLIENTVERSION
  6. use generic-service
  7. }
  8. # PING
  9. define service {
  10. hostgroup_name windows-servers
  11. service_description PING
  12. check_command check_ping!100.0,20%!500.0,60%
  13. use generic-service
  14. }
  15. # CPU
  16. define service {
  17. hostgroup_name windows-servers
  18. service_description CPU Load
  19. check_command check_nt!CPULOAD!-l 5,80,90
  20. use generic-service
  21. }
  22. # MEMORY
  23. define service {
  24. hostgroup_name windows-servers
  25. service_description Memory Usage
  26. check_command check_nt!MEMUSE!-w 80 -c 90
  27. use generic-service
  28. }
  29. # DISK SPACE
  30. define service {
  31. hostgroup_name windows-servers
  32. service_description C: Drive Space
  33. check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
  34. use generic-service
  35. }

Если у вас проблемы с конфиг файлами nagios, запускайте debug режим, в котором показано где ошибка:

# nagios -v /etc/nagios/nagios.cfg

или

# nagios /etc/nagios/nagios.cfg

Обычно когда все хорошо, выводится вот такие строчки:

Total Warnings: 0

Total Errors:   0

Перезапускаем демон:

# service nagios restart

Заходим на страничку http://you ip/nagios

Вводим логин и пароль nagiosadmin / 123456

А вот скрин на котором видно как мониторится Windows Server и сервер на котром установлен Nagios (Localhost)

Blog post image

 

Если в колонке Status стоит PENDING, значить хост еще не опрошен.Через минуты две будут появляться зеленные квадратики с надписью ОК как на картинке на верху.

 

Мониторинг Linux хоста по внешним сервисам

Создадим описание Linux хоста, файл /etc/nagios/cond.d/centoshost.cfg

А также группу Linux хостов - /etc/nagios/conf.d/centosgroup.cfg

Создадим описание сервисов -  /etc/nagios/conf.d/services_centos.cfg

# vi /etc/nagios/conf.d/centoshost.cfg

  1. # CENTOS SERVERS
  2. define host{
  3. host_name centos-server
  4. alias CENTOS-SERVER
  5. address 10.168.50.3
  6. use generic-host
  7. #name generic-host ; The name of this host template
  8. notifications_enabled 1 ; Host notifications are enabled
  9. event_handler_enabled 1 ; Host event handler is enabled
  10. flap_detection_enabled 1 ; Flap detection is enabled
  11. failure_prediction_enabled 1 ; Failure prediction is enabled
  12. process_perf_data 1 ; Process performance data
  13. retain_status_information 1 ; Retain status information across program restarts
  14. retain_nonstatus_information 1 ; Retain non-status information across program restarts
  15. check_command check-host-alive
  16. max_check_attempts 10
  17. notification_interval 0
  18. notification_period 24x7
  19. notification_options d,u,r
  20. contact_groups admins
  21. }

# vi /etc/nagios/conf.d/centosgroup.cfg

  1. # CENTOS SERVERS
  2. define hostgroup {
  3. hostgroup_name centos-servers
  4. alias CENTOS SERVERS
  5. members centos-server
  6. }

Создадим файл с описанием проверов CentOS хостов/хоста - /etc/nagios/conf.d/services_centos.cfg

  1. # PING
  2. define service{
  3. hostgroup_name centos-servers
  4. use generic-service
  5. host_name centos-server
  6. service_description PING
  7. check_command check_ping!100.0,20%!500.0,60%
  8. }
  9. # SSH
  10. define service{
  11. hostgroup_name centos-servers
  12. use generic-service
  13. host_name centos-server
  14. service_description SSH
  15. check_command check_ssh
  16. notifications_enabled 0
  17. }
  18. # HTTP
  19. define service{
  20. hostgroup_name centos-servers
  21. use generic-service
  22. host_name centos-server
  23. service_description HTTP
  24. check_command check_http
  25. notifications_enabled 0
  26. }

  27. # SMTP
  28. define service{
  29. hostgroup_name centos-servers
  30. use generic-service
  31. host_name centos-server
  32. service_description SMTP
  33. check_command check_smtp
  34. notifications_enabled 0
  35. }

  36. # IMAP
  37. define service{
  38. hostgroup_name centos-servers
  39. use generic-service
  40. host_name centos-server
  41. service_description IMAP
  42. check_command check_imap
  43. notifications_enabled 0
  44. }
  45. # POP
  46. define service{
  47. hostgroup_name centos-servers
  48. use generic-service
  49. host_name centos-server
  50. service_description POP
  51. check_command check_pop
  52. notifications_enabled 0
  53. }
  54. # DNS
  55. define service{
  56. hostgroup_name centos-servers
  57. use generic-service
  58. host_name centos-server
  59. service_description dns service
  60. check_command check_dns
  61. notifications_enabled 0
  62. }
  63. # 'check_dns' command definition
  64. define command{
  65. command_name check_dns
  66. command_line /usr/lib/nagios/plugins/check_dns -H www.google.com -s '$HOSTADDRESS$'
  67. }

Проверим конфиг файл на ошибки:

# nagios -v /etc/nagios/nagios.cfg

Перечитаем конфиг файл:

# service nagios reload

Проверяем, зайдем на http://you IP/nagios

Blog post image

 

Blog post image

 

--

Blog post image

 

Итого: Как видим, мониторятся  три хоста: Localhost (Internet GateWay Server), Mail и Windows сервер.

Включайте свои Windows и Linux сервера в группы, чтобы увидеть их в мониторинге.

0
1302
5