-
Notifications
You must be signed in to change notification settings - Fork 240
Technical FAQs
Some technical questions about Centreon
- Generate a core dump during a segfault
- Generate a core dump manually
- Generate more logs for Centreon Broker
Go to the page Administration > About and you should get the version of Centreon Web UI and also the commit of the build
This following procedure describes how to configure coredumpctl to retrieve core dumps if a segfault happens.
Before retrieving a core dump, you must configure the system for it to generate core dumps at segfault.
-
Install gdb
yum install devtoolset-9-gdb ln -s /opt/rh/devtoolset-9/root/usr/bin/{gdb,gcore,gdb-add-index,gstack,pstack} /usr/bin/
yum install gdb
or
apt install gdb
-
Uncomment "DumpCore=yes" in "/etc/systemd/system.conf"
-
Replace "DefaultLimitCORE=" by "DefaultLimitCORE=infinity" in "/etc/systemd/system.conf"
-
Add these lines in "/etc/sysctl.conf":
kernel.core_pattern = |/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e fs.suid_dumpable=2
-
Add "LimitCORE=infinity" in "/usr/lib/systemd/system/cbd.service" just after the line "User"
-
Add "LimitCORE=infinity" in "/usr/lib/systemd/system/centengine.service" just after the line "User"
-
Restart systemd to commit the changes:
sysctl -p systemctl daemon-reexec
After activating core dumps generation, you must wait for a segfault to occur. You will see them in the system's log "/var/log/messages".
- List the core dumps:
coredumpctl list
- Retrieve the core dump
coredumpctl -o <filename.core> dump /usr/sbin/centengine
This command will store the last coredump of /usr/sbin/centengine
to a file named filename.core
.
You can do the same with /usr/sbin/cbd
.
Sometimes, it can be interesting to generate a coredump manually. For example if centreon-engine looks blocked but not crashed.
The procedure for that is to install gdb on the server:
yum install devtoolset-9-gdb
source /opt/rh/devtoolset-9/enable
yum install gdb
or
apt install gdb
Then the generation is made in two steps:
-
get the PID of the program you want a coredump ; here is an example with centengine:
ps ax | grep centengine 2272 ? Ssl 33:43 /usr/sbin/centengine /etc/centreon-engine/centengine.cfg
-
generate the coredump:
gcore 2272
where 2272 is the PID you get at the step 1.
In the current directory, you should find a new file
core.2272
that is the coredump.
Warning All this section works for centreon-broker versions between 20.04 and 20.10. Since centreon-21.04, those new logs can be configured directly from the Centreon WUI.
Since centreon-broker 20.04, we have new logs, more accurate than our old logs. In centreon-broker 21.04, they are configurable directly in the WUI, but before you needed to configure a file, here is how to fill it.
You can add a file named "/etc/centreon-broker/log-config.json" containing this:
{
"console": false,
"log_path": "/tmp",
"loggers": [
{
"name": "sql",
"level": "warn"
}
]
}
Be careful, if the console label is set to true, this also enables cbmod
logs to be written on the console. This can make conflicts with
centengine
, because they both use the stdout
stream. So unless you know what you are doing set console to false.
You have choice between several loggers:
- core
- sql
- bbdo
- tcp
- tls
- lua
- perfdata
- bam
For the level, from the higher level to the lower, you have:
- trace
- debug
- info
- warn
- err
- critical
- off
Here is more complete example of the log-config.json file:
{
"console": false,
"log_path": "/tmp",
"loggers": [
{
"name": "sql",
"level": "debug"
},
{
"name": "bbdo",
"level": "warn"
},
{
"name": "perfdata",
"level": "err"
}
]
}
You will then find a log named after the Broker's name into the "/tmp" directory.