-
Notifications
You must be signed in to change notification settings - Fork 0
/
rsyslog+LogAnalyzer+MySQL
337 lines (295 loc) · 32.6 KB
/
rsyslog+LogAnalyzer+MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
Развертывание системы централизованного журналирования сетевых устройств на ОС Linux CentOS 7
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Все описанные ниже действия выполнялись под пользователем root
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Всем привет! Для реализации данного проекта мне потребовалось:
1) Обновить пакеты ОС Linux CentOS 7 до последней версии;
2) Прописать статические IP-адреса;
3) Выключить систему принудительного контроля доступа SELinux;
4) Установить необходимые пакеты/компоненты;
5) Настроить базу данных(MySQL) для rsyslog;
6) Скачать и установить ПО LogAnalyzer;
7) Запустить веб-установщик LogAnalyzer и подключить к созданной базе данных;
8) Подключить сетевое устройство к rsyslog;
9) Подробнее о чистке базы данных LogAnalyzer.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Предисловие:
LogAnalyzer - это программное обеспечение, устанавливаемое, как правило, на сервер, которое с определённой периодичностью собирает накопленные узлом журналы сервера,
обрабатывающее данные из них, хранящее извлечённые данные во внутреннем архиве или базе данных, и создающее страницы, показывающие статистическую информацию конечным пользователям.
------------
Rsyslog - это это программная утилита с открытым исходным кодом, используемая в UNIX и Unix-подобных компьютерных системах для пересылки сообщений журнала в сети.
------------
MySQL - это свободная реляционная система управления базами данных.
------------
MariaDB — это ответвление от системы управления базами данных MySQL, разрабатываемое сообществом под лицензией GNU GPL.
------------
NMTUI - это инструмент командной строки, который используется для настройки сети в системах Gnu / Linux. При запуске он вызывает графический текстовый интерфейс, который помогает
пользователям легко и эффективно настраивать сетевые интерфейсы.
------------
SELinux - это система принудительного контроля доступа, реализованная на уровне ядра.
------------
Nano - это консольный текстовый редактор для UNIX и Unix-подобных операционных систем, основанный на библиотеке curses и распространяемый под лицензией GNU GPL.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1) Перед началом выполнения каких-либо манипуляций по настройке связки rsyslog+LogAnalyzer+MySQL, нужно выполнить подготовку ОС Linux CentOS 7. Для начала обновим пакеты системы.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum update -y && yum upgrade -y |#|#| Поиск и обновление пакетов системы
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) Также для избежания потери связи с АРМ/VM, нужно позаботиться о статической IP-адресации. Её можно настроить как на самой АРМ/VM, так и на самом сетевом устройстве.
Статическую адресацию можно прописать с помощью инструмента командной строки nmtui.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y NetworkManager-tui |#|#| Установка пакета nmtui для настройки сети на АРМ/VM.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Гайд по тому, как пользоваться инструментом nmtui, вы можете посмотреть в интернете.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3) После настройки сети, нужно ОБЯЗАТЕЛЬНО отключить систему контроля доступа SELinux НАВСЕГДА. Если данную систему не выключить, то после настройки LogAnalyzer, в нём же у вас все время
будут сыпаться следующие ошибки:
1) file './...]': open error: Permission denied [v8.24.0-57.el7_9.3 try http://www.rsyslog.com [More Information] /e/2433 ]
2) action 'action 7' resumed (module 'builtin:omfile') [v8.24.0-57.el7_9.3 try http://www.rsyslog.com [More Information] /e/2359 ]
3) file './...]': open error: Permission denied [v8.24.0-57.el7_9.3 try http://www.rsyslog.com [More Information] /e/2433 ]
4) action 'action 8' resumed (module 'builtin:omfile') [v8.24.0-57.el7_9.3 try http://www.rsyslog.com [More Information] /e/2359 ]
5) action 'action 9' resumed (module 'ommysql') [v8.24.0-57.el7_9.3 try http://www.rsyslog.com [More Information] /e/2359 ]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sestatus |#|#| Команда для проверки статуса SELinux
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Откройте config-файл по пути: /etc/selinux/
Для редактирования файла можно воспользоваться консольным текстовым редактором nano. По тому как им пользоваться, всю информацию можно найти в интернете.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
nano /etc/selinux/config |#|#| Команда для открытия и редактирования конфигурационного файла SELinux
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Конфигурационный файл SELinux должен выглядеть следующим образом:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После внесённых изменений, сохраняем файл, выходим из консольного текстового редактора и отправляем АРМ/VM в перезагрузку
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
reboot |#|#| Команда для перезагрузки АРМ/VM
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После перезагрузки вашего устройства, можете снова ввести команду "sestatus" и убедиться в том, что у вас отключена система SELinux.
Вывод отключенной системы должен выглядеть вот так:
SELinux status: disabled
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4) Установка и включение необходимых пакетов/компонентов.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
yum install -y httpd php php-mysql wget mariadb-server rsyslog-mysql |#|#| Команда для установки необходимых пакетов
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable httpd && systemctl start httpd |#|#| Команда для включения сервиса httpd в автозагрузку и запуска сервиса httpd
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl enable mariadb && systemctl start mariadb |#|#| Команда для включения сервиса mariadb в автозагрузку и запуска сервиса mariadb
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5) Настройка базы данных(MySQL) для rsyslog.
!!! Изначально, в базе данных MySQL, у пользователя root пароль не назначен. Поэтому, когда система попросит вас ввести пароль, просто нажмите Enter !!!
!!! Также, когда вы работаете в системе MariaDB, то после того, как вы полностью ввели команду, ОБЯЗАТЕЛЬНО нужно поставить в конце символ ";" !!!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysql -u root -p < /usr/share/doc/rsyslog-8.24.0/mysql-createDB.sql |#|#| Команда для импортации схемы базы данных rsyslog, предложенной по умолчанию.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mysql -u root -p |#|#| Команда подключения к системе MariaDB, для управления базами данных MySQL
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
GRANT ALL ON Syslog.* TO 'rsyslog'@'localhost' IDENTIFIED BY 'Password'; |#|#| Команда создания пользователя "rsyslog" с паролем "Password" для доступа к базе данных Syslog. Пароль
можете придумать свой.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FLUSH PRIVILEGES; |#|#| Команда для того, чтобы задать привилегии пользователя путем непосредственного внесения изменений в таблицы назначения привилегий.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
exit |#|#| Команда выхода из системы MariaDB.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cp /etc/rsyslog.conf /etc/rsyslog.conf.org |#|#| Данной командой сделайте копию файла rsyslog.conf и поменяйте ему название на rsyslog.conf.org
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Далее откройте файл rsyslog.conf в текстовом редакторе и раскомментируйте следующие строки:
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На всякий случай выложу конфиг файла rsyslog.conf:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# rsyslog configuration file
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
#### MODULES ####
# The imjournal module bellow is now used as a message source instead of imuxsock.
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal
#$ModLoad imklog # reads kernel messages (the same are read from journald)
#$ModLoad immark # provides --MARK-- message capability
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####
# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on
# File to store the position in the journal
$IMJournalStateFile imjournal.state
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* -/var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg :omusrmsg:*
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
# ### end of the forwarding rule ###
#[...]
# Load the MySQL Module
module(load="ommysql")
#[...]
#*.* :ommysql:127.0.0.1,Syslog_Database,syslog_user,password
*.* :ommysql:127.0.0.1,Syslog,rsyslog,Password
$template RemoteLogs,"/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?RemoteLogs
& ~
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Далее в конец того же файла добавьте следующие строки(как показано в выше выложенном конфиге), которые создадут новое правило переадресации и загрузят модуль MySQL:
# Load the MySQL Module
module(load="ommysql")
#*.* :ommysql:127.0.0.1,Syslog_Database,syslog_user,password
*.* :ommysql:127.0.0.1,Syslog,rsyslog,Password
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После редактирования файла rsyslog.conf, также выполните команду для перезагрузки сервиса rsyslog.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl restart rsyslog |#|#| Команда для перезагрузки утилиты сервиса rsyslog
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Если выполнили все правильно, то никаких ошибок при перезагрузке или последующем запуске службы возникнуть не должно. Также можно проверить состояние службы.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl status rsyslog |#|#| Команда проверки статуса службы rsyslog
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
6) Загрузка, установка и настройка ПО LogAnalyzer.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Превым этапом нужно скачать установочный архив с ПО LogAnalyzer.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cd /tmp |#|#| Команда для перехода в папку tmp
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
wget http://download.adiscon.com/loganalyzer/loganalyzer-4.1.10.tar.gz |#|#| Команда для загрузки архива с ПО LogAnalyzer
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tar -xzvf loganalyzer-4.1.10.tar.gz |#|#| Команда разархивации архива с ПО LogAnalizer
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mkdir /var/www/html/loganalyzer |#|#| Команда для создания каталога "loganalyzer" в веб-каталоге apache
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cp -r /tmp/loganalyzer-4.1.10/src/* /var/www/html/loganalyzer |#|#|
|#|#| - Команды для копирования установочных файлов в каталог "loganalyzer"
cp -r /tmp/loganalyzer-4.1.10/contrib/* /var/www/html/loganalyzer |#|#|
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cd /var/www/html/loganalyzer |#|#| Команда перехода в каталог "loganalyzer"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
touch config.php |#|#| Команда для создания файла "config.php"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
chown apache:apache config.php |#|#| Данной командой изменим владельца и группу у файла "config.php" на apache:apache
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
chmod 777 config.php |#|#| Данной командой выдадим файлу "config.php" права на чтение, запись и выполнение
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
chcon -h -t httpd_sys_script_rw_t /var/www/html/loganalyzer/config.php |#|#| Данной командой изменим контекст файла "config.php"
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7) Запуск веб-установщика LogAnalyzer и подключение к базе данных.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Для последующей настройки LogAnalyzer, нужно перейти по следующему адресу: http://localhost/loganalyzer
Если вы хотите производить дальнейшую настройку на другом АРМ/VM, то перейдите по следующему адресу: http://IP/loganalyzer Указав вместо "IP" адрес АРМ/VM, на которой развернута связка rsyslog+LogAnalyzer+MySQL
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Далее следуйте прописанным ниже шагам:
1 - В высветившемня окошке с текстом, вы увидите слово "here" синего цвета, кликайте на него;
2 - Нажмите на кнопку "Next";
3 - Убедитесь в том, что файл "config.php" доступен для записи и нажмите кнопку "Next";
4 - Заполните данные базы данных для loganalyzer, указав имя базы данных: "Syslog", пользователя: "rsyslog" и пароль: "Password", созданные на последних шагах, и нажмите кнопку "Next";
5 - Нажмите на кнопку "Next";
6 - Нажмите на кнопку "Next";
7 - Создайте учётную запись администратора для LogAnalyzer;
8 - Заполните следующие строки:
Name of the Source: My Syslog Source
Source Type: MYSQL Native
Select View: Syslog Fields
Table type: MonitorWare
Database Host: localhost
Database Name: Syslog
Database Tablename: systemevents
Database User: rsyslog
Database Password: Password
Enable Row Counting: Yes
Нажмите на кнопку "Next".
9 - Нажмите на кнопку "Finish!".
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
После проделанных действий, у вас появится окошко, где нужно будет произвести авторизацию. В нём укажите учетные данные, которые вы создали в шаге №7.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Если вы все сделали правильно, то после логирования у вас появится таблица с данными. Если же вы сделали что-то не так, то у вас после логирования появится ошибка.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
8) Подключить к rsyslog сетевое устройство.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На мой взгляд, нет ничего сложно при подключении сетевого устройства к rsyslog. Если вы используете Web-интерфейс(в моём случае коммутатор ZyXel), то вам нужно перейти по пути:
"Management" > "Syslog Setup". После того, как вы провалитесь во вкладку "Syslog Setup", вам будет нужно заполнить/выполнить настройку во всех строках.
Опираясь на сетевое оборудование ZyXel, заполняются следующие строки:
1 - Syslog Activation; (выставляется галочка для активации)
2 - Logging type; (выставляется галочка для активации)
3 - Выбирается уровень передачи логов; (для того, чтобы передовалась вся та информация, которая пишется в логах на сетевом устройстве, выбирайте 7 уровень)
4 - Прописывается IP-адрес Syslog-сервера и рядом выставляется уровень логирования (всегда выбирайте "local use 0-7").
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Вкратце об уровнях логирования(относится ко всем коммутаторам):
0 Emergencies Система не работоспособна
1 Alerts Необходимо срочное вмешательство
2 Critical Критические события
3 Errors Сообщения о ошибках
4 Warning Всевозможные предупреждения
5 Notifications Различные важные уведомления
6 Informational Информационные сообшения
7 Debugging Отладочые сообщения
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9) LogAnalyzer чистка базы данных.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cd /var/www/html/loganalyzer/cron/ |#|#| Команда для перехода в нужный каталог
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
php ./maintenance.php cleandata 1 olderthan 86400 |#|#| Команда для удаления старых записей старше 86400 сек (24 часов)
3600 - 1 час
86400 - 24 часа
864000 - 10дней
2592000 - 30 дней
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Если вам критично, то можете сделать скрипт для чистки базы данных LogAnalyzer-@ и добавить его в автовыполнение в планировщик задач Cron.
Скрипт будет выглядеть следующим образом:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
cd /var/www/html/loganalyzer/cron/
php ./maintenance.php cleandata 1 olderthan 86400
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
На этом интрукция завершена! Спасибо за внимание!)