How to Install Graylog on Windows 10
Graylog is an open-source log management and analysis tool that can be used for collecting, indexing, and analyzing logs from various sources. In this tutorial, we will guide you on how to install Graylog on Windows 10.
Prerequisites
Before we get started, ensure that you have the following prerequisites:
- Windows 10 operating system (64-bit)
- A minimum of 8GB RAM
- Java 8 or higher installed on your system
Step 1: Download Graylog
The first step is to download and extract Graylog from the official website. Follow the below steps to download graylog:
- Visit https://www.graylog.org/ and click on the «Download» button on the homepage.
-
Select the appropriate stable version for Windows.
-
Click on the «Download» button.
-
Extract the downloaded zip file to any directory of your choice.
Step 2: Configure Graylog
In this step, we will configure Graylog with the default settings. Follow the below steps to configure Graylog:
-
Open the extracted folder and double-click on the Graylog
batch
file. -
The Graylog console will open in your default web browser. In the Graylog console, click the «Login» button.
-
Enter the default login credentials — username
admin
and passwordpassword
. -
Click on «System» on the top-right corner and then click on «Overview.» In the overview section, you can view the current system status.
-
Next, click on «System» and then click on «Configuration» to configure Graylog settings.
-
Select the «Node» section and provide the below configuration:
- Enter the «HTTP» part of your Graylog URL in the «Web endpoint URI» field, for example, http://localhost:9000/api.
- Leave the «Transport email» field blank.
- Leave the «REST listen URI» field blank.
- Select the «Elasticsearch» section and provide the below configuration:
- Enter the URL of the Elasticsearch instance in the «HTTP URI» address field, for example, http://localhost:9200.
- Scroll down and click on the «Save» button.
Step 3: Start Graylog
In this step, we will start Graylog by running the Windows batch
script. Follow the below steps to start Graylog:
-
Open the extracted folder and double-click on the Graylog
batch
file. -
The script will run for a minute or so, and then Graylog will start.
-
You can see the logs in the console window.
-
Once Graylog is started, open your web browser and navigate to http://localhost:9000. This will open the Graylog login page.
-
Enter the login credentials that you set earlier.
-
You will now see the Graylog dashboard, and you can start adding logs to Graylog for analysis.
Conclusion
In this tutorial, we have successfully installed Graylog on Windows 10. You can now add different sources of logs to Graylog for analysis. You can also customize Graylog configuration as per your requirements.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!
Here is the quickest way to deploy a development version of the Graylog instance locally on your desktop machine.
Prerequisites
Depending on your environment, you will have to install Docker
Once installed, run these commands and you will have a fully working graylog running locally at http://127.0.0.1:9000/
Default username/password is admin/admin
docker run --restart always --name mongo -d mongo:3
docker run --restart always --name elasticsearch \
-e "http.host=0.0.0.0" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-d docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.5
docker run --restart always --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201 \
-e GRAYLOG_HTTP_EXTERNAL_URI="http://127.0.0.1:9000/" \
-d graylog/graylog:3.3
Expose additional ports
By default, port 12201 is exposed. If you are working on a PHP or .NET project locally, you will have to add an INPUT from the graylog interface for this port.
If your INPUT is listening on a UDP port, change it to -p 12201:12201/udp
docker run --name graylog --link mongo --link elasticsearch \
-p 9000:9000 -p 12201:12201/udp \
-e GRAYLOG_HTTP_EXTERNAL_URI="http://127.0.0.1:9000/" \
-d graylog/graylog:3.3
Notes:
- If you are on Windows and using Powershell, make sure to change “\” to “^” or simply remove it and make it a single line.
- Data loss – If you remove the mongodb or elasticsearch container, your data is lost. So do not use this in production. This is only good for development
15 Apr 2015 ⚠️ This post is over 10 years old. It may no longer be up to date.
Installing the Graylog Server
Graylog is a free log management platform that can collect log data from a wide range of sources. This post shows how to quickly set up a Graylog server and start monitoring logs from Linux and Windows hosts. For detailed documentation refer to the Greylog Online Documentation.
The quickest way to get started is to download the Graylog OVA Appliance. This is imported into a new VM in your VMware environment.
Once the appliance is up and running, log in to the console with username and password ubuntu
. We’re going to update the admin password, email config and timezone:
sudo graylog-ctl set-admin-password <password>
sudo graylog-ctl set-email-config <smtp server> --user=<username> --password=<password>
sudo graylog-ctl set-timezone <zone acronym>
sudo dpkg-reconfigure tzdata
We’ll also assign a static IP by editing /etc/network/interfaces
, and then reload the network and Graylog service:
sudo ifdown eth0 && sudo ifup eth0
sudo graylog-ctl reconfigure
Finally, change the password for the ubuntu
user on the VM with passwd
and log off.
You can now access the server on the IP address we set above and log in with username admin
and the password you set earlier. You may want to add a DNS record for the new server at this point.
Configure Inputs
Before we start sending log data to Graylog, we need to tell it what type of data we’ll be sending. We do this by creating two inputs: a Syslog UDP
input for our Linux servers and a GELF UDP
input for our Windows servers.
Click on System > Inputs, and select GELF UDP
from the input menu. Click Launch new input. Turn on ‘Global input’, and give the input a name. All other settings can be left as their defaults. Repeat these steps to create another input, this time using the Syslog UDP
type.
Set up Clients
Linux
On our linux clients we’ll configure rsyslog to forward log data to Graylog. Save the following config to /etc/rsyslog.d/90-graylog2.conf
, replacing syslog.example.com
with the IP address or DNS name of the Graylog server:
And restart rsyslog:
sudo service rsyslog restart
Windows
On our Windows clients we need to install NX Log Community Edition to export log data.
Once it’s installed, open up C:\Program Files (x86)\nxlog\conf\nxlog.conf
and enter the following, replacing syslog.example.com
with the IP address or DNS name of the Graylog server:
To apply the new config, reload the nxlog service.
Viewing Logs
You should now be able to log in to your Graylog server and see log data coming in under the Sources tab.
Graylog это полноценное open-source решение для централизованного сбора, хранения, визуализации, фильтрации и поиска логов, мониторинга и отправки оповещений. В Graylog можно отправлять логи и журналы событий с сотен сетевых устройств, будь то сервера Linux, Windows, сетевые устройства и оборудование. Graylog эта мощная платформа, которое может хранить терабайты логов и при этом позволяет поиск в логах выполняется практически моментально. В этой статье мы рассмотрим процесс развертывания стека Graylog и базовые возможности — это системы логирования.
Стек Graylog состоит из следующих компонентов:
- Сервер Graylog – веб интерфейс для визуализации и настройки
- MongoDB – используется для хранения метаданных
- ElasticSearch или его форк OpenSearch – для хранения и полнотекстового поиска в структурированных и неструктурированных логах
- Java (OpenJDK) – среда выполнения OpenSearch (ElasticSearch)
Для хранения журналов мы будем использовать стэк OpenSearch, который является бесплатным аналогом с отрытым исходным кодом стеку ELK (Elasticsearch + Logstash + Kibana).
Установка стека Graylog на Linux
Инструкции по установки стека Graylog будут сильно отличаться от версии к версии. Поэтому рекомендуем вручную выбрать на сайте https://go2docs.graylog.org ваш дистрибутив Linux и версию Graylog. В нашем примере это Debian 12 и Graylog 5.2.
Graylog можно запустить через docker-compose, но в данном случае мы рассмотрим полноценное разверыванием всех компонентов.
Нам понадобятся:
- OpenJDK 17
- OpenSearch 2.x (или Elasticsearch 7.10.2 – это единственная версия совместимая с Graylog 5.2)
- MongoDB 5.x или 6.x (использовать MongoDB 7 пока не рекомендуется)
- На сервере Graylog должно быть не менее 2GB RAM для небольшой инсталляции
Установка MongoDB 6:
$ sudo apt-get install gnupg curl
$ curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg --dearmor
$ echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg] http://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
$ sudo apt-get update
Теперь можно установить MongoDB:
$ sudo apt-get install -y mongodb-org
В моем случае для Debian 12 при установке mongodb появилась ошибка:
The following packages have unmet dependencies: mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable mongodb-org-server : Depends: libssl1.1 (>= 1.1.1) but it is not installable
Пришлось установить:
$ sudo wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
$ sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
Запустите сервис:
$ sudo systemctl daemon-reload
$ sudo systemctl enable mongod.service
$ sudo systemctl restart mongod.service
$ sudo systemctl --type=service --state=active | grep mongod
Затем переходим к развёртыванию OpenSearch:
$ sudo apt-get update && sudo apt-get -y install lsb-release ca-certificates curl gnupg2
$ Добавление репозитория:
$ curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
$ sudo apt update
Начиная с OpenSearch 2.12 при установке нужно сразу сгенерировать пароль администратора:
$ sudo OPENSEARCH_INITIAL_ADMIN_PASSWORD=$(tr -dc A-Z-a-z-0-9_@#%^-_=+ < /dev/urandom | head -c${1:-32}) apt-get install opensearch
Теперь нужно настроить параметры OpenSearch:
$ sudo nano /etc/opensearch/opensearch.yml
Для простейшей конфигурации из одной ноды достаточно настроить следующие параметры:
cluster.name: graylog node.name: ${HOSTNAME} path.data: /var/lib/opensearch path.logs: /var/log/opensearch discovery.type: single-node network.host: 0.0.0.0 action.auto_create_index: false plugins.security.disabled: true indices.query.bool.max_clause_count: 32768
Настройте параметры SMTP сервера, через который вы будете отправлять email уведомления:
transport_email_enabled = true transport_email_hostname = smtp.gmail.com transport_email_port = 465 transport_email_use_auth = true transport_email_use_tls = false transport_email_use_ssl = true transport_email_auth_username = transport_email_auth_password = transport_email_subject_prefix = [graylog] transport_email_from_email = transport_email_web_interface_url =
Затем изменить настройки Java:
$ sudo nano /etc/opensearch/jvm.options
В параметрах Xms и Xmx нужно указать сколько памяти может исопльзовать виртуальная машина java. Здесь рекомендуется указать половину RAM сервера. Например, для хоста с 8 Гб, здесь нужно выделить 4 Гб:
-Xms4g -Xmx4g
Измените параметры виртуальной памяти:
$ sudo sysctl -w vm.max_map_count=262144
$ sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
Запустите OpenSearch:
$ sudo systemctl enable --now opensearch
Теперь нужно установить сервер Graylog. Есть две версии Graylog: бесплатная Graylog Open и enterprise версия Graylog Operations, доступная по подписке.
Для установки Graylog Open:
$ wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
$ sudo dpkg -i graylog-5.2-repository_latest.deb
$ sudo apt-get update && sudo apt-get install graylog-server
Сгенерируйте пароли для двух переменных password_secret и root_password_sha2, без которых Graylog не запустится.
Пароль password_secret должен содержать минимум 64 символа:
$ pwgen -N 1 -s 96
Затем нужно получить хэш пароля администратора Graylog. Следующая команда сгенерирует хэш введенного вами пароля:
$ echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Скопируйте полученные значения password_secret и root_password_sha2 в файл /etc/graylog/server/server.conf.
В
http_bind_address
укажите IP адрес и порт, на котором будет запущен веб сервер Graylog.
Запустите сервер graylog:
$ sudo systemctl enable --now graylog-server
Пошаговая настройка Graylog
Теперь вы можете попробовать зайти в веб интерфейс Graylog под пользователем admin и пароль, хеш-сумму которого вы указали в файле конфигурации. Однако, при первом входе этот пароль не будет приниматься.
Если посмотреть логи сервера GrayLog, там вы обнаружите интересное сообщение:
$ cat /var/log/graylog-server/server.log
It seems you are starting Graylog for the first time. To set up a fresh install, a setup interface has been started. You must log in to it to perform the initial configuration and continue. Initial configuration is accessible at 0.0.0.0:9000, with username 'admin' and password 'eDluAYfeaX'. Try clicking on _http://admin:[email protected]:9000
В первый раз нужно зайти под временным паролем, который указан в лог файле. Воспользуйтесь простым мастером начальной конфигурации. Режим Graylog data node используется для настройки OpenSearch кластера из нескольких нод. Для простой конфигурации из одного сервера логов, этот этап можно пропустить.
После этого вы сможете зайти в веб-интерфейс Graylog под пользователем admin и вашим паролем администратора, хэш которого вы указали в конфигурационном файле:
После входа рекомендуем создать отдельного пользователя System-> User and Teams. Некоторые настройки встроенного администратора нельзя кастомизировать, поэтому лучше работать под отдельным пользователя. Назначьте пользователю роль admin и задайте email адрес.
Теперь нужно создать сборщики данных Inputs. Для каждого класса устройств лучше делать отдельный input (Linux сервера, сетевое оборудование, Windows хосты и т.д.).
Мы создадим input типа Syslog UDP для Linux. Нужно указать его название, и порт, на котором сервер будет принимать данные. Остальные настройки оставить по-умолчанию.
Теперь перейдите в System -> Indices и создать отдельный индекс для класса Linux.
Нужно указать имя, описание и префикс (например
linux_indx
). Здесь можно также настроить сколько дней нужно хранить старые логи, и когда можно удалять старые индекс, а также максимальный размер индекса.
Для каждого input лучше создать отдельный Stream. Так разные сообщений от разных классов устройства будут находится в разных индексах. Перейдите в Stream -> Create Stream -> укажите название потока и выберите индекс, который нужно использовать.
В настройках Stream добавьте новое правило. Правило определят какие логи нужно отнести к этому потоку. В нашем случае выбираем match input -> выберите ваш Linux Input.
После этого запустите stream.
Настройка отправки логов с клиентов в Graylog
Теперь можно настроить отправку логов с ваших устройств в Graylog. Graylog позволяется получать данные из различных источников: Filebeat, Winlogbeat, Nxlog, Syslog, Rsyslog и т.д.
Для Linux серверов можно использовать rsyslog.
$ sudo apt install rsyslog
$ sudo systemctl status rsyslog
После того, как служба rsyslog запущена, нужно настроить какие логи нужно отправлять в Graylog.
$ sudo nano /etc/rsyslog.d/60-graylog.conf
Добавьте в файл строку:
*.*@192.168.14.146:20514;RSYSLOG_SyslogProtocol23Format
В данном примере мы будем отправлять на Graylog сервер (192.168.14.146) на порт созданного вами Input (20514) все логи в формате Syslog (в реальной среде можно настроить отпрвку только определенных журналов).
Перезапустите rsyslog:
$ sudo systemctl restart rsyslog
Просмотр, фильтрации и анализ логов в GrayLog
Теперь перейдите на вкладку Search Graylog, выберите в списки потоков Linux и вы увидите все события от вашего сервера, которые были получены за последние 5 минут (можно изменить диапазон).
С помощью простых фильтров можно найти определенные события. Поисковая строка Graylog интерактивная. Вы выбираете различные свойства событий и в поисковой строке выбираете из предложенных вариантов.
Например, для поиска всех событий неудачных попыток SSH подключений к серверу, настройте следующий поисковый фильтр:
source:srv\-ubun01 AND application_name:sshd AND message:Fail*
В данном случае мы явно указываем что ищем события, которые удовлетворяют всем трем условиям (параметр
AND
). Если не указывать AND, graylog подразумевает что вы ищите события в режиме
OR
.
В таблице останутся события, которые соответствуют вашим критериям поиска. Вы можете развернуть и изучить их. Поисковые фильтры Graylog довольно простые и интуитивно понятны. Вы всегда можете развернуть любой событие, просмотреть его поля и использовать их значения для фильтрации и поиска событий.
В Graylog можно создать различные Dashboard-ы, в которых можно выводить информацию об интересующих вас событиях (количество событий, хосты, сгруппировать элементы, добавить графики или карты). Для кастомизации dashboard используются виджеты.
Настройка оповещений в Graylog
Вы можете настроить автоматическую отправку оповещений из Graylog при появлении определенных событий. Например, я хочу, чтобы Graylog отправлял мне на почту письмо, когда кто-то зашел на один серверов по SSH.
Перейдите в Alerts -> Alerts and Events. На вкладке Notification добавьте email адреса, на которые нужно высылать письма.
В Graylog есть встроенные шаблоны для отправки алертов в MS Teams и Slack. С помощью плагинов можно настроить отправку сообщений из Graylog в Telegram.
Затем на Event Definition нужно создать шаблон для поиска событий, о которых нужно уведомлять. Для отслеживания SSH входов на Linux хосты нужно выбрать соответствующий Stream и указать поисковый запрос:
application_name:sshd AND message:Accepted password*
В правом столбце появится список событий, которые соответствуют вашим критериям. Проверьте, что найдены все события. Если нет, отредактируйте поисковый запрос.
Осталось выбрать тип уведомления -> email. И Graylog начнет высылать вам оповещение при появлении в логах определенного события.
В этой статье мы рассмотрели базовые вопросы развертывания и использования системы сбора и анализа логов Graylog. В следующей статье мы рассмотрим, как использовать Graylog для централизованного сбора и поиска в логах от серверов Windows.
Записывая для VPSVille три ролика по Graylog понял, что на хабре по нему только одна обзорная статья, а мануалы на любом языке запутаны из-за различной работы компонентов в разных версиях ПО. Потратив сутки на переваривание всей этой красоты пишу мануал: как настроить сервер Graylog для сбора событий из Windows и Linux.
Кто очень хочет понимать Linux, но не поймет с чего начинать — прошу ко мне на канал.
Вместо введения: Graylog это open source программное обеспечение, предназначенное для сбора логов в гигантских сетях их огромного количества источников различными способами. В нем можно удобно организовать сбор событий, фильтрацию, поиск, автоматизацию (всякие алерты) и т.д. Аналогичных средств множество, но Graylog предлагает нереальную производительность с использованием современных компонентов, удобную аналитику и красивый интерфейс.
Для работы ему нужна Java, конфигурацию он будет хранить в MongoDB, для поиска и хранения логов — использовать ElasticSearch. Про сбор информации из WIndows будет ниже, но спойлер — агенту больше не нужна Java.
Итак, у нас есть официальный мануал, по которому мы должны с вами собрать Graylog. Но в нем очень многое упущено, это просто обрывки информации, поэтому пойдем поэтапно сами (использую Ubuntu 14.04, так как именно ее и советуют разработчики на данный момент). Так как изначально Graylog предназначен для огромнейших сетей, рекомендуется ставить БД, поисковый движок и сам Graylog на разные сервера, создавать из этого всего кластеры, узлы и т.д. Я беру простейший конфиг, в котором все крутится на одной машине.
Первая часть: установка Graylog. (видеоинструкция)
Сначала Java (не ниже восьмой версии):
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
Затем MongoDB (вдруг что изменится, вот вам мануал):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
sudo apt-get update
sudo apt-get install mongodb-org
Следом ElasticSearch (у которого тоже есть свой мануал):
sudo wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update
sudo apt-get install elasticsearch
Эластику нужны:
настройка автозапуска:
sudo update-rc.d elasticsearch defaults 95 10
редактирование файла конфигурации:
sudo vi /etc/elasticsearch/elasticsearch.yml
а именно указать имя кластера, например: cluster.name: graylog
и запретить доступ к нему по сети (так как вся система у нас на одной машине): network.bind_host: localhost
еще рекомендуют запретить динамические скрипты, но у меня эластик на эту опцию ругается: script.disable_dynamic: true
Рестартуем Эластик:
sudo service elasticsearch restart
И проверяем
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
Если на выводе нет откровенных ошибок, то все в порядке.
Установка и пробный запуск Graylog:
sudo apt-get install apt-transport-https
wget https://packages.graylog2.org/repo/packages/graylog-2.0-repository_latest.deb
sudo dpkg -i graylog-2.0-repository_latest.deb
sudo apt-get update
sudo apt-get install graylog-server
sudo rm -f /etc/init/graylog-server.override
sudo start graylog-server
Теперь устанавливаем пароль доступа к нему (у меня «123456789»), шифрованный, как и полагается у взрослых (кому будет непонятен смысл команд ниже: смотрите видео, или пишите вопросы):
sudo apt-get install pwgen
SECRET=$(pwgen -s 96 1)
sudo -E sed -i -e 's/password_secret =.*/password_secret = '$SECRET'/' /etc/graylog/server/server.conf
PASSWORD=$(echo -n 123456789 | shasum -a 256 | awk '{print $1}')
sudo -E sed -i -e 's/root_password_sha2 =.*/root_password_sha2 = '$PASSWORD'/' /etc/graylog/server/server.conf
В том же файле конфигурации указываю ip своего будущего сервера Graylog и префикс (он же — имя кластера Эластика выше).
sudo vi /etc/graylog/server/server.conf
rest_listen_uri = http://10.0.1.10:12900/
web_listen_uri = http://10.0.1.10:9000/
elasticsearch_index_prefix = graylog
Перезапускаю Graylog и пробую войти в него через веб-интерфейс:
10.0.1.10:9000/
(само собой все указанные в конфиге порты должны быть открыты). При старте Graylog может пару минут дурачится и писать в веб-интерфейсе что все плохо, не принимать пароль и выбрасывать на главную. Дайте ему время прийти в себя и пробуйте.
Вторая часть: настройка приема логов в Graylog из Linux. (видеоинструкция)
В консоль сервера приема логов нам больше попадать не нужно. Идем в веб-морду и создаем Input для логов. Расписывать навигацию по веб-интерфейсу дело гиблое, потому есть видео. Если кратко:
- в меню «Система» создается UDP Input;
- указывается syslog udp;
- указывается порт (по умолчанию 512, но чтобы graylog мог использовать порты ниже 1024 нужно много возьни), поэтому, например 1234;
- указывается адрес для прослушивания входящих сообщений, у меня 10.0.1.10;
- нажимаем Launch.
Для проверки работы Input можно в консоли того же сервера graylog выполнить
echo "Hello Graylog" | nc -w 1 -u 10.0.1.10 1234
и посмотреть в веб-интерфейсе сообщения, полученные на Input.
Конфигурация машин Linux на отправку логов, в принципе проста. Почти везде релизы syslogd ведут себя одинаково. Кто ничего не помнит о демонах журналирования — освежите память у меня на канале. Итак debian и redhat.
Создается файл задания rsyslog:
sudo vi /etc/rsyslog.d/90-graylog2.conf
c текстом (адрес и порт взят из настроенного Input):
$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%\n"
*.* @10.0.1.10:1234;GRAYLOGRFC5424
Демон журналов перезапукается командой
sudo service rsyslog restart
(ну или как там в вашей ОС).
И можно смотреть в веб-интерфейсе Graylog полученные сообщения.
Третья часть: настройка приема логов в Graylog из Windows. (видеоинструкция)
В версиях Graylog младше второй использовался graylog collector на java. Во второй (актуальной) он просто игнорируется и дает ошибки (полдня пытался починить, пока не понял это). Вместо него используется graylog sidecar, который получает конфиг с сервера Graylog (что очень удобно, так как нет необходимости лазить по виндовым серверам для редактирования настроек) и передает его в nxlog (или что вам больше нравится), который события собирает и отправляет.
Для приема сообщений из Windows надо создать отдельный Input через веб-интерфейс:
- выбираем GELF UDP;
- указываем узел, айпишник сервера graylog;
- запоминаем или редактируем порт приема сообщений (по умолчанию 12201).
Для создания конфигурации отправки логов для nxlog на винде, нужно создать коллектор через веб-интерфейс в graylog:
- выбираем Collectors;
- выбираем Manage Configuration;
- создаем конфигурацию;
- указываем метку (именно по метке sidecar на windows поймет какую конфигурацию для nxlog ему скачивать к себе на машину);
- создаем Output для nxlog (в котором просто указываем настройки Input из предыдущего шага: GELF UDP Output, ip, порт);
- создаем Input для nxlog (указываем простейший вариант: Windows Event Log).
Отправляемся в Windows, Скачиваем и устанавливаем nxlog и graylog-sidecar.
Убираем как службу nxlog, и ставим как службу sidecar:
'C:\Program Files (x86)\nxlog\nxlog.exe' -u
'C:\Program Files (x86)\graylog\collector-sidecar\graylog-collector-sidecar.exe' -service install
Редактируем файл конфигурации Sidecar (C:\Program Files (x86)\graylog\collector-sidecar\collector_sidecar.yml), а именно указываем порт прослушки глобальный (12900), ip сервера, и самое главное: метку, по которой будет принят конфиг. У меня это выглядит так:
server_url: http://10.0.1.10:12900
node_id: graylog-collector-sidecar
collector_id: file:C:\Program Files (x86)\graylog\collector-sidecar\collector-id
tags: windows
log_path: C:\Program Files (x86)\graylog\collector-sidecar
update_interval: 10
backends:
- name: nxlog
enabled: true
binary_path: C:\Program Files (x86)\nxlog\nxlog.exe
configuration_path: C:\Program Files (x86)\graylog\collector-sidecar\generated\nxlog.conf
Запускаем sidecar 'C:\Program Files (x86)\graylog\collector-sidecar\graylog-collector-sidecar.exe' -service start
Создаем событие eventcreate /l Application /t INFORMATION /id 1 /d “Suck it”
Смотрим логи в его директории (C:\Program Files (x86)\graylog\collector-sidecar\), и если все ок — отправляемся в веб-морду смотреть логи винды на инпуте.
Нюансы:
- бывает что файл конфига нужно создать вручную пустой C:\Program Files (x86)\graylog\collector-sidecar\generated\nxlog.conf;
- бывает что нужно перезапустить винду, чтобы все сервисы все схватили;
- у меня был косяк с опечаткой в названии метки, убил час, разбираясь;
- сама метка должна отметиться в веб-интерфейсе в рамочку, иначе это не метка.
Ну а дальше уже начинается работа в веб-интерфейсе: какие именно логи откуда брать, как на какие события реагировать, что отфильтровывать и т.д. Начнете копать — разберетесь. Вот на всякий случай еще раз мануал.