Yes, the HOSTNAME field of the log record should contain the fully
qualified domain name (i.e. the host name followed by the domain name).
See Section 6.2.4 in RFC 5424 where the HOSTNAME field is described.
I agree that it could be confusing if the host name and the node name
differ, but ideally they should not. The host name is what you see in
other situations as well, for example you often put the host name in the
shell prompt that you see when you log in to the node via SSH. I would
anyhow recommend to configure host name and node name with the same value.
regards,
Anders Widell
On 02/20/2017 07:17 AM, A V Mahesh wrote:
> Hi Anders Widell,
>
> I see an issue with the way the MW Node name presented in MDS log
> with this patch , I did configured CLM/AMF name
> as below ( NON SC_1 & SC-2 ) , but the mds log is considering linux
> name , either we have to use CLM name or AMF name in MDS log
>
> =================================================================================================
>
>
>
> # cat /usr/share/opensaf/immxml/nodes.cfg
> SC fm1 PL-0
> SC fm2 PL-1
> PL PL-3 PL-3
> PL PL-4 PL-4
>
> # cat /etc/opensaf/node_name
> PL-0
>
> # cat /etc/opensaf/node_name
> PL-1
>
> # /etc/init.d/opensafd status
> safSISU=safSu=fm1\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed1,safApp=OpenSAF
>
> saAmfSISUHAState=ACTIVE(1)
> safSISU=safSu=fm2\,safSg=NoRed\,safApp=OpenSAF,safSi=NoRed2,safApp=OpenSAF
>
> saAmfSISUHAState=ACTIVE(1)
> safSISU=safSu=fm1\,safSg=2N\,safApp=OpenSAF,safSi=SC-2N,safApp=OpenSAF
> saAmfSISUHAState=ACTIVE(1)
> safSISU=safSu=fm2\,safSg=2N\,safApp=OpenSAF,safSi=SC-2N,safApp=OpenSAF
> saAmfSISUHAState=STANDBY(2)
>
>
> <141>1 2017-02-20T11:38:14.881123+05:30 SC-1 osafclmna 26474 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:14.954587+05:30 SC-1 osafrded 26483 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:15.029386+05:30 SC-1 osaffmd 26492 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:15.099421+05:30 SC-1 osafimmd 26502 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
>
> <141>1 2017-02-20T11:38:30.60291+05:30 SC-2 osafclmna 6196 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:30.667317+05:30 SC-2 osafrded 6205 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:30.739622+05:30 SC-2 osaffmd 6214 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
> <141>1 2017-02-20T11:38:30.807048+05:30 SC-2 osafimmd 6224 mds.log
> [meta sequenceId="1"] BEGIN MDS LOGGING| ARCHW=a|64bit=1
>
> =================================================================================================
>
>
>
> -AVM
>
>
> On 2/17/2017 3:03 PM, Anders Widell wrote:
>> src/mds/mds_log.cc | 39 ++++++++++++++++++---------------------
>> 1 files changed, 18 insertions(+), 21 deletions(-)
>>
>>
>> The HOSTNAME field of the log messages should contain the FQDN of the
>> originator. Use the newly introduced Conf class in the base component
>> to read
>> the FQDN.
>>
>> diff --git a/src/mds/mds_log.cc b/src/mds/mds_log.cc
>> --- a/src/mds/mds_log.cc
>> +++ b/src/mds/mds_log.cc
>> @@ -1,6 +1,7 @@
>> /* -*- OpenSAF -*-
>> *
>> * (C) Copyright 2008 The OpenSAF Foundation
>> + * Copyright Ericsson AB 2017 - All Rights Reserved.
>> *
>> * This program is distributed in the hope that it will be useful, but
>> * WITHOUT ANY WARRANTY; without even the implied warranty of
>> MERCHANTABILITY
>> @@ -32,6 +33,7 @@
>> #include <cstring>
>> #include <string>
>> #include "base/buffer.h"
>> +#include "base/conf.h"
>> #include "base/log_message.h"
>> #include "base/macros.h"
>> #include "base/mutex.h"
>> @@ -50,17 +52,18 @@ class MdsLog {
>> va_list ap);
>> private:
>> - MdsLog(const char* host_name, const char* app_name,
>> - uint32_t proc_id, const char* socket_name);
>> + MdsLog(const std::string& fqdn, const char* app_name,
>> + uint32_t proc_id, const char* socket_name);
>> void LogInternal(base::LogMessage::Severity severity, const char
>> *fmt,
>> va_list ap);
>> static constexpr const uint32_t kMaxSequenceId =
>> uint32_t{0x7fffffff};
>> static MdsLog* instance_;
>> - const base::LogMessage::HostName host_name_;
>> + const base::LogMessage::HostName fqdn_;
>> const base::LogMessage::AppName app_name_;
>> const base::LogMessage::ProcId proc_id_;
>> uint32_t sequence_id_;
>> base::UnixClientSocket log_socket_;
>> + base::Buffer<512> buffer_;
>> base::Mutex mutex_;
>> DELETE_COPY_AND_MOVE_OPERATORS(MdsLog);
>> @@ -69,13 +72,14 @@ class MdsLog {
>> int gl_mds_log_level = 3;
>> MdsLog* MdsLog::instance_ = nullptr;
>> -MdsLog::MdsLog(const char* host_name, const char* app_name,
>> - uint32_t proc_id, const char* socket_name) :
>> - host_name_{base::LogMessage::HostName{host_name}},
>> +MdsLog::MdsLog(const std::string& fqdn, const char* app_name,
>> + uint32_t proc_id, const char* socket_name) :
>> + fqdn_{base::LogMessage::HostName{fqdn}},
>> app_name_{base::LogMessage::AppName{app_name}},
>> proc_id_{base::LogMessage::ProcId{std::to_string(proc_id)}},
>> sequence_id_{1},
>> log_socket_{socket_name},
>> + buffer_{},
>> mutex_{} {
>> }
>> @@ -86,12 +90,10 @@ MdsLog::MdsLog(const char* host_name, co
>> bool MdsLog::Init() {
>> if (instance_ != nullptr) return false;
>> char app_name[MDS_MAX_PROCESS_NAME_LEN];
>> - char node_name[256];
>> char pid_path[1024];
>> uint32_t process_id = getpid();
>> char *token, *saveptr;
>> char *pid_name = nullptr;
>> - const char *node_name_file = PKGSYSCONFDIR "/node_name";
>> snprintf(pid_path, sizeof(pid_path), "/proc/%" PRIu32
>> "/cmdline", process_id);
>> FILE* f = fopen(pid_path, "r");
>> @@ -114,14 +116,9 @@ bool MdsLog::Init() {
>> if (snprintf(app_name, sizeof(app_name), "%s", pid_name) < 0) {
>> app_name[0] = '\0';
>> }
>> - FILE* fp = fopen(node_name_file, "r");
>> - if (fp != nullptr) {
>> - if (fscanf(fp, "%255s", node_name) != 1) node_name[0] = '\0';
>> - fclose(fp);
>> - } else {
>> - node_name[0] = '\0';
>> - }
>> - instance_ = new MdsLog{node_name, app_name, process_id,
>> + base::Conf::InitFullyQualifiedDomainName();
>> + const std::string& fqdn = base::Conf::FullyQualifiedDomainName();
>> + instance_ = new MdsLog{fqdn, app_name, process_id,
>> PKGLOCALSTATEDIR "/mds_log.sock"};
>> return instance_ != nullptr;
>> }
>> @@ -136,22 +133,22 @@ void MdsLog::LogInternal(base::LogMessag
>> base::Lock lock(mutex_);
>> uint32_t id = sequence_id_;
>> sequence_id_ = id < kMaxSequenceId ? id + 1 : 1;
>> - base::Buffer<256> buffer;
>> + buffer_.clear();
>> base::LogMessage::Write(base::LogMessage::Facility::kLocal1,
>> severity,
>> base::ReadRealtimeClock(),
>> - host_name_,
>> + fqdn_,
>> app_name_,
>> proc_id_,
>> - base::LogMessage::MsgId{""},
>> + base::LogMessage::MsgId{"mds.log"},
>> {{base::LogMessage::SdName{"meta"},
>> {base::LogMessage::Parameter{
>> base::LogMessage::SdName{"sequenceId"},
>> std::to_string(id)}}}},
>> fmt,
>> ap,
>> - &buffer);
>> - log_socket_.Send(buffer.data(), buffer.size());
>> + &buffer_);
>> + log_socket_.Send(buffer_.data(), buffer_.size());
>> }
>> /*******************************************************************************
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel