
Мониторинг приложений с New Relic в Unix/Linux
Недавно познакомился с замечательным инструментом для мониторинга New Relic. И в своей статье «Мониторинг приложений с New Relic в Unix/Linux» я расскажу о мониторинге приложений с New Relic в Unix/Linux и приведу готовый скрипт для установки данной утилиты на своем сервере с минимальными усилиями.
Установка New Relic в Unix/Linux
По мере возможностей, я буду дописывать данную статью и наполнять ее полезной информацией. Но сейчас, я расскажу как выполнить установку New Relic на rpm’s системы, на примере CentOS 6/7.
ВНИМАНИЕ! Чтобы использовать New Relic, необходимо зарегистрироваться на официальном сайте и получить (в админ панели) регистрационный ключ.
Установка New Relic на Debian/Ubuntu
Для Debian/Ubuntu серверов, необходимо добавить репозиторий:
# echo deb http://apt.newrelic.com/debian/ newrelic non-free | sudo tee /etc/apt/sources.list.d/newrelic.list && wget -O- https://download.newrelic.com/548C16BF.gpg | sudo apt-key add -
Обновляем репозитории:
# apt-get update
И выполняем установку:
# apt-get install newrelic-sysmond
Настройка лицензии:
# nrsysmond-config --set license_key=06753c88cf98ef22a1b5d97147026fe7c6482fcb
PS: 06753c88cf98ef22a1b5d97147026fe7c6482fcb — это мой регистрационный ключ, его нужно сменить на свой!
Запускаем службу:
# service newrelic-sysmond start
Настройка New Relic
Выполняем команду (чтобы получить свое доменное имя -хостнейм):
# hostname
Идем далее, открываем конфигурационный файл:
# vim /etc/newrelic/nrsysmond.cfg
И вносим небольшие изменения:
[...] license_key=06753c88cf98ef22a1b5d97147026fe7c6482fcb [...]
Так же, меняем (прописываем) хостнейм:
[...] hostname=linux-notes [...]
И перезапускаем демон с new relic:
# service newrelic-sysmond restart
Установка New Relic на CentOS
И так, я буду использовать CentOS 6/7 и сейчас я установлю new relic.
Для начала, обновим все ПО:
# yum update -y && yum upgrade -y
Далее, подключим репозиторий с new relic:
Если используете 32-битную ОС:
# rpm -Uvh https://yum.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
Если используете 64-битную ОС:
# rpm -Uvh https://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
Обновим список:
# yum repolist
И выполняем установку new relic:
# yum install newrelic-sysmond newrelic-php5 -y
Сейчас, необходимо прописать лицензионный ключ чтобы new relic заработал, имеется 2 способа:
- Использовать утилиту:
# nrsysmond-config --set license_key=YOUR_LICENSE_KEY
- Отредактировать конфигурационный файл вручную:
# vim /etc/newrelic/nrsysmond.cfg
И привести к такому виду:
license_key=REPLACE_WITH_REAL_KEY loglevel=info logfile=/var/log/newrelic/nrsysmond.log
Т.к я установил поддержку php, то нужно подключить ее:
# vim /etc/php.d/newrelic.ini
И приводим к такому виду:
extension = "newrelic.so" [newrelic] newrelic.license = "REPLACE_WITH_REAL_KEY" newrelic.logfile = "/var/log/newrelic/php_agent.log" newrelic.loglevel = "info" newrelic.appname = "PHP Application" # Note: this is the name that will appear in the New Relic site monitoring page newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log" newrelic.daemon.loglevel = "info" newrelic.transaction_tracer.record_sql = "off"
Это еще не все, следующим действием будет конфигурирование newrelic.cfg, но для начала скопируем конфиг:
# cp -p /etc/newrelic/newrelic.cfg.template /etc/newrelic/newrelic.cfg
Приводим к виду:
# cat /etc/newrelic/newrelic.cfg|grep -Ev "(#|^$)" logfile=/var/log/newrelic/newrelic-daemon.log loglevel=info auditlog=/var/log/newrelic/audit.log
Последним действием будет перезапуск служб.
Если используете веб-сервер nginx:
# service nginx restart; tail -f /var/log/nginx/error.log
Проверяем запустился ли он:
# ps -ef | grep nginx
Если используете веб-сервер apache:
# service httpd restart; tail -f /var/log/httpd/error_log
Проверяем запустился ли он:
# ps -ef | grep apache
И, собственно, запускаем (перезапускаем) сам New Relic:
# /etc/init.d/newrelic-sysmond restart;
Смотрим чтобы не было никаких ошибок:
# tail -f /var/log/newrelic/nrsysmond.log
И тоже самое проделываем для демона:
# /etc/init.d/newrelic-daemon restart; tail -f /var/log/newrelic/newrelic-daemon.log
Проверяем запустился ли он:
# ps -ef | grep newrelic
ГОТОВО!
PS: Как и обещал, вот готовый скрипт по установке New Relic для CentOS 6/7.
# cd /usr/local/src && vim Install_New_Relic_CentOS.sh
Вот сам скрипт:
#!/bin/bash -x # CREATED: # vitaliy.natarov@yahoo.com # # Unix/Linux blog: # http://linux-notes.org # Vitaliy Natarov # #Update OS yum update -y yum upgrade -y Check_Newrelic_User=$(grep newrelic /etc/passwd) Check_Newrelic_Group=$(grep newrelic /etc/group) if [ -z "$Check_Newrelic_User" ]; then if [ -z "$Check_Newrelic_Group" ]; then # create newrelic group groupadd -g 495 newrelic # create newrelic user and assign to newrelic group useradd -c "New Relic daemons" -s /sbin/nologin -m -d /home/newrelic -g 495 -u 495 newrelic # Note: do not set a password fi fi echo "$Check_Newrelic_User" echo "$Check_Newrelic_Group" # Add REPOS Arch=$(uname -m) echo "$Arch"; if [ "$Arch" == "x86_64" ]; then Arch="x86_64" elif [ "$Arch" == "i386|i686" ]; then Arch="i386" else echo "$Arch"; fi if [ ! -f /etc/yum.repos.d/newrelic.repo ]; then rpm -Uvh https://yum.newrelic.com/pub/newrelic/el5/$Arch/newrelic-repo-5-3.noarch.rpm # Package installation yum install newrelic-sysmond newrelic-php5 -y else Check_Newrelic_Package=$(rpm -qa | grep -E "(newrelic-sysmond|newrelic-php5)") if [ -z "$Check_Newrelic_Package" ]; then yum install newrelic-sysmond newrelic-php5 -y fi fi # # nrsysmond-config --set license_key=YOUR_LICENSE_KEY # YOUR_LICENSE_KEY="06753c88cf98ef22a1b5d97147026fe7c6482fcb" # Complete nrsysmond.cfg #cp /etc/newrelic/nrsysmond.cfg /etc/newrelic/nrsysmond.cfg_bk cp /etc/newrelic/nrsysmond.cfg{,_bk} echo -e 'license_key=YOUR_LICENSE_KEY loglevel=info logfile=/var/log/newrelic/nrsysmond.log' > /etc/newrelic/nrsysmond.cfg sed -i -e "s/license_key=YOUR_LICENSE_KEY/license_key=$YOUR_LICENSE_KEY/g" /etc/newrelic/nrsysmond.cfg #cat /etc/newrelic/nrsysmond.cfg | grep -Ev "(#|^$)" #license_key=REPLACE_WITH_REAL_KEY #loglevel=info #logfile=/var/log/newrelic/nrsysmond.log # Lines to be uncommented cp /etc/php.d/newrelic.ini /etc/php.d/newrelic.ini_bk echo -e 'extension = "newrelic.so" [newrelic] newrelic.license = "YOUR_LICENSE_KEY" newrelic.logfile = "/var/log/newrelic/php_agent.log" newrelic.loglevel = "info" newrelic.appname = "PHP Application" # Note: this is the name that will appear in the New Relic site monitoring page newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log" newrelic.daemon.loglevel = "info" newrelic.transaction_tracer.record_sql = "off"' > /etc/php.d/newrelic.ini sed -i -e "s/YOUR_LICENSE_KEY/$YOUR_LICENSE_KEY/g" /etc/php.d/newrelic.ini # cat /etc/php.d/newrelic.ini | grep -Ev "(;|^$)" #extension = "newrelic.so" #[newrelic] #newrelic.license = "REPLACE_WITH_REAL_KEY" #newrelic.logfile = "/var/log/newrelic/php_agent.log" #newrelic.loglevel = "info" #newrelic.appname = "PHP Application" # Note: this is the name that will appear in the New Relic site monitoring page #newrelic.daemon.logfile = "/var/log/newrelic/newrelic-daemon.log" #newrelic.daemon.loglevel = "info" #newrelic.transaction_tracer.record_sql = "off" #Complete newrelic.cfg configuration cp -p /etc/newrelic/newrelic.cfg.template /etc/newrelic/newrelic.cfg echo -e 'logfile=/var/log/newrelic/newrelic-daemon.log loglevel=info auditlog=/var/log/newrelic/audit.log' > /etc/newrelic/newrelic.cfg #cat /etc/newrelic/newrelic.cfg|grep -Ev "(#|^$)" #logfile=/var/log/newrelic/newrelic-daemon.log #loglevel=info #auditlog=/var/log/newrelic/audit.log #Restart Web services if type -path "nginx" > /dev/null 2>&1; then service nginx restart #tail -f /var/log/nginx/error.log ps -ef | grep nginx elif type -path "httpd" > /dev/null 2>&1; then service httpd restart #tail -f /var/log/httpd/error_log ps -ef | grep apache else echo "Please check which web-server installed on `hostname`"; fi #Restart New Relic services chown newrelic:newrelic /etc/newrelic/* /etc/init.d/newrelic-sysmond restart #tail -f /var/log/newrelic/nrsysmond.log /etc/init.d/newrelic-daemon restart #tail -f /var/log/newrelic/newrelic-daemon.log ps -ef | grep newrelic echo "|---------------------------------------------------|"; echo "|--------------------FINISHED-----------------------|"; echo "|---------------------------------------------------|";
Вы можете скачать и использовать его так:
# cd /usr/local/src && wget http://linux-notes.org/wp-content/uploads/scripts/newrelic/Install_New_Relic_CentOS.sh
В данном скрипте прописан мой регистрационный ключ, по этому, нужно отредактировать и заменить его на свой. Открываем скрипт и ищем строку (вроде бы 57 строка):
[...] YOUR_LICENSE_KEY="06753c88cf98ef22a1b5d97147026fe7c6482fcb" [...]
И прописываем свой ключ, после чего, сохраняем и запускаем скрипт:
# bash /usr/local/src/Install_New_Relic_CentOS.sh
Удаление new relic
# yum remove newrelic-sysmond newrelic-php5
Установка New Relic на другие Unix/Linux ОС
Не было нужды устанавливать на другие Unix/LInux ОС. Если интересно, могу дополнить данный материал.
Установка плагинов для New Relic
Существует довольно много плагинов для New Relic, при необходимости, можно установить их. Я думаю скоро я напишу и для этого скрипт.
А на этом у меня все, тема «Мониторинг приложений с New Relic в Unix/Linux» завершена.