Я создаю крошечную систему для анализа журналов и не могу установить дополнительный агент, поэтому использую уже работающий rsyslog для отправки журналов в elasticsearch.
Мои rsyslog и elasticsearch - это отдельные виртуальные машины. Эти виртуальные машины имеют одну общую сеть: 10.8.4.0/24.
На сервере rsyslog установлен файл rsyslog-elasticsearch.x86_64, который настроен на получение журналов ошибок со всех серверов во всей инфраструктуре.
Мой ElasticSearch работает на localhost: 9200, я настроил nginx в качестве прокси для него.
вот мои конфиги:
[root@all-logs rsyslog.d]# cat 00-Send2Elastic.conf
module(load="omelasticsearch")
template(name="testTemplate"
type="list"
option.json="on") {
constant(value="{")
constant(value="\"timestamp\":\"") property(name="timereported" dateFormat="rfc3339")
constant(value="\",\"message\":\"") property(name="msg")
constant(value="\",\"host\":\"") property(name="hostname")
constant(value="\",\"severity\":\"") property(name="syslogseverity-text")
constant(value="\",\"facility\":\"") property(name="syslogfacility-text")
constant(value="\",\"syslogtag\":\"") property(name="syslogtag")
constant(value="\"}")
}
action(type="omelasticsearch"
server="10.8.4.21"
serverport="29200"
template="testTemplate"
searchIndex="test-index"
searchType="test-type"
bulkmode="on"
maxbytes="100m"
queue.type="linkedlist"
queue.size="5000"
queue.dequeuebatchsize="300"
action.resumeretrycount="-1")
# http://www.rsyslog.com/doc/v8-stable/configuration/modules/omelasticsearch.html
# https://sematext.com/blog/recipe-rsyslog-elasticsearch-kibana/
И Nginx:
[root@test-elk centos]# cat /etc/nginx/conf.d/elastic.conf
server {
listen 10.8.4.21:29200;
server_name elastic.host;
allow 10.8.4.0/24;
deny all;
location / {
proxy_pass http://localhost:9200;
# proxy_http_version 1.1;
# proxy_set_header Upgrade $http_upgrade;
# proxy_set_header Connection 'upgrade';
# proxy_set_header Host $host;
# proxy_cache_bypass $http_upgrade;
}
}
Все остальное вроде не имеет проблем: small_smile: на первый взгляд.
Журнал ошибок из rsyslogd -nd: https://pastebin.com/YDrTi2q5
строка ошибки:
0478.493507244:action 0 queue:Reg/w0: omelasticsearch: pWrkrData reply: '{"error":"Content-Type header [text/json; charset=utf-8] is not supported","status":406}'
сделали обновление до 8.33.1-2 из репозитория rsyslog.com, и все работает отлично!