Commit Graph

5348 Commits

Author SHA1 Message Date
Michael Friedrich fdb13d1b7d TlsUtility: Replace deprecated OpenSSL function with ASN1_STRING_get0_data() 2020-02-21 13:02:58 +01:00
Michael Friedrich 456b0779bb JsonRpcConnection PKI: Document swalled exception 2020-02-20 15:15:54 +01:00
Michael Friedrich 12b6c1aab9 CLI: Improve error handling for 'pki verify' command 2020-02-20 15:10:57 +01:00
Alexander A. Klimov 0f84ce0470 Consider a JsonRpcConnection being seen on a single byte of TLS payload, not only a whole message 2020-02-19 11:11:53 +01:00
Alexander A. Klimov b65aed1dd3 IoEngine#SpawnCoroutine(): always terminate coroutines cleanly 2020-02-19 10:51:26 +01:00
Michael Friedrich e4e26d66a6 Build fix 2020-02-17 18:40:28 +01:00
Michael Friedrich 6f263a4922 Add `pki verify` CLI command: print, signed by CA, valid CA, CN match 2020-02-17 18:10:51 +01:00
Michael Friedrich a91b9f2ddf Pki: Extend GetCertificateInformation() with version, serial, signature algorithm, SANs 2020-02-17 17:44:10 +01:00
Michael Friedrich 24397fbee8 CA Proxy: Catch exceptions from VerifyCertificate() 2020-02-17 17:43:11 +01:00
Michael Friedrich 548eb933c9 TlsUtility: Add getters for version, signature algorithm, SANs 2020-02-17 17:42:20 +01:00
Henrik Triem 099cc5d8df
Merge pull request #7833 from Icinga/feature/version-build-info-openssl
CLI: Add OpenSSL version to 'Build' section in --version
2020-02-17 17:07:51 +01:00
Alexander A. Klimov fbce756007 JsonRpcConnection#Send*Message(): keep this alive 2020-02-17 16:12:07 +01:00
Michael Friedrich cfd9b80027
Merge pull request #7838 from Icinga/bugfix/catch-exception-in-node-setup
Catch exception when trusted cert is not readable during node setup on agent/satellite
2020-02-14 09:51:17 +01:00
Michael Friedrich 71c7eebe4e CLI: Add OpenSSL version to 'Build' section in --version
This helps to see against which OpenSSL version Icinga was built.
Inspired by #5572
2020-02-14 08:55:39 +01:00
Michael Insel e4f25269fe
Fix Build
I have no idea how this got lost.
2020-02-14 07:56:23 +01:00
Michael Insel 90ac6cd9a1 CLI: Catch exception when trusted cert is not readable
This catches an exception when the trusted cert is not readable during
node setup.
2020-02-13 20:03:17 +01:00
Michael Friedrich 82e055bfb6 CLI: Clean up 'pki save-cert' command and remove deprecated params
This got obsoleted 4 years ago in a monster commit.
b297e8cfa7
2020-02-13 16:14:01 +01:00
Michael Friedrich e1557def94 CLI: Verify --trustedcert being a client, non CA certificate in 'node setup'
This commit also cleans some shell output with master vs. parent.
2020-02-13 16:09:16 +01:00
Michael Friedrich a7436394cd TlsUtility: Add IsCa() function to verify given certificate being a CA certificate 2020-02-13 16:03:43 +01:00
Michael Friedrich d53eb34520 Unify Application::GetStartTime() and drop GetMainTime()
This essentially moves the start time into the scope when main
starts to "do something", after the reload and configuration handling
is done.
2020-02-11 17:26:15 +01:00
Michael Friedrich 57facbddd5
Merge pull request #7697 from Icinga/bugfix/icingadb-compiler-warnings
IcingaDB: Fix enumeral mismatch compiler warnings
2020-02-11 17:22:28 +01:00
Michael Friedrich ae8a0b6a64 Introduce Application::GetUptime() 2020-02-11 16:47:50 +01:00
Michael Friedrich 3a4fb840d4 Tests: Add multi parent dependency test case 2020-02-11 15:13:25 +01:00
Michael Friedrich 9b0365ab43 Fix logical error with zero dependencies in IsReachable() 2020-02-11 15:13:25 +01:00
Henrik Triem d0c0beb8be Change behaviour of multiple dependencies (all failed = unreachable) 2020-02-11 15:13:25 +01:00
Michael Insel 5930d640e4 IcingaDB: Fix enumeral mismatch compiler warnings
This fixes 3 enumeral mismatch compiler warnings when building the
IcingaDB target.
2020-02-10 18:56:11 +01:00
Michael Friedrich 2f82047737
Merge pull request #7769 from Icinga/bugfix/m_lexbuffer
Make ConfigCompiler#m_LexBuffer a String
2020-02-10 16:27:42 +01:00
Michael Friedrich 04edda531c
Merge pull request #7788 from Icinga/bugfix/windows-timeout-unknown-state
Terminate windows check processes with UNKNOWN state on timeout
2020-02-10 15:34:28 +01:00
Michael Friedrich ccd354c16c
Merge pull request #7810 from Icinga/bugfix/spawncoroutine-copy
IoEngine#SpawnCoroutine(): don't copy parameter
2020-02-10 15:31:31 +01:00
Michael Friedrich d99f76bdae Merge pull request #7767 from Icinga/bugfix/replay-log-windows-rename
Ensure that log replay files are properly renamed on Windows
2020-02-10 11:42:25 +01:00
Michael Friedrich 8324970ab9
Merge pull request #7809 from Icinga/bugfix/handshake-timeout-7805
Close connections w/o sucessful TLS handshakes during 10s
2020-02-07 16:01:30 +01:00
Michael Friedrich 7488d2614b
Merge pull request #7811 from Icinga/bugfix/config-sync-log
Cluster config sync: Use a more friendly message when configs are equal and don't need a reload
2020-02-06 14:32:46 +01:00
Michael Friedrich bf2d6abfad
Merge pull request #7747 from Icinga/bugfix/heartbeat-unauthenticated-7746
Don't send event::Heartbeat to unauthenticated peers
2020-02-06 14:32:25 +01:00
Michael Friedrich f961370e36 ApiEvents: Fix AcknowledgementCleared code quality 2020-02-06 13:03:04 +01:00
Alexander A. Klimov 35c9f2e7b3 Close connections w/o sucessful TLS handshakes during 10s
refs #7805
2020-02-05 15:53:56 +01:00
Alexander A. Klimov 0ed0f73d9d IoEngine#SpawnCoroutine(): remove redundand overload 2020-02-05 15:31:57 +01:00
Michael Friedrich cdfc6e6f50 Cluster config sync: Use a more friendly message when configs are equal and don't need a reload
This also adds an entry to the troubleshooting docs.
2020-02-05 15:31:41 +01:00
Alexander A. Klimov d98493c90f IoEngine#SpawnCoroutine(): don't copy parameter 2020-02-05 15:30:03 +01:00
Noah Hilverling 572c912c96
Merge pull request #7804 from Icinga/bugfix/not-overdue-active-checks-disabled-7790
Checkable#next_update: ignore re-scheduled #next_check if !#enable_active_checks
2020-01-31 14:17:30 +01:00
Alexander Aleksandrovič Klimov 431e4f64c9
Merge pull request #7794 from Icinga/bugfix/icingadb-fix-last-update
IcingaDB: Fix last_update
2020-01-31 12:12:49 +01:00
Alexander A. Klimov 86bbb79869 Checkable#next_update: ignore re-scheduled #next_check if !#enable_active_checks
refs #7790
2020-01-31 11:49:47 +01:00
Noah Hilverling b77bc7b963 IcingaDB: Fix last_update 2020-01-29 14:43:29 +01:00
Michael Friedrich 5812dae55b Dev: Allow to delay main worker process in order to attach with LLDB
Introduce `-DInternal.DebugWorkerDelay=120` and sleep inside `RunWorker()`.

Rationale: With 2.11 we've introduced a real umbrella process where the
main process is spawned as child fork. Running icinga2 in foreground on
a macOS shell with LLDB will now exit, and not follow the child process.

LLDB doesn't support `follow-fork-mode child` like GDB and therefore we
need to:

- Print the child process PID
- Sleep for X seconds to allow the developer to run `lldb -p <PID>`, set breakpoints, etc.

This commit also documents all available debug build enabled internal constants.
2020-01-29 13:21:05 +01:00
Michael Insel d7dfa6f1df Terminate windows check processes with UNKNOWN state on timeout
On Windows this terminates checks that reached the timeout with the UNKNOWN
state instead the WARNING state.

Co-authored-by: araujorm <araujorm@users.noreply.github.com>
2020-01-27 21:43:01 +01:00
Michael Friedrich e1939368b2
Merge pull request #7765 from Icinga/bugfix/opentsdb-graphite-reconnect
Graphite/OpenTSDB: Ensure that Reconnect failure is detected
2020-01-27 14:32:26 +01:00
Alexander A. Klimov 530d84ae3b Make ConfigCompiler#m_LexBuffer a String
... to reduce malloc()s.
2020-01-21 13:38:59 +01:00
Michael Friedrich 0da46c1d4b Ensure that log replay files are properly renamed on Windows
rename() without _unlink() before doesn't work on Windows.
This commits also adds an error message which was swallowed
previously.
2020-01-20 11:41:43 +01:00
Michael Friedrich 3533ddd010 Graphite/OpenTSDB: Ensure that Reconnect failure is detected
fixes #7729
2020-01-18 17:09:09 +01:00
Noah Hilverling 0d28ef5abe IcingaDB::UpdateState: Check for Redis connection before calling FireAndForgetQuery() 2020-01-17 13:53:05 +01:00
Alexander Aleksandrovič Klimov f11cccf874
Merge pull request #7760 from Icinga/bugfix/icingadb-manually-rescheduling-a-check-does-not-update-next_update-and-next_check-7707
IcingaDB: Fix rescheduling a check not always updating state in Redis
2020-01-16 11:58:28 +01:00
Noah Hilverling cbe1c181a1 IcingaDB: Fix rescheduling check not always updating state in Redis
fixes #7707
2020-01-16 10:51:56 +01:00
Michael Friedrich 8f5375d2bb Use IoEngine::Spawn wrapper in RedisConnection class
This avoids multiple locations for `asio::spawn` calls.
2020-01-16 09:53:24 +01:00
Alexander A. Klimov 3d841d5f64 Don't send event::Heartbeat to unauthenticated peers
refs #7746
2020-01-13 11:21:38 +01:00
Eric Lippmann cb21086d6c
Merge pull request #7737 from Icinga/bugfix/revert-notification-result
Revert NotificationResult
2020-01-09 10:06:39 +01:00
Noah Hilverling 6575ce920e
Merge pull request #7721 from Icinga/bugfix/icingadb-pending
IcingaDB: suppress state sync until config sync finished
2020-01-08 17:30:22 +01:00
Stuart Henderson 6744b1af54 cope with OS which don't fill in si_pid in siginfo
Icinga processes check si_pid on IPC signals to ensure that the signal
comes from an expected process. OpenBSD doesn't currently fill in si_pid
in siginfo (leaving it 0) so signals never pass this check, resulting
in startup failing to complete (the worker doesn't see the umbrella's
signal and vice-versa) - issue #7505.

Relax the requirement so that either 0 or the wanted pid is accepted.
2020-01-07 22:08:38 +00:00
Noah Hilverling 275ab08303 IcingaDB - Runtime updates: Use one pub/sub channel per config object type 2020-01-07 16:40:29 +01:00
Michael Friedrich 7e1e8b3393 Revert "Add NotificationResult class"
This reverts commit 9621fd2e4b.
2020-01-07 14:26:09 +01:00
Michael Friedrich 3605076f8b Revert "Add OnNewNotificationResult signal and ProcessNotificationResult handler"
This reverts commit ac483f2a8a.
2020-01-07 14:26:07 +01:00
Michael Friedrich 152709071d Revert "Implement last_notification_result handling for Notification objects"
This reverts commit 1706b297a5.
2020-01-07 14:21:06 +01:00
Michael Friedrich d242b41704 Revert "Make NotificationResult available for events: Cluster and Features"
This reverts commit 566e59bbfa.
2020-01-07 14:20:59 +01:00
Michael Friedrich 55e13fd001 Revert "Fix license headers"
This reverts commit 48b3d25ce2.
2020-01-07 14:20:45 +01:00
Alexander A. Klimov f6f7d9b635 IcingaDB: suppress state sync until config sync finished 2019-12-18 13:41:56 +01:00
Michael Friedrich 387c2c8b79
Merge pull request #7717 from Icinga/bugfix/redisconnection-shared_ptr
RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr
2019-12-18 13:32:16 +01:00
Michael Friedrich cbbff6b37d
Merge pull request #7716 from Icinga/bugfix/redisconnection-long-logs
RedisConnection: shorten log messages
2019-12-18 13:31:51 +01:00
Alexander A. Klimov de5b3eb2c7 RedisConnection: replace std::shared_ptr<T> with Shared<T>::Ptr 2019-12-17 12:13:30 +01:00
Alexander A. Klimov 955b612703 RedisConnection: shorten log messages 2019-12-17 11:49:54 +01:00
Alexander A. Klimov b1cc0cd767 Document RedisConnection 2019-12-17 11:44:00 +01:00
Michael Friedrich cd44c5371a
Merge pull request #7713 from Icinga/bugfix/coroutine-stack-size-linux
Boost Coroutines: Increase the default stack size from 64 to 256KB
2019-12-13 17:30:23 +01:00
Michael Friedrich f62f2eb25e Boost Coroutines: Increase the default stack size from 64 to 256KB
refs #7532
2019-12-13 17:20:06 +01:00
Alexander A. Klimov c6ea9bc7fe IcingaDB: update icinga:nextupdate:* on Checkable#next_check changes
refs #7707
2019-12-10 16:11:51 +01:00
Noah Hilverling 77e02031f9
Merge pull request #7690 from Icinga/feature/flapping-acknowledgement-start-time-7689
IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
2019-12-10 14:49:17 +01:00
Noah Hilverling ee40fedb2a
Merge pull request #7700 from Icinga/bugfix/icingadb-don-t-hash-hashes-7692
IcingaDB: don't hash hashes
2019-12-10 13:39:12 +01:00
Alexander A. Klimov 78189d70ef IcingaDB: don't hash hashes
refs #7692
2019-12-10 11:23:05 +01:00
Alexander A. Klimov d69cb676a7 Introduce IcingaDB#GetObjectIdentifiersWithoutEnv()
refs #7692
2019-12-10 11:22:35 +01:00
Alexander A. Klimov 4f68cfd299 IcingaDB: include consistent IDs, start time and end time in icinga:history:stream:{flapping,acknowledgement}
refs #7689
2019-12-10 10:44:26 +01:00
Alexander A. Klimov 829d07aefe Introduce Checkable#acknowledgement_last_change
refs #7689
2019-12-10 10:44:23 +01:00
Alexander A. Klimov 98ba1c03d0 Make Checkable#flapping_last_change consistent across nodes
refs #7689
2019-12-10 10:11:24 +01:00
Michael Friedrich f47142cf72
Merge pull request #7686 from Icinga/bugfix/open-connections
Fix open connections when agent waits for CA approval
2019-12-09 19:25:13 +01:00
Michael Friedrich ce1a71cfec
Merge pull request #7695 from Icinga/bugfix/double-ack
Refuse acking an already acked checkable
2019-12-09 19:23:41 +01:00
Noah Hilverling e8f352f4d7 IcingaDB history: Add cancelled_by & removed_by to downtime & comment history 2019-12-09 10:30:52 +01:00
Noah Hilverling f0b8892e4a
Merge pull request #7676 from Icinga/feature/icingadb-localendpoint-id
IcingaDB#GetStats(): add endpoint_id to IcingaApplication
2019-12-06 16:59:36 +01:00
Noah Hilverling 5e23414197
Merge pull request #7699 from Icinga/bugfix/icingadb-hash-arrays-7691
Get rid of IcingaDB#CalculateCheckSum*()
2019-12-06 16:37:24 +01:00
Alexander A. Klimov e109063333 IcingaDB#GetStats(): add endpoint_id to IcingaApplication 2019-12-06 15:52:47 +01:00
Alexander A. Klimov 783586978f Get rid of IcingaDB#CalculateCheckSumProperties()
refs #7691
2019-12-06 11:25:41 +01:00
Alexander A. Klimov 9a678dce8e Get rid of IcingaDB#CalculateCheckSumVars()
refs #7691
2019-12-06 11:24:33 +01:00
Alexander A. Klimov b5ada44330 Get rid of IcingaDB#CalculateCheckSumMetadata()
refs #7691
2019-12-06 11:23:13 +01:00
Michael Friedrich 65ab6b256f
Merge pull request #7696 from Icinga/bugfix/metrics-zero-thresholds
Metrics: Always send '0' as value for thresholds
2019-12-06 11:01:35 +01:00
Alexander A. Klimov c91154a14c Get rid of IcingaDB#CalculateCheckSumString()
refs #7691
2019-12-06 10:54:11 +01:00
Alexander A. Klimov 6fc4efccc7 Get rid of IcingaDB#CalculateCheckSumArray()
refs #7691
2019-12-06 10:47:48 +01:00
Alexander Aleksandrovič Klimov 202e90b626
Merge pull request #7693 from Icinga/feature/icingadb-remove-unnecessar-service-host-ids
IcingaDB: Remove unnecessary service_/host_ids
2019-12-05 15:04:52 +01:00
Michael Friedrich ee72791f25 Metrics: Always send '0' as value for thresholds
fixes #7666
2019-12-05 13:05:59 +01:00
Alexander A. Klimov da6a9174d1 Checkable#ClearAcknowledgement(): OnAcknowledgementCleared() at most once 2019-12-05 11:54:33 +01:00
Alexander A. Klimov 798ea54173 Refuse acking an already acked checkable 2019-12-05 11:08:16 +01:00
Noah Hilverling 5b8b777691 IcingaDB: Add timestamp to stats stream 2019-12-05 10:34:41 +01:00
Noah Hilverling 71ef1de964
Merge pull request #7667 from Icinga/feature/icingadb-acks-history
IcingaDB: populate icinga:history:stream:acknowledgement
2019-12-05 09:20:36 +01:00
Noah Hilverling 3e832900f6 IcingaDB: Remove unnecessary service_/host_ids 2019-12-05 07:35:05 +01:00
Alexander A. Klimov 04e13e784d IcingaDB: populate icinga:history:stream:acknowledgement 2019-12-04 15:02:14 +01:00
Noah Hilverling 92e51a3f87
Merge pull request #7684 from Icinga/bugfix/is_handled-host-down-7673
IcingaDB: update service state on Host#problem change
2019-12-04 14:43:09 +01:00
Alexander Aleksandrovič Klimov 5d40a71f8b
Merge pull request #7669 from Icinga/feature/icingadb-notification-recipients
IcingaDB: Add notification recipients
2019-12-04 11:00:53 +01:00