CYMON Monitoring Guide en 38
CYMON Monitoring Guide en 38
Version 3.8
August 2020
History of Changes
Date Version Author Changes
07.08.2020 3.8 Vladislav Tatarincev Added new chapter for
hosted environments, with
existing Zabbix or 3rd party
monitoring, some minor
changes
16.03.2020 3.7 Stanislav Svacko New Version of Document
Vladislav Tatarincev
Page 2 / 59
Table of Contents
1 INTRODUCTION 5
2 SYSTEM REQUIREMENTS 7
3 PREPARATION WORK 8
7 SERVER TEMPLATES 15
13 DEBUG 39
15 @FORMULA WIZARD 42
Page 3 / 59
This document describes installation and configuration of CYONE monitoring solution –
CYMON (CYONE Monitoring).
SIA CYONE
www.cyone.eu
Page 4 / 59
1 Introduction
CYMON Monitoring solution (further in document - CYMON) provided as virtual
appliance image for VMWare ESXi version 6.0 or above (VM version 11) as well HYPER-V
image. CYMON works on CentOS 7.7 and uses Zabbix (https://www.zabbix.com/) +
Grafana (https://grafana.com/) + LDSensor (developed by CYONE) + CYONE designed
best practice rules for Domino.
Page 6 / 59
2 System Requirements
Minimal system requirements:
• CPU – CPU 2 х 2.0GHz or higher
• RAM – 2GB (4GB or more recommended)
• HDD – image is supplied with preconfigured disks. 30GB disk is sufficient to monitor
10-15 Domino servers. Each additional Domino server requires to increase partition
/dev/mapper/vg_system-lv_root for +1 GB and /dev/mapper/vg_data-lv_data01 for
+2 GB (check CentOS documentation how to perform this task)
Image of CYMON supplied with preconfigured and up to date operating system when
build is released. For configuration of system according to your security standards you have
full root access, and you are responsible for applying security and other patches to OS.
CYONE does not provide technical assistance for OS nor further customization. We do
recommend ask CYONE before upgrading such components as Zabbix and Grafana, to
double check that update is compatible with all components.
CYMON has auto update module for getting newest templates, triggers, metrics.
Page 7 / 59
3 Preparation work
System requires to create a server.id (Domino Server ID). With the help of this file
CYMON will connect to Domino servers and will collect necessary data using LDSensor –
specially developed by CYONE micro-Notes client. Creation of server ID does not require
additional license, since physically such server will not exist, and server will not provide server
services.
Creation of Server.ID
Server ID is created in Domino Administrator. «Configuration» Tab, Tools -> Register -
> Server
We recommend use CYMON name, while you can choose any. In “Location for storing
server ID” select «In file». File server.id must be create without password, due to some API
specifics, so that LDSensor client can initiate session in multi-thread mode.
When server is registered, status bar will say that registration is successful.
Page 8 / 59
This server name must have at least Reader ACL rights to the following databases:
o names.nsf
o admin4.nsf
o LNDFR
o domlog.nsf
o ddm.nsf
o userlicenses.nsf.
Server name/Server.ID that is created for CYMON, must be added to Full Remote
Console Administrator field, so CYMON can perform corrective actions (e.g. run a
command).
Page 9 / 59
4 Creation of CYMON virtual server
CYMON server is imported into virtualization based on provided CYMON_latest.ova file.
For testing purposes monitoring can be deployed even on VMWare Player. Time of import
may take 3-7 minutes. System does not require Internet Access, while for OS patches you
might need it later, or you can use local package repository.
Page 10 / 59
5 Architecture of CYMON monitoring
CYMON consist of some components that work together. It might help to understand role
of each component:
1. Linux – CentOS virtual machine on which CYMON runs
2. Zabbix – Opensource monitoring solution (open source)
3. Grafana – Opensource solution that visualize data received from Zabbix
4. LD Sensor – micro Notes client, that allow Monitoring to read data from Domino,
or access Notes databases. It works via NRPC protocol with Domino server over
standard 1352 port. With the help of this component data is gathered remotely
without need of local agent. Thus, any Domino OS is supported, as soon it is
supported by vendor.
5. Notes C API – Domino libraries. «LD Sensor» user Notes API to access Domino,
thus we need some non-production libraries from Domino installation.
6. UpdateStats.nsf – optional module for monitoring. With the help of this module
customers can create their own statistics from business apps. It is described in more
details in a separate chapter.
7. Formula Wizard – optional database, that helps to create @Formulas, that later will
be used in Monitoring. This component can be run on Administrators workstation.
UpdateStats.nsf
Formula Wizard Wizzard
Domino Server
Notes C LD Sensor
Domino Server
Zabbix Grafana
Linux
Page 11 / 59
6 Parts of system, ports and list of system accounts
Address and Port Description
http://ip.add.re.ss/ Zabbix server
User «cymon»
Password «cymon»
In older version (2.x) as login was «Admin» and
password «zabbix», starting CyMON 3.0
recommendation is to use cymon/cymon
http://ip.add.re.ss/config/ CYMONCTL (СYMON CONTROL) –
Interface for basic configuration of monitoring and
server configuration
User «cymon» (OS authentication)
Password «cymon»
http://ip.add.re.ss:3000/ Grafana – visual representation of data
User «cymon»
Password «cymon»
ssh ip.add.re.ss:22 ssh access to system
User «root» and/or «cymon»
Password «cymon»
While using system, you may notice that Zabbix has CYMON user (Uppercase) – this is
system user, that Monitoring system use, to integrate different components. Do not change
password for this user, unless you are sure what you do or instructed by CYONE support.
Changing this password will break Zabbix and Grafana integration, as well as CYMONCTL
(config).
Page 12 / 59
Ports of system
Port Description
:1352 (outgoing) Standard Domino port, system use it to access Domino
servers
:3000 (incoming) By this port Grafana is available, Grafana is main
interface of visual monitoring
:80/443 (incoming) Zabbix interface
:80/443 (outgoing) CYMON uses this port to connect to Traveler and verify
Traveler availability. If Traveler is available on different
port, you have to configure custom port via system
macros, as well protocol (http/https). See description In
Appendix А.
Outgoing 80/443 ports can be used to configure outgoing
notifications to messengers, for example Telegram
25 (outgoing) Used for sending SMTP emails, if notifications are
configured
Ping (outgoing) CYMON must have ability to use ping on network
level
53 (outgoing) System must have access to local DNS server by 53
port
When Server.ID is created, it must be uploaded into CYMON with the help of
CYMONCTL.
You can access CYMONCTL on CYMON server by the following address
http://ip.add.re.ss/config/
To access system, you must use «cymon» user and «cymon» password lower case (users of
CYMONCTL are created on Linux OS level).
After authentication you will see main screen to configure all necessary options.
Page 13 / 59
In CYMON-ID tab you Upload just registered Server.ID. Under this ID monitoring will
work. Use tab «Upload new serverid file»:
In case you issue connection termination after you start upload, investigate
your antivirus settings or WAF (Web Application Firewall) that may control
traffic in network. In some cases, duplicate IP address on Network (this normally
should not happen J ) also result in strange behaviour.
Page 14 / 59
7 Server Templates
Depending on Domino server role, Monitoring will check more or less rules. For example,
names.nsf and admin4.nsf monitoring check only for one server that has Admin_Server role,
since such server in Domino domain is only one. Or if server works in cluster, cluster specific
statistics are checked only if server has corresponding role. Templates (roles) are set during
server registration but can be modified later. Some roles include other roles, some other roles
are independent.
№ Role
1 CYMON_Admin_Server Administrative server of Domino. From all
monitored server only one should have such role.
From this server, monitoring will gather specific
domain statistics, number of users, number of groups,
number of policy documents or pending admin
requests, as well many other domain specific statistics.
(this role does not include CYMON_Domino_Only
role)
2 CYMON_Domino_Only Domino core server, that is not http or traveler
server
3 CYMON_Domino_Traveler Domino server, that also has Traveler and HTTP
tasks running (includes CYMON_Domino_Only and
CYMON_Domino_Web)
4 CYMON_Domino_Web Domino server on which HTTP is running.
(includes role CYMON_Domino_Only)
5 CYMON_Domino_Cluster Additional role for checking Cluster specific
metrics.
(Role is additional and does not include
CYMON_Domino_Only)
6 CYMON_Sametime Optional role to check HCL Sametime
Page 15 / 59
7 CYMON_LNDFR Server on which “Lotus Notes/Domino Fault
Reports” is located. If you server use LNDFR
database and filename is different from lndfr.nsf in
data root), you must adjust name by changing
corresponding macros {$LNDFR.DB.NAME}. See
Appendix А
8 CYMON_SMSLogin Special template for customers using CYONE
2FA – 2 Factor authentication for HTTP/Verse on
Prem
https://www.cyone.eu/2FA
9 CYMON_Custom This is customer template for customer making
their own changes. Only this template must have
custom settings and will not be overwritten during
newer versions of CYMON.
Please notice that some, templates are mutually excluding:
• CYMON_Domino_only
• CYMON_Domino_web
• CYMON_Domino_Traveler
That means that only one template can be assigned to server.
Template/Role CYMON_Admin_Server may be assigned to only one Domino server in
domain. If you need to monitor several domains contact CYONE for CYMON configuration.
Page 16 / 59
8 Registration of server in CYMON system.
Registration of new monitoring host is performed with the help of CYMONCTL. (
http://YourServer/config/” URL)
In «Target Hosts Tools», use «Prepare server host» form to register new host in CYMON.
Field “Visible name” must contain friendly name of server, for example Traveler or Mail
or Apps05, field “Host DNS name” - Fully qualified Internet host name exactly as it is written
in Domino server document.
Page 17 / 59
Use Domino FQDN name, otherwise, you may have issues with zero data received from
Domino server. Verify settings with «Submit» button.
If you click «submit» host for verification and process takes 10-20 seconds and
end up with warning, that host cant be resolved you may need to double check
DNS settings. It is likely your DNS servers are not properly setup. Check
/etc/resolv.conf if values of DNS are correct.
After host specification is entered, you can import prepared specification into monitoring
by clicking on “Import into monitoring system”
Page 18 / 59
9 Configuration of settings that are specific to your Domino Server
If on your Domino server run HTTP or Traveler tasks, or if server is responsible for
processing Lotus Notes Domino Fault Reports(analysis of NSD crash files), we have to define
which ports or which filenames monitoring should use to check health of these servers. To do
so, we have to change values of macros defined in system, from default values to your custom
values. For example:
Macro Description
{$HTTPPROTOCOL} Protocol for checking web server HTTP or HTTPS
{$HTTPPORT} Port of web server
{$TRAVELERPROTOCOL} Protocol for checking Traveler HTTP or HTTPS
{$TRAVELERPORT} Port on which Traveler is configured
{$TRAVELERLOGIN} Login, under this account monitoring can login and check that not
only port is opened, but servlet Traveler is available
{$TRAVELERPASSWORD} Password for $TRAVELERLOGIN account
{$LNDFR.DB.NAME} Name and filepath of Fault Reports database
Page 19 / 59
In properties of server select Macros Þ Inherited and host macros. From the list of variables
find needed macro and click «Change», then in field «Effective value» enter new value of
variable, after changes apply changes with «Update».
List of all variable (macros) and default values is described in Appendix А – List of all
Macros in system.
Page 20 / 59
10 Grafana post configuration
Visual dashboards are created with the help of Grafana.
When hoovering over «i» you will see what this graph does as well as some explanation.
For currently opened issues, you can get insight how frequent is this problem, how long it
is opened, is this is a reoccurring event. You can do this by clicking « i » in list of issues.
Page 21 / 59
You access different dashboards by choosing one from list of available dashboards:
Informational panel must be configured for each individual server. Out of the box 3 panels
are shipped, while you can clone exiting ones and change according to your needs.
To make another copy of panel, click More Þ Duplicate.
Page 22 / 59
To configure panel for server or group of servers, click on server title and then «Edit».
In data source tab (see picture below), adjust list of metrics (5 by default but you can add
more complicated rule of server is ok, or in trouble) to select proper server from drop down.
Server must be registered to appear in dropdown list.
Page 23 / 59
Then on «Visualization» tab, in field «Panel Title» enter server name, then click «Save» or
Left Arrow «» to save changes and quit edit mode. You must change server name in 3 tabs of
dashboard.
After you save changes to dashboard, you will see management dashboard that represents
status of your servers. Start with default, but then you can extend more criteria and make more
sophisticated rules for server availability.
Page 24 / 59
CYMON is shipped with «Traveler» dashboard, which contains two panels for clustered
Traveler servers. This dashboard must be slightly adjusted to provide more valuable
information, according to your deployment.
To Configure status panel, for each Traveler node, click on dashboard title, and «Edit» and
select propriate node of Traveler. Be sure to change server name in all tabs. Traveler
homepage open dashboard in addition to server name, requires also Traveler login and
password that will allow system to login, check traveler servlet availability and show graphs.
If you run only one server, you can remove second “Traveler” row, if later you add one,
you can duplicate widgets from first row.
Page 25 / 59
To check if Traveler has sufficient number of threads, you must change «Active Devices vs
HTTP Threads», «Traveler homepage open», «Traveler Device Sync 200». Below you see
how to adjust these graphs:
Page 26 / 59
Page 27 / 59
Informational dashboard «Databases» require to duplicate some status panels, to monitor
DAOS of Domino server. Each panel consist of two sections. CYMON is shipped with two
panels for two Domino servers. More panels can be added to have needed number of servers.
In settings of each panel, you must select proper Domino server and replace «Title» with
Server name. DAOS synchronization widget must be configured as well to provide
information of DAOS engine state.
Page 28 / 59
11 Creating your own metrics for business app monitoring
In addition to Domino CYMON can monitor also business applications. There are
different ways, to monitor business app. You can track number of documents in a particular
view (request count) and put different triggers on it, processed number of documents should
always grow, or if this is error log it should be static(not grow). Another example is unprocessed
number of documents (starting status), should be less than X, if exceeded then alarm. CYMON
can monitor speed how fast database and view opens for users. Or you can even write your
own @Formula that is executed and get result from your business app.
Idea is to put different sensors or probes and monitoring will check these sensors 24/7.
There is one more way to even create application statistics, it will be covered in next chapters.
Let take few examples, so you get flavor of what can monitoring do with app:
We will create our own metric using two different examples:
1. To gather some statistics, it is required in in «CYMON_custom» template add needed
new metrics. For example, you want to monitor, number of CPU on server, then we
have to read Server.CPU.Count statistic from Domino.
In «CYMON_custom» create new metric with the following values:
On screen above, highlighted with red, we marked fields you need to fill.
Page 29 / 59
FIELD NAME DESCRIPTION
Name Name of metrics
Key Metrics system name, we suggest using same name as in «Name»
Server {HOST.DNS}
Since value will be read from different servers, we have to type
variable so Domino FQDN is used {HOST.DNS}
Facility First part of statistics, you enter part that is before dot «.»
Stat Remaining part of the string after the dot «.»
Convert Bit mask. Depending on returned value, and some special
characters data may need to be cleaned so monitoring can get expected
value. Some values are returned by Domino as «123 234 344.56»,
while for program this may be not a valid number, as well decimal
delimiter may differ. If you are not sure with one convert flag you need,
start with one (1).
Pay attention, that facility, in our example «Server» is first part of the Domino full
statistics name, but value of «stat» field «CPU.Count» is remaining part of full name.
Value of convert field, is a bit mask:
• 1 – delete non "non-ASCII" symbols
• 2 – delete spaces and quotes (double “ and single ‘)
• 4 – delete "," and "."
• 8 - replace "," with "."
More example:
• delete "non-ASCII" symbols: convert=1
• delete "non-ASCII" symbols, delete quotes, delete commas, and dots and spaces.
convert = 7 (1 + 2 + 4)
• delete "non-ASCII" symbols, quotes, spaces, quotes and replace comas with dots.
convert = 11 (1+2+8)
Page 30 / 59
Scroll down Zabbix window and specify frequency, how often to collect this metric from
Domino:
CYONE recomends to avoid polling Domino too frequently, 3 minutes or less frequent
time should be ok.
After making changes to template, template must be assigned to server. In Zabbix interface
you have to find needed server:
When needed server is located, open Templates section, and in field «Link new templates»
select «CYMON_custom» and press Enter, then «Add», and finaly click «Update».
Page 31 / 59
After some time (depends how frequently you selected to read this metric from Domino)
this metric can be depicted in Grafana. For example, graph can be created. Open needed
panel, and click button «Add panel»:
Page 32 / 59
Fill «Queries» in the following way:
Page 33 / 59
As you see, Grafana builds graph automatically, based on data received from Domino. We
are almost done, we have to define Graph name in «Panel Title» and may be we will move
graph itself to some area in Dashboard.
Page 34 / 59
New metric will be created, and you have to make minor changes to achieve your goal,
change fields marked in red as on picture below:
Example 3. @Formula
To create your own metric, that calculates something based on @Formula, repeat same
steps as in example 2, but use another metric as an template for clone
«NAB.Users.IDAttached2».
After making changes, template must be assigned to proper server, if not yet done, as in
previous example.
Page 35 / 59
12 Automatic problem solving
CYMON monitoring system is able to fix issue, if resolution scenario is defined. These
commands/fix scenarios are fired by monitoring trigger. System is shipped with one predefined
trigger, that allow to synchronize DAOS catalog in case DAOS engine is in «Need Resync»
state. This does not require any additional software to be installed on the server. This feature
is available only in Enterprise version of CYMON (Free version of CYMON does not have
such functionality).
Using DAOS Resync trigger as an example, you can define to run any agent, any command
if corresponding trigger has been executed on other metric. For configuring automatic
command, you must use Zabbix interface.
Trigger logics of «tell daosmgr resync» is the following:
When last but one (-2) value and last value of DAOS.Engine.Catalog has value «Needs
Resync» trigger will be fired.
{CYMON_Domino_only:DAOS.Engine.Catalog.str("Needs Resync",#2)}=1 and
{CYMON_Domino_only:DAOS.Engine.Catalog.str("Needs Resync",#1)}=1,
It will open new issue with severity «Problem», and then with Zabbix Þ Actions, configured
the following way:
Page 36 / 59
This command will be fired by monitoring system after 30 minutes when DAOS engine is
in this state. If needed you may adjust this time.
Page 37 / 59
On third screen you see that «tell daosmgr resync» script will be launched by shell file
/usr/lib/zabbix/externalscripts/start_ldsensor.sh cmd {HOST.DNS} "tell daosmgr resync",
Page 38 / 59
13 Debug
You may run into different issues, while using Monitoring. To locate issue, monitoring has
utility for verification of setting and configuration. To run this command, connect via ssh with
«root» or «cymon» user, and then run:
/usr/lib/zabbix/externalscripts/debug.sh
Debug utility will check different configuration settings and will try to help to locate a
problem, or which setting is incorrect. For example:
1. IP address
2. DNS server
3. Result of ping command (IP cant be resolved)
4. Ability of LDSensor to connect to server by IP address
5. Ability of LDSensor connect to Domino by FQDN
Page 39 / 59
After this you will see an attempt to connect with LDSensor:
Try to do first level analysis of «debug.sh» output and fix configuration. In case you cant
fix issue, get in touch wit CYONE technical support team that will be happy to assist
([email protected]).
Page 40 / 59
14 UpdateStats.nsf – creation of own statistics Domino
СYMON system has optional download – NSF database «Update Stats». With the
help of this database, you can monitor also business applications, by creating business
statistics in Domino statistics tree. For example, you can track how fast documents or
databases are opened by users or search performed. Another example is number of
documents in particular view (number of requests from customers). СYMON can
execute @Formula queries, as well as amount of documents in a view, but these requests
are not so light as already prepared statistic. In a heavy loaded and large system, it make
sence to prepare statistics so monitoring can just read them. Last version of NSF
database «StatsUpdate.ntf» is available here
https://cyone.box.com/v/StatsUpdateNTF
Database has test agent and script library that allow to create statistics with one line
of code (one function). More detailed information and how to use this database is
described in Help ÞUsing This Application.
15 @Formula Wizard
CYMON Allows not only gather statistics, but also execute @Formula queries.
System supports @Formulas, to select documents without need to create a Domino
views.
For ease of using formulas and debug of formulas, we created @Formila Wizard
database. Create new document, select any view that is close to what you want to get. It
will show a formula for existing view. Then customize this formula in Custom Formula
field. You can test this formula by clicking «Try This formula» button. First 10
documents of a view will be displayed or you can open these documents in UI to verify
if the correspond to formula. Later this formula is copied to monitoring, and formula is
executed on scheduled base.
1. Example of formula, that shows users with attached user IDies in Domino Directory.
Page 42 / 59
16 Frequently asked questions
Question 1: many metrics in Zabbix are shown as gray, many triggers has status
«Unknown» Unknown. Any hint for reason of that?
Answer 1: Most possible reason for that, is that Zabbix did not get data in expected
format. For example, got empty string instead of number, or decimal delimiter was
comma while expected «.».
Another possible reason, that Free version is used, that does not allow to read
advanced values. In such case Zabbix will get empty string.
If you still experience No Data issue, please get in touch with CYONE support, we
will get verify your configuration and fix issue.
Question 2: There are triggers about mail, what has caused to them to report a
problem? How can I get more details on this?
CYMON_Domino_only: Dead mail: {ITEM.LASTVALUE} > {$MAIL.DEAD}
CYMON_Domino_only: Hold mail: {ITEM.LASTVALUE} >=
{$MAIL.HOLD}
Answer 2: in this case, check contents of mail*.box databases, you will see
documents that cause triggers to execute.
Вопрос 3: How Server availability index works? I see value always below 30.
CYMON_Domino_only: Server.AvailabilityIndex low: {ITEM.LASTVALUE} <
{$SERVER.AVAILABILITYINDEX}
Ответ 3: Server.Availability is described in HCL documentation:
https://help.hcltechsw.com/domino/10.0.1/admn_theserveravailabilityindex_t.ht
ml
Trigger changes state into «Problem», when value of metrics
Server.AvailabilityIndex becomes less, then value of macro
{$SERVER.AVAILABILITYINDEX}. СYONE’s created rules for CYMON is a list
of IBM and HCL best practice that is checked against your server 24/7.
Page 43 / 59
Question 4: how to configure to monitor another disk partition?
Answer 4: to configure new partition of disk click on a metric and edit it. Lets take
example how to do it on Linux.
Lets assume, you have different partition, than /local - Disk./local.*. To adjust it and
keep logic of Disk./local.Used.Pct, you must make changes to all three (3) metrics:
Disk./local.Free, Disk./local.Size и Disk./local.Used.Pct. Click on name of metrics, and
then click Clone at the bottom of a screen, this will create new metric for particular
server (based on metric from which it was cloned):
Page 44 / 59
You have to change here:
1.1. field Name, for example, to Disk./dominonotesdata.Free
1.2. field Key to Disk.dominonotesdata.Free
1.3. Value for «stat» to /dominonotesdata.Free
2. Do same for Disk./local.Size.
3. Then clone and edit Disk./local.Used.Pct so it looks like on screen below
Page 45 / 59
Question 5: why triggers has priority High and what does it mean?
CYMON_Domino_only: Database.NAMELookupCacheHitRate too high:
{ITEM.LASTVALUE} >
{$DATABASE.NAMELOOKUPCACHEHITRATE.CRITICAL.PERCENT}
CYMON_Domino_only: Database.RM.SinceStartup.Critical.Log.Times:
{ITEM.LASTVALUE} >
{$DATABASE.RM.SINCESTARTUP.CRITICAL.LOG.TIMES.COUNT}
Answer: Based on experience of CYONE people, we classify this trigger with
«High» priority. If for your environment, you believe another priority is needed, you
can adjust it since all metrics are free to adjust.
See HCL documentation on Database.NAMELookup:
Monitoring the database cache
https://help.hcltechsw.com/domino/10.0.1/tune_monitoringthedatabasecache_r.html
Page 46 / 59
Metrics Database.RM.SinceStartup.Critical.Log.Times says, how many times
transactional log was full, from Domino start. Engineers of CYONE believe that
transactional log should never be full, since it may crash server, impact ability to perform
normally. Thus value of macro
{$DATABASE.RM.SINCESTARTUP.CRITICAL.LOG.TIMES.COUNT} is zero
0 by default.
Database.RM reference Guide
http://publib.boulder.ibm.com/tividd/td/TDSdomino/GC32-0675-
00/en_US/HTML/refmst25.htm (this link may become dead since IBM is removing
documentation. If this happens, search for Database.RM. Reference Guide)
Page 47 / 59
Macro that we need to adjust is:
If you change Macro value in template CYMON_sys_Macros, changes will affect all
monitored Domino hosts, unless macro for specific server is defined.
To change {$NAB.USERS.EXPIRING.DAYS} only for particular host
«Macros» Þ «Inherited and host macros» click «Change»:
Thus, trigger works the following way: if last received value of NAB.Users.Expiring
metrics more than value defined in macro {$NAB.USERS.EXPIRING.DAYS}, then
trigger will turn into «Problem» state.
Page 48 / 59
Take a look at @Formula with the help of which value of NAB.Users.Expiring is
calculated:
Type = 'Person' & ((@Date(@Certificate([Expiration];Certificate)) - @Date(@Today)) /
86400) > 0 & ((@Date(@Certificate([Expiration];Certificate)) - @Date(@Today)) / 86400) <
{$NAB.USERS.EXPIRING.DAYS}
Question 7: if you have to change to modify templates for CYMON, what should
I know? Will my changes be lost during next update of CYMON?
Answer 7: CYMON is shipped with the following templates:
CYMON_Admin_Server
CYMON_custom
CYMON_Domino_cluster
CYMON_Domino_only
CYMON_Domino_web
CYMON_Domino_Traveler
CYMON_Domino_web
CYMON_LNDFR
CYMON_SMSLogin
CYMON_sys_Macros
CYMON_sys_NRPC
CYMON_sys_SSL_Check
CYMON_sys_Traveler_Web_Check
CYMON_sys_Web_Check
The only template this will be not updated is – CYMON_custom, that contains
samples for customer metrics. Best practice is to have your custom settings in
CYMON_Custom template. While you can do modifications also in CYONE provided
templates, and assigning metric a unique non conflicting name, like
ZYX_Customer.Mail.Waiting, will still be ok and will be not overwritten during
upgrade. To avoid confusion, we strongly suggest to use CYMON_Custom template
Page 49 / 59
Question 8: How to change timezone in CYMON OS?
Answer 8: list of available timezones you can get by typing Cent OS 7 command:
timedatectl list-timezones.
for Example,
timedatectl set-timezone Europe/Moscow
Or
timedatectl set-timezone Europe/London
Page 50 / 59
17 Appendix А – List of all Macros in system
List of all macros in system:
Macro name Default Description
{$AGENT.DAILY.ACCESSDENIALS.HIGH} 30 Trigger Too much Domino Daily Agents run denials: {ITEM.LASTVALUE} >
{$AGENT.DAILY.ACCESSDENIALS.HIGH}
{$AGENT.DAILY.ACCESSDENIALS.INFO} 0 Trigger Too much Domino Daily Agents run denials: {ITEM.LASTVALUE} >
{$AGENT.DAILY.ACCESSDENIALS.INFO}
{$AGENT.DAILY.ACCESSDENIALS.WARN} 10 Trigger Too much Domino Daily Agents run denials: {ITEM.LASTVALUE} >
{$AGENT.DAILY.ACCESSDENIALS.WARN}
{$AGENT.DAILY.UNSUCCESSFULRUNS.INFO} 0 Trigger Too much Domino Daily Agents Unsuccessful Runs: {ITEM.LASTVALUE}
> {$AGENT.DAILY.UNSUCCESSFULRUNS.INFO}
{$AGENT.DAILY.UNSUCCESSFULRUNS.WARN} 30 Trigger Too much Domino Daily Agents Unsuccessful Runs: {ITEM.LASTVALUE}
> {$AGENT.DAILY.UNSUCCESSFULRUNS.WARN}
{$BUFFERPOOL.PERCENT} 90 Trigger Database.Database.BufferPool.PercentReadsInBuffer
{$DATABASE.DBCACHE.CURRENTENTRIES.PCT.I 90 Trigger Database.DbCache.CurrentEntries: {ITEM.LASTVALUE} is more than
NFO} {$DATABASE.DBCACHE.CURRENTENTRIES.PCT.INFO}% of
Database.DbCache.MaxEntries: {ITEM.VALUE2}
{$DATABASE.DBCACHE.CURRENTENTRIES.PCT. 95 Trigger Database.DbCache.CurrentEntries: {ITEM.LASTVALUE} is more than
WARN} {$DATABASE.DBCACHE.CURRENTENTRIES.PCT.WARN}% of
Database.DbCache.MaxEntries: {ITEM.VALUE2}
{$DATABASE.DBCACHE.EFFECTIVENESS.CRITIC 10 Trigger Database.Dbcache.Effectiveness is too low: {ITEM.LASTVALUE} <
AL.PERCENT} {$DATABASE.DBCACHE.EFFECTIVENESS.CRITICAL.PERCENT}%
{$DATABASE.DBCACHE.EFFECTIVENESS.WARNI 20 Trigger Database.Dbcache.Effectiveness is too low: {ITEM.LASTVALUE} <
NG.PERCENT} {$DATABASE.DBCACHE.EFFECTIVENESS.WARNING.PERCENT}%
{$DATABASE.DBCACHE.OVERCROWDINGREJEC 0 Trigger Database.DbCache.OvercrowdingRejections: {ITEM.LASTVALUE} >
TIONS.COUNT} {$DATABASE.DBCACHE.OVERCROWDINGREJECTIONS.COUNT}
{$DATABASE.NAMELOOKUPCACHEHITRATE.CRI 90 Trigger Database.NAMELookupCacheHitRate too high: {ITEM.LASTVALUE} >
TICAL.PERCENT} {$DATABASE.NAMELOOKUPCACHEHITRATE.CRITICAL.PERCENT}
{$DATABASE.NAMELOOKUPCACHEHITRATE.WA 80 Trigger Database.NAMELookupCacheHitRate too high: {ITEM.LASTVALUE} >
RNING.PERCENT} {$DATABASE.NAMELOOKUPCACHEHITRATE.WARNING.PERCENT}
{$DATABASE.RM.SINCESTARTUP.CRITICAL.LOG. 0 Trigger Database.RM.SinceStartup.Critical.Log.Times: {ITEM.LASTVALUE} >
TIMES.COUNT} {$DATABASE.RM.SINCESTARTUP.CRITICAL.LOG.TIMES.COUNT}
{$DBMT.COMPACT.UNSUCCESSFUL} 0 Trigger DBMT.Compact.Unsuccessful: {ITEM.LASTVALUE} >
{$DBMT.COMPACT.UNSUCCESSFUL}
{$DISK.C.USED.PCT} 90 Trigger HDD C:\ almost full > {$DISK.C.USED.PCT}%
{$DISK.D.USED.PCT} 90 Trigger HDD D:\ almost full > {$DISK.C.USED.PCT}%
{$DISK.LOCAL.USED.PCT} 90 Trigger HDD /local almost full > {$DISK.LOCAL.USED.PCT}%
{$DISK.ROOT.USED.PCT} 90 Trigger HDD / almost full > {$DISK.ROOT.USED.PCT}%
{$DOMLOG.INVALIDLINKREQUESTS} 20 Trigger HTTP task: invalid requests high
{$DOMLOG.REQUESTS.COUNT.PCT.THR} 1000 Trigger Domlog.Requests.Count avg(15m) grow faster for
{$DOMLOG.REQUESTS.COUNT.PCT.THR}% than avg(6h)
{$FT.TIME.VS.ELAPSED.TIME.PERCENT} 25 Trigger FT time vs Elapsed time: {ITEM.LASTVALUE} >
{$FT.TIME.VS.ELAPSED.TIME.PERCENT}%
{$HTTP.INETLOCKOUT.COUNT} 0 Trigger Http.Inetlockout: {ITEM.LASTVALUE} >
{$HTTP.INETLOCKOUT.COUNT}
{$HTTPPORT} 443 Port for checking availability of HTTP server Domino
{$HTTPPROTOCOL} https Protocol (http or https for checking) availability of HTTP
{$ICMP_LOSS_WARN} 20 Trigger High ICMP ping loss >{$ICMP_LOSS_WARN} <100 (large % of lost
packets)
{$ICMP_RESPONSE_TIME_WARN} 0.15 Trigger High ICMP ping response time > {$ICMP_RESPONSE_TIME_WARN}
(in seconds)
Page 52 / 59
{$LDAP.FAILEDLDAPCONNECTIONS} 0 Trigger LDAP.Failed LDAP Connections growth by {ITEM.LASTVALUE}
{$LNDFR.DB.NAME} lndfr.nsf Path to Notes/Domino Fault Reports database
{$LOGICALDISK.1.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.1.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.1.AVGQUELEN.AVG.PERCENT}
{$LOGICALDISK.2.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.2.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.2.AVGQUELEN.AVG.PERCENT}
{$LOGICALDISK.3.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.3.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.3.AVGQUELEN.AVG.PERCENT}
{$LOGICALDISK.4.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.4.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.4.AVGQUELEN.AVG.PERCENT}
{$LOGICALDISK.5.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.5.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.5.AVGQUELEN.AVG.PERCENT}
{$LOGICALDISK.6.AVGQUELEN.AVG.PERCENT} 1 Trigger Platform.LogicalDisk.6.AvgQueLen.Avg: {ITEM.LASTVALUE} >
{$LOGICALDISK.6.AVGQUELEN.AVG.PERCENT}
{$MAIL.DEAD} 0 Trigger Dead mail: {ITEM.LASTVALUE} > {$MAIL.DEAD}
{$MAIL.HOLD} 10 Trigger Hold mail: {ITEM.LASTVALUE} >= {$MAIL.HOLD}
{$MAIL.MAILBOX.ACCESSCONFLICTS.PCT} 2 Trigger Mail.Mailbox.AccessConflicts: {ITEM.VALUE1} is more than
{$MAIL.MAILBOX.ACCESSCONFLICTS.PCT}% of Mail.Mailbox.Accesses:
{ITEM.VALUE2}
{$MAIL.MAILBOX.ACCESSWARNINGS.PCT} 10 Trigger Mail.Mailbox.AccessWarnings: {ITEM.VALUE1} is more than
{$MAIL.MAILBOX.ACCESSWARNINGS.PCT}% of Mail.Mailbox.Accesses:
{ITEM.VALUE2}
{$MAIL.TOTALPENDING.HIGH} 30 Trigger Pending Mail Messages: {ITEM.LASTVALUE} >=
{$MAIL.TOTALPENDING.HIGH}
{$MAIL.TOTALPENDING.WARNING} 10 Trigger Pending Mail Messages: {ITEM.LASTVALUE} >=
{$MAIL.TOTALPENDING.WARNING}
{$MAIL.WAITING} 10 Trigger Mail.Waiting: {ITEM.LASTVALUE} > {$MAIL.WAITING}
Page 53 / 59
{$MAIL.WAITINGFORDIR} 0 Trigger Mail.WaitingForDIR: {ITEM.LASTVALUE} >
{$MAIL.WAITINGFORDIR}
{$MAIL.WAITINGFORDNS} 5 Trigger Mail waiting for DNS: {ITEM.LASTVALUE} >
{$MAIL.WAITINGFORDNS}
{$MEM.AVAILABILITY.CHECK.COUNT} #9 Trigger Not enough memory available Количество проверок
{$MEM.AVAILABILITY.CHECK.COUNT} не содержащих результат
Plentiful>{$MEM.AVAILABILITY.THR.COUNT}
{$MEM.AVAILABILITY.THR.COUNT} 3 See previous
{$NAB.USERS.EXPIRING.DAYS} 90 Trigger NAB.Users.Expiring in {$NAB.USERS.EXPIRING.DAYS} days:
{ITEM.LASTVALUE} > 0
{$NODATA.SECS} 180 Used in some triggers, «for some seconds we didnt received any data»
{$NOT.ALIVE.TIMEOUT} 180 Obsolete macro
{$PLATFORM.LOGICALDISK.QUEUE.NAME} AvgQue If server runs on Linux: AvgQueLen, if on Windows: AvgQueueLen
Len On different platforms, disk load is reported by Domino to different statistics
{$PLATFORM.PAGINGFILE.TOTAL.PCTUTIL.AVG 10 Trigger Platform.PagingFile.Total.PctUtil.Avg {ITEM.LASTVALUE}% >
} {$PLATFORM.PAGINGFILE.TOTAL.PCTUTIL.AVG}%
{$PLATFORM.SYSTEM.PCTCOMBINEDCPUUTIL. 3 Trigger Platform.System.PctCombinedCpuUtil {ITEM.LASTVALUE} >
COUNT} {$PLATFORM.SYSTEM.PCTCOMBINEDCPUUTIL.THR}
{$PLATFORM.SYSTEM.PCTCOMBINEDCPUUTIL. 95 See previous
THR}
{$REPLICA.CLUSTER.SECONDSONQUEUE} 15 Trigger Replica.Cluster.SecondsOnQueue: {ITEM.LASTVALUE} >
{$REPLICA.CLUSTER.SECONDSONQUEUE}
{$REPLICA.CLUSTER.WORKQUEUEDEPTH} 15 Trigger Replica.Cluster.WorkQueueDepth: {ITEM.LASTVAUE} >
{$REPLICA.CLUSTER.WORKQUEUEDEPTH}
{$SERVER.AVAILABILITYINDEX} 30 Trigger Server.AvailabilityIndex low: {ITEM.LASTVALUE} <
{$SERVER.AVAILABILITYINDEX}
Page 54 / 59
{$SERVER.CONCURRENTTASKS.WAITING.COUN 10 Trigger Server.ConcurrentTasks.Waiting: {ITEM.LASTVALUE} >
T} {$SERVER.CONCURRENTTASKS.WAITING}.
{$SERVER.CONCURRENTTASKS.WAITING.THR.C 3 See previous
OUNT}
{$SERVER.SESSIONS.DROPPED.THR.PCT} 5 Trigger Server.Sessions.Dropped: {ITEM.LASTVALUE} is more than
{$SERVER.SESSIONS.DROPPED.THR.PCT}% of Server.Users.Active15Min:
{ITEM.VALUE2}
{$SNMP_COMMUNITY} public
{$SSL_PORT} 443 Не используется
{$TRAVELER.DEVICESYNC.COUNT.AVERAGE} 900 Trigger Traveler.DeviceSync.Count.200 not growing. Number of HTTP 200 requests
has not grown during this time (in seconds)
{$TRAVELER.DEVICESYNC.COUNT.HIGH} 7200 Trigger Traveler.DeviceSync.Count.200 not growing. Количество 200 запросов не
росло в течение значения
{$TRAVELER.ERRORS.SECS} 30 Trigger Traveler.Errors is growing. Количество ошибок между измерениями
больше, чем значение
{$TRAVELER.MEMORY.JAVA.USEDPCT} 80 Trigger Traveler.Memory.Java.UsedPct: {ITEM.LASTVALUE} >
{$TRAVELER.MEMORY.JAVA.USEDPCT}%
{$TRAVELERLOGIN} fakeuser Логин для Traveler сервера
{$TRAVELERPASSWORD} fakepass Пароль для Traveler сервера
word
{$TRAVELERPORT} 443 Порт, на котором работает Traveler
{$TRAVELERPROTOCOL} https Протокол, с которым работает Traveler
{$TRIGGER.PROBLEM.GENERATION.TIME.AVG} 1h Используется в некоторых Triggerах в смысле как «Среднее значение за время
{$TRIGGER.PROBLEM.GENERATION.TIME.AVG}»
{$UPDATE.DEFERREDLIST} 20 Trigger FT Indexer too busy. Update.DeferredList: {ITEM.LASTVALUE} >
{$UPDATE.DEFERREDLIST}
Page 55 / 59
{$UPDATE.PENDINGLIST} 20 Trigger FT Indexer too busy. Update.PendingList: {ITEM.LASTVALUE} >
{$UPDATE.PENDINGLIST}
{$VERSION.TIMETOCHECK} 14h Trigger Domino version was changed to: {ITEM.LASTVALUE}. Как часто
проверять версию Domino сервера
{$VERSIONS.TOCHECK} 12 Trigger Domino version was changed to: {ITEM.LASTVALUE}. Сколько раз
провести проверку.
Page 56 / 59
18 Appendix B. 3rd party software used in CYMON
Cent OS
Cent OS is licensed under GNU General Public License, version 2.
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
ZABBIX
Zabbix monitoring solution GNU (GPL) version 2. Official homepage GPL
http://www.fsf.org/licenses/. Home page of Zabbix product www.zabbix.com
Grafana
Grafana is licensed under the Apache License 2.0.
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
Node.js
Copyright Node.js contributors. All rights reserved.
End of document
Notes
Page 58 / 59
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which
illustrate programming techniques on various operating platforms. You may copy,
modify, and distribute these sample programs in any form without payment to CYONE,
for the purposes of developing, using, marketing or distributing application programs
conforming to the application programming interface for the operating platform for
which the sample programs are written. These examples have not been thoroughly
tested under all conditions. CYONE, therefore, cannot guarantee or imply reliability,
serviceability, or function of these programs. You may copy, modify, and distribute these
sample programs in any form without payment to CYONE for the purposes of
developing, using, marketing, or distributing application programs conforming to
CYONE’s application programming interfaces.
Each copy or any portion of these sample programs or any derivative work, must
include a copyright notice as follows:
© CYONE 2020. All rights reserved.
Page 59 / 59