10年工作经验,专研网站运维。
全部博文(454)
分类: LINUX
2012-08-31 16:50:26
主机名 |
操作系统 |
IP |
作用 |
nagios-server |
redhat 9 |
192.168.0.111 |
监控机 |
dbpi |
redhat 9 |
192.168.0.100 |
被监控机 |
yahoon |
xp |
192.168.0.28 |
被监控机 |
nagios的功能是监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成。
nagios安装,是指基本平台,也就是nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。
打开nagios官方的文档,会发现nagios基本上没有什么依赖包,只要求系统是linux或者其他nagios支持的系统。不过如果你没有安装apache(http服务),那么你就没有那么直观的界面来查看监控信息了,所以apache姑且算是一个前提条件。关于apache的安装,网上有很多,照着安装就是了。安装之后要检查一下是否可以正常工作。
|
状态 |
代码 |
颜色 |
正常 |
OK |
绿色, |
警告 |
WARNING |
黄色, |
严重 |
CRITICAL |
红色, |
未知错误 |
UNKOWN |
深黄色 |
主机名 |
要监控的服务 |
nagios-server |
是否活动 |
是否开启ftp | |
磁盘使用情况 | |
dbpi |
是否活动 |
是否开启ssh | |
磁盘使用情况 | |
cpu负载 | |
swap分区使用情况 | |
主进程数 | |
当前登陆用户 | |
僵尸进程数 | |
yahoon |
是否活动 |
是否开启80端口 | |
是否启动W3SVC服务 | |
cpu负载 | |
内存使用情况 | |
运行时间 | |
NSClient客户端版本(NSClient是一个windows下的nagios客户端) | |
C盘使用情况 | |
D盘使用情况 | |
explorer进程运行情况 |
*** Configuration summary for nagios 2.9 04-10-2007 ***:
General Options:
-------------------------
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagios
Embedded Perl: no
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Lock file: ${prefix}/var/nagios.lock
Init directory: /etc/rc.d/init.d
Host OS: linux-gnu
Web Interface Options:
------------------------
HTML URL:
CGI URL:
Traceroute (used by WAP): /usr/sbin/traceroute
Review the options above for accuracy. If they look okay,
type 'make all' to compile the main program and CGIs. |
*** Compile finished ***
If the main program and CGIs compiled without any errors, you
can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):
make install
- This installs the main program, CGIs, and HTML files
使用make install来安装主程序,CGI和HTML文件
make install-init
- This installs the init script in /etc/rc.d/init.d
使用make install-init在/etc/rc.d/init.d安装启动脚本
make install-commandmode
- This installs and configures permissions on the
directory for holding the external command file
使用make install-commandmode来配置目录权限
make install-config
- This installs *SAMPLE* config files in /usr/local/nagios/etc
You'll have to modify these sample files before you can
use Nagios. Read the HTML documentation for more info
on doing this. Pay particular attention to the docs on
object configuration files, as they determine what/how
things get monitored!
使用make install-commandmode来安装示例配置文件,安装的路径是/usr/local/nagios/etc.
*** Support Notes *******************************************
If you have questions about configuring or running Nagios,
please make sure that you:
- Look at the sample config files
- Read the HTML documentation
- Read the FAQs online at
before you post a question to one of the mailing lists.
Also make sure to include pertinent information that could
help others help you. This might include:
- What version of Nagios you are using
- What version of the plugins you are using
- Relevant snippets from your config files
- Relevant error messages from the Nagios log file
For more information on obtaining support for Nagios, visit:
*************************************************************
Enjoy. |
cd ./base && make install
make[1]: Entering directory `/home/yahoon/nagios/nagios-2.9/base'
make install-basic
make[2]: Entering directory `/home/yahoon/nagios/nagios-2.9/base'
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/bin
/usr/bin/install: invalid user `nagios' 非法用户nagios
make[2]: *** [install-basic] Error 1
make[2]: Leaving directory `/home/yahoon/nagios/nagios-2.9/base'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/home/yahoon/nagios/nagios-2.9/base'
make: *** [install] Error 2 |
*** Main program, CGIs and HTML files installed ***
You can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):
make install-init
- This installs the init script in /etc/rc.d/init.d
make install-commandmode
- This installs and configures permissions on the
directory for holding the external command file
make install-config
- This installs *SAMPLE* config files in /usr/local/nagios/etc
You'll have to modify these sample files before you can
use Nagios. Read the HTML documentation for more info
on doing this. Pay particular attention to the docs on
object configuration files, as they determine what/how
things get monitored!
make[1]: Leaving directory `/home/yahoon/nagios/nagios-2.9' |
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***
You can continue with installing Nagios as follows (type 'make'
without any arguments for a list of all possible options):
make install-config
- This installs *SAMPLE* config files in /usr/local/nagios/etc
You'll have to modify these sample files before you can
use Nagios. Read the HTML documentation for more info
on doing this. Pay particular attention to the docs on
object configuration files, as they determine what/how
things get monitored! |
/usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/etc
/usr/bin/install -c -m 664 -o nagios -g nagios sample-config/nagios.cfg /usr/local/nagios/etc/nagios.cfg-sample
/usr/bin/install -c -m 664 -o nagios -g nagios sample-config/cgi.cfg /usr/local/nagios/etc/cgi.cfg-sample
/usr/bin/install -c -m 660 -o nagios -g nagios sample-config/resource.cfg /usr/local/nagios/etc/resource.cfg-sample
/usr/bin/install -c -m 664 -o nagios -g nagios sample-config/template-object/localhost.cfg /usr/local/nagios/etc/localhost.cfg-sample
/usr/bin/install -c -m 664 -o nagios -g nagios sample-config/template-object/commands.cfg /usr/local/nagios/etc/commands.cfg-sample
*** Sample config file installed ***
Remember, these are *SAMPLE* config files. You'll need to read
the documentation for more information on how to actually define
services, hosts, etc. to fit your particular needs.
If you have questions about configuring Nagios properly, please:
- Look at the sample config files
- Read the HTML documentation
- Read the FAQs online at
*BEFORE* you post a question to one of the mailing lists. |
bin |
Nagios执行程序所在目录,nagios文件即为主程序 |
etc |
Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 |
sbin |
Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录 |
Share |
Nagios网页文件所在的目录 |
Var |
Nagios日志文件、spid 等文件所在的目录 |
var/archives |
Empty directory for the |
var/rw |
Empty directory for the |
#setting for nagios 20070707
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
Alias /nagios /usr/local/nagios/share
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd
//用于此目录访问身份验证的文件
Require valid-user
|
联系人 |
contact |
出了问题像谁报告?一般当然是系统管理员了 |
监控时间段 |
timeperiod |
7X24小时不间断还是周一至周五,或是自定义的其他时间段 |
被监控主机 |
host |
所需要监控的服务器,当然可以是监控机自己 |
监控命令 |
command |
nagios发出的哪个指令来执行某个监控,这也是自己定义的 |
被监控的服务 |
service |
例如主机是否存活,80端口是否开,磁盘使用情况或者自定义的服务等 |
cfg_file=/usr/local/nagios/etc/contactgroups.cfg //联系组配置文件路径
cfg_file=/usr/local/nagios/etc/contacts.cfg //联系人配置文件路径
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主机组配置文件路径
cfg_file=/usr/local/nagios/etc/hosts.cfg //主机配置文件路径
cfg_file=/usr/local/nagios/etc/services.cfg //服务配置文件路径
cfg_file=/usr/local/nagios/etc/timeperiods.cfg //监视时段配置文件路径 |
authorized_for_system_information=nagiosadmin,test
authorized_for_configuration_information=nagiosadmin,test
authorized_for_system_commands=test //多个用户之间用逗号隔开
authorized_for_all_services=nagiosadmin,test
authorized_for_all_hosts=nagiosadmin,test
authorized_for_all_service_commands=nagiosadmin,test
authorized_for_all_host_commands=nagiosadmin,test |
define timeperiod{
timeperiod_name 24x7 //时间段的名称,这个地方不要有空格
alias 24 Hours A Day,7Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
} |
define contact{
contact_name test //联系人的名称,这个地方不要有空格
alias sys admin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email
pager 1338757xxxx
address1
address2 555-555-5555
} |
service_notification_period 24x7
服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的. |
host_notification_period 24x7
主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg中定义的 |
service_notification_options w,u,c,r
当服务出现w—报警(warning),u—未知(unkown),c—严重(critical),或者r—从异常情况恢复正常,在这四种情况下通知联系人. |
host_notification_options d,u,r
当主机出现d—当机(down),u—返回不可达(unreachable),r—从异常情况恢复正常,在这3种情况下通知联系人 |
service_notification_commands notify-by-email
服务出问题通知采用的命令notify-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件.至于commands.cfg之后将专门介绍 |
host_notification_commands host-notify-by-email
同上,主机出问题时采用的也是发邮件的方式通知联系人 |
很明显,联系的人email地址 |
pager 1338757xxxx
联系人的手机,如果支持短信的通知的话,这个就很有用了. |
alias是联系人别名,address是地址 意义不大. |
define contactgroup{
contactgroup_name sagroup
//联系人组的名称,同样不能空格
alias System Administrators //别名
members test
//组的成员,来自于上面定义的contacts.cfg,如果有多个联系人则以逗号相隔
} |
define host{
host_name nagios-server
//被监控主机的名称,最好别带空格
alias nagios server
//别名
address 192.168.0.111
//被监控主机的IP地址,我现在暂时先填本机的IP
check_command check-host-alive
//监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活
max_check_attempts 5
//检查失败后重试的次数
check_period 24x7
//检查的时间段24x7,同样来自于我们之前在timeperiods.cfg中定义的
contact_groups sagroup
//联系人组,上面在contactgroups.cfg中定义的sagroup
notification_interval 10
//提醒的间隔,每隔10秒提醒一次
notification_period 24x7
//提醒的周期, 24x7,同样来自于我们之前在timeperiods.cfg中定义的
notification_options d,u,r
//指定什么情况下提醒,具体含义见之前contacts.cfg部分的介绍
} |
define hostgroup{
hostgroup_name sa-servers //主机组名称
alias sa Servers //别名
members nagios-server
//组的成员主机,多个主机以逗号相隔,必须是上面hosts.cfg中定义的
} |
#service definition
define service{
host_name nagios-server
//被监控的主机,hosts.cfg中定义的
service_description check-host-alive
//这个监控项目的描述(也可以说是这个项目的名称),可以空格,我们这里定义的是监控这个主机是不是存活
check_command check-host-alive
//所用的命令,是commands.cfg中定义的
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
//监控的时间段,是timeperiods.cfg中定义的
notification_interval 10
notification_period 24x7
//通知的时间段, ,是timeperiods.cfg中定义的
notification_options w,u,c,r
//在监控的结果是wucr时通知联系人,具体含义看前文.
contact_groups sagroup
//联系人组,是contactgroups.cfg中定义的
} |
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check |
[root@server1 libexec]# ./check_disk -h
check_disk (nagios-plugins 1.4.9) 1.91
Copyright (c) 1999 Ethan Galstad <>
Copyright (c) 1999-2006 Nagios Plugin Development Team
This plugin checks the amount of used disk space on a mounted file system
and generates an alert if free space is less than one of the threshold values
Usage: check_disk -w limit -c limit [-p path | -x device] [-t timeout][-m] [-e] [-W limit] [-K limit] [-v] [-q] [-E]
Options:
……以下略 |
################################################################################
#
# SAMPLE HOST CHECK COMMANDS
#
################################################################################
# This command checks to see if a host is "alive" by pinging it
# The check must result in a 100% packet loss or 5 second (5000ms) round trip
# average time to produce a critical error.
# Note: Only one ICMP echo packet is sent (determined by the '-p 1' argument)
# 'check-host-alive' command definition
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
} |
# 'check_local_disk' command definition
define command{
command_name check_local_disk
command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$
} |
services.cfg定义监控项目用某个命令
↓
这个命令必须在commands.cfg中定义
↓
定义这个命令时使用了libexec下的插件 |
define service{
host_name nagios-server
要监控的机器,给出机器名,注意必须是hosts.cfg中定义的
service_description check ftp
给这个监控项目起个名字吧,任意起,你自己懂就行
check_command check_ftp
所用的命令,当然必须是commands.cfg中定义了的
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
define service{
host_name dbpi
意义同上
service_description check-ssh
意义同上
check_command check_tcp!22
ssh所用的tcp的22号端口,我就用commands中定义的check_tcp命令.至于!22的意思不用我说了吧.
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
define service{
host_name yahoon
service_description check-http
check_command check_http
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
define service{
host_name nagios-server
service_description check disk
check_command check_local_disk!10%!5%!/
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
输出如下
*** Configuration summary for nrpe 2.8.1 05-10-2007 ***:
General Options:
-------------------------
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
Nagios user: nagios
Nagios group: nagios
Review the options above for accuracy. If they look okay,
type 'make all' to compile the NRPE daemon and client.
可以看到NRPE的端口是5666,下一步是make all |
输出如下
*** Compile finished ***
If the NRPE daemon and client compiled without any errors, you
can continue with the installation or upgrade process.
Read the PDF documentation (NRPE.pdf) for information on the next
steps you should take to complete the installation or upgrade. |
输出如下
/usr/bin/install -c -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe |
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
service nrpe
{
flags = REUSE
socket_type = stream
port = 5666
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nrpe
server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1在后面增加监控主机的地址0.111,以空格间隔
} |
# Local services
nrpe 5666/tcp # nrpe |
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ] |
[root@dbpi nrpe-2.8.1]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.8.1 |
# The following examples use hardcoded command arguments...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 |
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users |
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load |
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1 |
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs |
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs |
NRPE v2.8.1 |
########################################################################
#
# 2007.9.5 add by yahoon
# NRPE COMMAND
#
########################################################################
# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
} |
command_name check_nrpe
定义命令名称为check_nrpe,在services.cfg中要使用这个名称. |
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
这是定义实际运行的插件程序.这个命令行的书写要完全按照check_nrpe这个命令的用法.不知道用法的就用check_nrpe –h查看 |
define service{
host_name dbpi
被监控的主机名,这里注意必须是linux且运行着nrpe,而且必须是hosts.cfg中定义的
service_description check-load
监控项目的名称
check_command check_nrpe!check_load
监控命令是check_nrpe,是在commands.cfg中定义的,带的参数是check_load,是在nrpe.cfg中定义的
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10% |
define service{
host_name dbpi
service_description check-swap
check_command check_nrpe!check_swap
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
vi /etc/init.d/nagios
将prefix=/usr/local/nagiosaa改为安装的目录/etc/init.d/nagios |
# Local services
#nrpe 5666/tcp # nrpe |
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
allowed_hosts=127.0.0.1,192.168.0.111
注意两个地址以逗号隔开 |
[root@localhost libexec]# ./check_disk --h Usage: check_disk -w limit -c limit {-p path | -x device} 格式:check_disk -w 低限% -c 低限% -p 磁盘设备文件或则分区文件的绝对路径 Options: 选项 -w, --warning=PERCENT% 设定告警通知百分比数,空间低于该百分比则发出告警通知。 -c, --critical=PERCENT% 设定严重告警通知百分比数,空间低于该百分比则发出严重告警通知。 -p, --path=PATH, --partition=PARTITION 指定磁盘设备文件或则分区文件的绝对路径。 #如果要监控根目录,达到80%报警,达到90%为严重危险 check_disk -w 80% -c 90% -p /dev/hda1 #-p后面接需要监控的硬盘分区,如果是SCSI硬盘就是sda1,当然此时被监控端的nrpe配置文件要进行相应的修改 |
1) 修改nagios主机上被监控主机的配置文件--主控端
define service{ use generic-service host_name IM service_description check-disk check_command check_nrpe!check_hda1 } |
2) 修改被监控主机上nrpe配置文件--被控端
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 80% -c 90% -p /dev/hda1 #监控根目录,达到80%报警,达到90%为严重危险 |
被监控机器上配置/usr/local/nagios/etc/nrpe.cfg中添加磁盘
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5
主控服务器添加
define service {
host_name 192.168.1.2
service_description home_disk
check_command check_nrpe!check_disk /dev/sda5
check_period 24x7
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
contact_groups mygroup
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
}
将 [modules]部分的所有模块前面的注释都去掉,除了CheckWMI.dll and RemoteConfiguration.dll这两个 |
在[Settings]部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码. |
将[Settings]部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP.我改为如下这样allowed_hosts=127.0.0.1/32,192.168.0.111 以逗号相隔.这个地方是支持子网的,如果写成192.168.0.0/24则表示该子网内的所有机器都可以访问.如果这个地方是空白则表示所有的主机都可以连接上来.注意是[Settings]部分的,因为[NSClient]部分也有这个选项. |
必须保证[NSClient]的'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口 |
########################################################################
#
# 2007.9.6 add by yahoon
# CHECK_NT
# check windows hosts info
#
########################################################################
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
} |
define service{
host_name yahoon
service_description check-version
check_command check_nt!CLIENTVERSION
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
} |
2007-09-06 10:38:35: error:.\PDHCollector.cpp:69: Getting counter info...
2007-09-06 10:38:35: error:.\PDHCollector.cpp:97: Detected language: 0x0804 but it could not be found in: counters.defs
2007-09-06 10:38:35: error:.\PDHCollector.cpp:98: You need to manually configure performance counters! |
[0x0804]
Description = "Chinese"
NT4_SystemTotalProcessorTime = "\System\% Total Processor Time"
NT4_SystemSystemUpTime = "\System\System Up Time"
NT4_MemoryCommitLimit = "\Memory\Commit Limit"
NT4_MemoryCommitByte = "\Memory\Committed Bytes"
W2K_SystemTotalProcessorTime = "\Processor(_total)\% Processor Time"
W2K_SystemSystemUpTime = "\System\System Up Time"
W2K_MemoryCommitLimit = "\Memory\Commit Limit"
W2K_MemoryCommitByte = "\Memory\Committed Bytes" |
2007-09-06 12:32:37: error:.\PDHCollector.cpp:69: Getting counter info...
2007-09-06 12:32:37: error:.\PDHCollector.cpp:119: Attempting to open counter...
2007-09-06 12:32:38: error:.\PDHCollector.cpp:122: Counters opend... |