Hi,
performance seems to be good with elastic search
2 minutes and change for 5 lakh entries
However, i have a problem.
I can enter the messages into elasticsearch only when rsyslogd is running
in foreground (rsyslogd -n running in command line)
not sure why this is so.
Secondly, my requirement would be to query based on part of message.
i.e my message may look like
<date><time>ip=x.x.x.x name=abcd loglevel=3 <actual log message>
Is it possible to query using curl alll messages that have ip address as
y.y.y.y ?
Is 4000 (500000 entries / 125 odd seconds) the max I can get per second in
my system or can I get some more tuning parameters.
My rsyslog.conf has the following lines
------------------------------------------------------------
$ActionQueueDequeueBatchSize 1000
template (name="apsimTemplate" type="list" option.json="on") {
constant(value="{")
constant(value="\"@message\":\"")
property(name="msg")
constant(value="\"}")
}
*.* action(type="omelasticsearch" template="apsimTemplate"
server="localhost" serverport="9200")
My elasticsearch.yml has folliwing lines
------------------------------------------------------------
cluster:
name: APSIM
network:
host: localhost
root@localhost rsyslog]# date; ./a.out ; date
Mon Jun 17 23:33:29 IST 2013
openlog: Success
Mon Jun 17 23:35:32 IST 2013
[root@localhost rsyslog]#
[root@localhost rsyslog]# curl 'http://localhost:9200/_search?pretty=true'
-d '
{
"from" : 0, "size" : 1000000,
"query" : {
"matchAll" : {}
}
}' > e
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 1688k 100 1688k 0 86 19.1M 998 --:--:-- --:--:-- --:--:--
19.6M
[root@localhost rsyslog]# cat e | grep "this is a test" | wc -l
500000
[root@localhost rsyslog]#
void main()
{
int i = 0;
char * string = "{\n \"name\":\"joys of programming\" \n }";
setlogmask (LOG_UPTO (LOG_NOTICE));
openlog ("exampleprog", LOG_PID | LOG_NDELAY, LOG_DAEMON);
perror("openlog");
for(i = 0; i < 500000; i++) {
syslog (LOG_NOTICE, "this is a test %d", i);
}
closelog ();
}
On Tue, Jun 18, 2013 at 5:38 PM, Mahesh V <[email protected]>wrote:
> sorry.
>
> got the answer from
> http://www.elasticsearch.org/guide/reference/api/search/from-size/
>
>
>
>
> On Tue, Jun 18, 2013 at 5:33 PM, Mahesh V
> <[email protected]>wrote:
>
>> Hi
>>
>> I changed the elasticsearch.yml with following lines
>>
>> cluster:
>>
>> name: APSIM
>>
>> network:
>> host: localhost
>>
>>
>> and i ran the rsyslogd in foreground with debug enabled.
>>
>> and with this program
>>
>>
>> void main()
>> {
>> int i = 0;
>> char * string = "{\n \"name\":\"joys of programming\" \n }";
>>
>> setlogmask (LOG_UPTO (LOG_NOTICE));
>>
>> openlog ("exampleprog", LOG_PID | LOG_NDELAY, LOG_DAEMON);
>> perror("openlog");
>>
>> for(i = 0; i < 50; i++) {
>> syslog (LOG_NOTICE, "this is a test %d", i);
>>
>> //usleep(200);
>> }
>> closelog ();
>> }
>>
>>
>> I got only some lines registered in the log. I should have had 50 of such
>> lines but could get only so much.
>> Any ideas on what could be wrong?
>>
>> [root@localhost rsyslog]# curl '
>> http://localhost:9200/_search?pretty=1&q=*:*'
>> {
>> "took" : 2,
>> "timed_out" : false,
>> "_shards" : {
>> "total" : 5,
>> "successful" : 5,
>> "failed" : 0
>> },
>> "hits" : {
>> "total" : 108,
>> "max_score" : 1.0,
>> "hits" : [ {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "ZM-HY3IGRLaW7X_BlhN-Vw",
>> "_score" : 1.0, "_source" : {"@message":" [origin
>> software=\"rsyslogd\" swVersion=\"7.4.0\" x-pid=\"16988\" x-info=\"
>> http://www.rsyslog.com\"] start"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "J-EqhZMBSw64Lts2SKD-yg",
>> "_score" : 1.0, "_source" : {"@message":"type=1400
>> audit(1371489908.934:42327): avc: denied { name_connect } for pid=16877
>> comm=72733A6D61696E20513A526567 dest=9200
>> scontext=unconfined_u:system_r:syslogd_t:s0
>> tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "jK6sFd-CTO-0llfj_zp_zw",
>> "_score" : 1.0, "_source" : {"@message":"type=1400
>> audit(1371489908.934:42328): avc: denied { name_connect } for pid=16877
>> comm=72733A6D61696E20513A526567 dest=9200
>> scontext=unconfined_u:system_r:syslogd_t:s0
>> tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "QyMvKocsTXWYNdusOAuUQA",
>> "_score" : 1.0, "_source" : {"@message":"type=1400
>> audit(1371489955.439:42329): avc: denied { write } for pid=17022
>> comm=\"sshd\" name=\"log\" dev=devtmpfs ino=51770750
>> scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023
>> tcontext=unconfined_u:object_r:device_t:s0 tclass=sock_file"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "8UvsmtlpTu22him_rKN6bw",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 2"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "yA7VpDWmQIWOJLty_F9DEw",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 11"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "eJGdab4NRTGeuWJfIAFa3A",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 15"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "1vOyvn67SwmSPsZqU29rEQ",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 27"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "EKZAVd20TE6rPpoiHTooHQ",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 38"}
>> }, {
>>
>> "_index" : "system",
>> "_type" : "events",
>> "_id" : "cp460Z1QRsa4etFxrJWilA",
>> "_score" : 1.0, "_source" : {"@message":" this is a test 41"}
>> } ]
>> }
>> }[root@localhost rsyslog]#
>>
>>
>>
>> On Tue, Jun 18, 2013 at 4:46 PM, Mahesh V <[email protected]
>> > wrote:
>>
>>> Hello Radu,
>>>
>>> None of the above worked.
>>> elasticsearch.yml is blank for me. (all lines are commented).
>>>
>>> logging.yml had the following lines
>>>
>>> rootLogger: INFO, file
>>> logger:
>>> # log action execution errors for easier debugging
>>> action: DEBUG
>>> # reduce the logging for aws, too much is logged under the default INFO
>>> com.amazonaws: WARN
>>>
>>>
>>> # gateway
>>> #gateway: DEBUG
>>> #index.gateway: DEBUG
>>>
>>> # peer shard recovery
>>> #index.shard.recovery: DEBUG
>>>
>>> # discovery
>>> #discovery: TRACE
>>>
>>> appender:
>>> console:
>>> type: console
>>> layout:
>>> type: consolePattern
>>> conversionPattern: "[%d{ABSOLUTE}][%-5p][%-25c] %m%n"
>>>
>>> syslog:
>>> type: syslog
>>> syslogrHost: localhost:514
>>> facility: LOCAL6
>>> layout:
>>> type: pattern
>>> conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
>>>
>>> rootLogger: INFO, file
>>> logger:
>>> # log action execution errors for easier debugging
>>> action: DEBUG
>>> # reduce the logging for aws, too much is logged under the default INFO
>>> com.amazonaws: WARN
>>>
>>>
>>> # gateway
>>> #gateway: DEBUG
>>> #index.gateway: DEBUG
>>>
>>> # peer shard recovery
>>> #index.shard.recovery: DEBUG
>>>
>>> # discovery
>>> #discovery: TRACE
>>>
>>> appender:
>>> console:
>>> type: console
>>> layout:
>>> type: consolePattern
>>> conversionPattern: "[%d{ABSOLUTE}][%-5p][%-25c] %m%n"
>>>
>>> syslog:
>>> type: syslog
>>> syslogrHost: localhost:514
>>> facility: LOCAL6
>>> layout:
>>> type: pattern
>>> conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
>>>
>>>
>>>
>>> The entries are in rsyslog.conf are
>>>
>>>
>>> template (name="apsimTemplate" type="list" option.json="on") {
>>> constant(value="{")
>>> constant(value="\"@message\":\"")
>>> property(name="msg")
>>> constant(value="\"}")
>>> }
>>>
>>> *.* action(type="omelasticsearch" template="apsimTemplate"
>>> server="localhost" serverport="9200")
>>>
>>>
>>>
>>>
>>> Thanks
>>> Mahesh
>>>
>>>
>>> On Tue, Jun 18, 2013 at 4:10 PM, Radu Gheorghe
>>> <[email protected]>wrote:
>>>
>>>> Interesting. The log is there, so it's just about getting it. The
>>>> correct
>>>> command to search for everything would be:
>>>>
>>>> curl 'http://localhost:9200/_search?pretty=1&q=*:*'
>>>>
>>>> Note the quotes around the URI - they're needed because the & sign will
>>>> fork the thing to background and ignore the rest. But it should still
>>>> work
>>>> only with the first part:
>>>>
>>>> curl http://localhost:9200/_search?pretty
>>>>
>>>> You can also try Elasticsearch
>>>> Head<https://github.com/mobz/elasticsearch-head>to see what's
>>>> happening. If logs don't show with curl, try refreshing first:
>>>> curl localhost:9200/_refresh
>>>>
>>>> If you still got issues, please post your elasticsearch.yml and tell
>>>> what's
>>>> your ES version.
>>>>
>>>> 2013/6/18 Mahesh V <[email protected]>
>>>>
>>>> > Hi
>>>> > I see the following when running rsyslogd -nd (debug mode)
>>>> >
>>>> > 359.892976482:7f9f631cf700: omelasticsearch: result doAction: 0
>>>> (bulkmode
>>>> > 0)
>>>> > 1359.892983879:7f9f631cf700: Action 0x7f9f6b748300 transitioned to
>>>> state:
>>>> > rdy
>>>> > 1359.892990396:7f9f631cf700: action 0x7f9f6b748300 call returned 0
>>>> > 1359.892995969:7f9f631cf700: omelasticsearch: beginTransaction
>>>> > 1359.893001589:7f9f631cf700: Action 0x7f9f6b748300 transitioned to
>>>> state:
>>>> > itx
>>>> > 1359.893007132:7f9f631cf700: entering actionCalldoAction(), state: itx
>>>> > 1359.894200154:7f9f631cf700: omelasticsearch: es reply:
>>>> >
>>>> >
>>>> '{"ok":true,"_index":"system","_type":"events","_id":"r2M4dw28QYGr-FuacMQ-SA","_version":1}'
>>>> >
>>>> > which means the insert has happened.
>>>> >
>>>> > but when I run
>>>> > curl http://localhost:9200/_search?pretty=1&q=*.*
>>>> >
>>>> > I dont see the message.
>>>> >
>>>> > /var/log/elasticsearch/elasticsearch.log has nothing as well.
>>>> >
>>>> > Where does the message go?
>>>> >
>>>> > thanks
>>>> > Mahesh
>>>> >
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > On Tue, Jun 18, 2013 at 2:21 PM, Radu Gheorghe <
>>>> [email protected]
>>>> > >wrote:
>>>> >
>>>> > > Hi Mahesh,
>>>> > >
>>>> > > Your template is suppose to output a valid JSON. Your message can be
>>>> > > whatever you want (JSON or not). Here's a reference:
>>>> > >
>>>> > >
>>>> >
>>>> http://blog.sematext.com/2013/05/28/structured-logging-with-rsyslog-and-elasticsearch/
>>>> > >
>>>> > > A valid template would be this one:
>>>> > > template (name="apsimTemplate" type="list" option.json="on") {
>>>> > > constant(value="{")
>>>> > > constant(value="\"@message\":\"")
>>>> > > property(name="msg")
>>>> > > constant(value="\"}")
>>>> > > }
>>>> > >
>>>> > >
>>>> > > Which differs only a bit from the one you pasted, which had an extra
>>>> > quote
>>>> > > and comma before @message:
>>>> > > constant(value="\",\"@message\":\"") instead of
>>>> > > constant(value="\"@message\":\"")
>>>> > >
>>>> > > Best regards,
>>>> > > Radu
>>>> > >
>>>> > > 2013/6/18 Mahesh V <[email protected]>
>>>> > >
>>>> > > > Hello,
>>>> > > >
>>>> > > > i would like to know how to format the rsyslog message in the
>>>> client
>>>> > > > programs to get it parsed by json to be entered
>>>> > > > in elasticsearch.
>>>> > > >
>>>> > > > My rsyslog.conf has the following entries
>>>> > > >
>>>> > > > template (name="apsimTemplate" type="list" option.json="on") {
>>>> > > > constant(value="{") constant(value="\",\"@message\":\"")
>>>> > > > property(name="msg") constant(value="\"}") }
>>>> > > >
>>>> > > > *.* action(type="omelasticsearch" template="apsimTemplate" )
>>>> > > >
>>>> > > >
>>>> > > > and I use syslog with the formatted message as shown here : syslog
>>>> > > > (LOG_NOTICE, "{ \"@message\":\"A tree falls in a forest %d\" }",
>>>> i);
>>>> > > >
>>>> > > > But the entries do not show up in elasticsearch.log
>>>> > > >
>>>> > > > what am I missing?
>>>> > > >
>>>> > > > thanks
>>>> > > > Mahesh
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > > >
>>>> > > > On Mon, Jun 17, 2013 at 7:16 PM, Mahesh V <
>>>> > > [email protected]
>>>> > > > >wrote:
>>>> > > >
>>>> > > > > Hello Folks,
>>>> > > > >
>>>> > > > > if I put the below two lines in rsyslog.conf and run a simple
>>>> > > executable
>>>> > > > > as shown
>>>> > > > > below I do not get any entries in elasticsearch logs.
>>>> > > > >
>>>> > > > > void main()
>>>> > > > > {
>>>> > > > > int i = 0;
>>>> > > > > setlogmask (LOG_UPTO (LOG_NOTICE));
>>>> > > > > openlog ("exampleprog", LOG_PID | LOG_NDELAY,
>>>> LOG_DAEMON);
>>>> > > > > perror("openlog");
>>>> > > > > for(i = 0; i < 500000; i++) {
>>>> > > > > //syslog (LOG_NOTICE, "A tree falls in a forest
>>>> %d",
>>>> > > i);
>>>> > > > > syslog (LOG_NOTICE, "{ \"@message\":\"A tree
>>>> falls
>>>> > in a
>>>> > > > > forest %d\" }", i);
>>>> > > > > //usleep(200);
>>>> > > > > }
>>>> > > > > closelog ();
>>>> > > > > }
>>>> > > > > template (name="apsimTemplate" type="list" option.json="on") {
>>>> > > > > constant(value="{") constant(value="\",\"@message\":\"")
>>>> > > > > property(name="msg") constant(value="\"}") }
>>>> > > > >
>>>> > > > > *.* action(type="omelasticsearch" template="apsimTemplate" ) #
>>>> > > > > searchIndex="srchidx")
>>>> > > > >
>>>> > > > >
>>>> > > > > whereas if I put the below line in /etc/rsyslog.conf, the lines
>>>> > appear.
>>>> > > > > jasonlint validates the line in syslog function.
>>>> > > > >
>>>> > > > > *.* /var/log/elasticsearch/elasticsearch.log
>>>> > > > > What could be the issue?
>>>> > > > > thanks
>>>> > > > > Mahesh
>>>> > > > >
>>>> > > > _______________________________________________
>>>> > > > rsyslog mailing list
>>>> > > > http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>> > > > http://www.rsyslog.com/professional-services/
>>>> > > > What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>> > > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>> > myriad
>>>> > > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST
>>>> if you
>>>> > > > DON'T LIKE THAT.
>>>> > > >
>>>> > > _______________________________________________
>>>> > > rsyslog mailing list
>>>> > > http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>> > > http://www.rsyslog.com/professional-services/
>>>> > > What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>> > > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>> myriad
>>>> > > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if
>>>> you
>>>> > > DON'T LIKE THAT.
>>>> > >
>>>> > _______________________________________________
>>>> > rsyslog mailing list
>>>> > http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>> > http://www.rsyslog.com/professional-services/
>>>> > What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>> > NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>> myriad
>>>> > of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
>>>> > DON'T LIKE THAT.
>>>> >
>>>> _______________________________________________
>>>> rsyslog mailing list
>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>> http://www.rsyslog.com/professional-services/
>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>> myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if
>>>> you DON'T LIKE THAT.
>>>>
>>>
>>>
>>
>
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE
THAT.