Zabbix6.2:监控MySQL/MSSQL/Apache/Docker、自定义监控项、SNMP Trap、定时报表、宏、ODBC连接数据库等配置方法

  • ZABBIX SNMP自定义监控项

  1. 查询设备厂家提供的MIB参考或使用MIB Brower获取监控项的oid
  2. 通过 snmpwalk 确定 snmp agent 配置是否正确(该命令可查看某一oid索引下的多条数据项)
  3. 通过 snmpget (该命令只能查看一条oid值)获取具体的某个 oid 的数据(有时需要在snmpwalk的基础上再添加oid索引),记录 oid
  4. 在 zabbix 上建立对应的 item,interface 选择设备 snmp 接口,Key 可随意,SNMP OID 输入 oid。注意:ZABBIX中填入的oid必须是可以用snmpget获取到值的。

  • 拓扑图标签中使用宏

ZABBIX6版本宏格式:{?avg(/host/key,1h)}

例如:

DOWN:{?last(/USG6555E/net.if.out[ifHCOutOctets.5])}

UP: {?last(/USG6555E/net.if.in[ifHCInOctets.5])}

  • zabbix agent自定义监控脚本

1.修改zabbix agent配置文件,增加用户参数

#agent配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

#agent2配置文件

vim /etc/zabbix/zabbix_agent2.conf

#搜索

/UserParameter

#用户参数示例

#CPU温度(需要yum install lm_sensors)

UserParameter=get_temp_cpu[*],sensors|grep "Package id $1"|cut -c 17-20

#电源功率(需要yum install lm_sensors)

UserParameter=get_power,sensors|grep "power1: $1"|cut -c 14-19

#执行python脚本

UserParameter=get_usg_log,sudo python /home/cgyxt/workspace/code/xtmonitor/usgtest.py

#配置键值中的参数

UserParameter=cus.metrics[*],/etc/zabbix/scripts/ngx-status.sh $1

注:用户参数较多时,可在agent主配置文件中include引用外部用户自定义配置文件,将UserParameter放在自定义配置文件中:

#建立/usr/local/etc/zabbix_agent2.userparams.conf,将UserParameter放在其中

#/etc/zabbix/zabbix_agent2.conf中:Include=/usr/local/etc/zabbix_agent2.userparams.conf

2.重启zabbix agent

systemctl restart zabbix-agent2

3.zabbix中在对应的zabbix agent主机中添加监控项,键值要与agent配置文件中一致。

注:脚本执行时间超时解决方法:
修改zabbix server和agent的配置文件,设置Timeout=30

#查看配置文件信息,过滤掉注释行

egrep -v '^#|^$' /etc/zabbix/zabbix_agent2.conf

  • bash中利用zabbix_get直接获取监控项值

zabbix_get -s 127.0.0.1 -p 10050 -k "vm.memory.size[pavailable]"

#如未添加环境变量或未使用yum安装zabbix_get,

/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -k "vm.memory.size[pavailable]"

  • zabbix agent监控docker

1.#将zabbix用户加入docker组,获得docker监控权限

usermod -aG docker zabbix

#查看验证zabbix用户属组

[root@cgy ~]# groups zabbix

zabbix : zabbix docker

#测试

zabbix_get -s 127.0.0.1  -k docker.info

2.在主机中引用docker by zabbix agent2模板

  • zabbix agent监控apache

1.开启Apaches的server-status监控界面,仅允许本地访问

vim /etc/httpd/conf/httpd.conf

<Location /server-status>

         SetHandler server-status

         Allow from 127.0.0.1

         Order allow,deny

</Location>

ExtendedStatus On

2.在主机中引用Apache by Zabbix agent模板,如端口未使用默认的80,在主机配置中修改“继承以及主机宏”中的{$APACHE.STATUS.PORT}

  • zabbix agent监控mysql

1.登录要被监控的mysql, 创建监控用户

mysql -uroot -p

use mysql;

CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';

GRANT SELECT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

2.在主机中引用mysql by zabbix agent2模板,引用时在主机配置中修改“继承以及主机宏”:

{$MYSQL.DSN}:127.0.0.1

{$MYSQL.PASSWORD}:数据库密码

{$MYSQL.USER}:数据库用户,填入刚才创建的zbx_monitor

  • 修改Web平台名称

vim /var/www/html/zabbix/conf/zabbix.conf.php

$ZBX_SERVER_NAME                = 'newName';

  • zabbix通过ODBC连接MSSQL

#安装依赖(已安装忽略)

yum -y install unixODBC unixODBC-devel   #安装ODBC

yum -y install freetds                                    #安装freetds驱动,用于连接MSSQL

#查看ODBC配置文件位置

odbcinst -j

注:odbcinst.ini 用于定义已安装的ODBC数据库驱动程序;odbc.ini 用来定义数据源

#在/etc/odbcinst.ini中添加SQL Server驱动FreeTDS

vim /etc/odbcinst.ini

[FreeTDS]

Description = ODBC for SQL Server

Driver = /usr/lib64/libtdsodbc.so.0

Setup = /usr/lib64/libtdsS.so

FileUsage = 1

#查看已配置的驱动

odbcinst -q -d

#配置odbc连接信息,添加数据源

vim /etc/odbc.ini

[mssql]                       #DSN名称

Driver = FreeTDS       #驱动名称

Server = 10.16.0.16    #sql server 主机ip

Port = 1433

Database = datebasename   #  被监控sqlserver数据库

TDS_Version = 8.0

#检查数据源

odbcinst -q -s

#在被监控的SQL Server 服务器上创建用户并授权。

#在Zabbix上连接数据库测试

isql -v mssql 数据库用户名 密码

#配置完成,可通过ODBC模板或添加“数据库监控”监控项进行监控

(1)通过模板监控

(2)通过监控项查询数据

选主机–>添加监控项—>配置键值(此处有三种模式可选:select、get、discovery,根据自己需要选择,第一个参数自己命名键值,第二个填写DSN名,第三个参数可不填)—>在SQL查询里写入相应的SQL语句。

  • ODBC连接MySQL

#安装依赖(已安装忽略)

yum -y install unixODBC unixODBC-devel   #安装ODBC

yum -y install mysql-connector-odbc          #安装mysql-connector驱动,用于连接MySQL

#ODBC配置文件中添加驱动

vim /etc/odbcinst.ini

根据安装的MySQL驱动版本,将自带的MySQL驱动中的libmyodbc5.so改为libmyodbc8a.so

(也可不修改该文件,直接使用自带的[MySQL ODBC 8.0 Unicode Driver]或[MySQL ODBC 8.0 ANSI Driver]驱动

[MySQL]

Description=ODBC for MySQL

Driver=/usr/lib/libmyodbc8a.so

Setup=/usr/lib/libodbcmyS.so

Driver64=/usr/lib64/libmyodbc8a.so

Setup64=/usr/lib64/libodbcmyS.so

FileUsage=1

#添加数据源

vim /etc/odbc.ini

[my_Syslog]

Description     = Data source MySQL

Driver          = MySQL

Server          = 127.0.0.1

Host            = 127.0.0.1

Database        = Syslog

Port            = 3306

User            = zbx_monior

Password        =  <password>

CHARSET         = UTF8

#在Zabbix上连接数据库测试

isql -v my_Syslog 数据库用户名 密码

注:在数据源中已配置密码,可以直接用DSN名称连接:isql -v my_Syslog

  • 使用SNMP Trap实现设备告警主动上报

#安装依赖

yum install -y net-snmp net-snmp-libs net-snmp-utils net-snmp-perl mrtg snmptt

方法一:使用zabbix自带的Perl脚本接收SNMP Trap

#在源码目录中复制 Perl 的脚本并赋予执行权限

find / -name zabbix_trap_receiver.pl

cp /home/cgyxt/workspace/zabbix/zabbix-6.2.6/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin

chmod a+x /usr/bin/zabbix_trap_receiver.pl

#修改snmptrapd配置文件

find / -name snmptrapd.conf

vim /etc/snmp/snmptrapd.conf

authCommunity   log,execute,net <snmp团体名>

perl do "/usr/bin/zabbix_trap_receiver.pl"

#修改Zabbix-server配置文件

vim /usr/local/zabbix/etc/zabbix_server.conf

StartSNMPTrapper=1                             #开启SNMPTrapper功能

SNMPTrapperFile=/tmp/zabbix_traps.tmp     #指定trap获取的日志文件,该路径必须跟zabbix_trap_receiver.pl脚本中设置的路径相同

#启动服务

systemctl enable snmptrapd

systemctl start snmptrapd

systemctl restart zabbix-server

#防火墙开放UDP162端口,Zabbix上配置SNMP Trap类型监控项

方法二:使用snmptt接收SNMP Trap

#修改snmptrapd配置文件

vim /etc/snmp/snmptrapd.conf

authCommunity   log,execute,net <snmp团体名>

traphandle default /usr/sbin/snmptthandler

#snmptt.ini配置修改

[root@Server ~]# vim /etc/snmp/snmptt.ini

date_time_format=  %Y/%m/%d %H:%M:%S      #配置snmptt日志时间格式 

mode = daemon                             #nmptt运行模式

net_snmp_perl_enable = 1

translate_log_trap_oid = 2                #0:显示数字OID,1:显示OID名称,2:显示OID模块名称和其名称

log_file = /var/log/snmptt/snmptt.log     #指定传输的日志文件

snmptt_conf_files = <<END

/etc/snmp/snmptt.conf         #默认格式化日志配置文件

/etc/snmp/cisco.conf          #添加其他的格式化trap日志的配置文件

END

#修改snmptt配置文件,自定义snmptrap格式化规则

vim /etc/snmp/snmptt.conf

# 默认规则,没有其他规则匹配上时,所有trap信息都按此规则处理

EVENT general .* "General event" Normal

FORMAT ZBXTRAP $aA $1

#修改Zabbix-server配置文件

vim /usr/local/zabbix/etc/zabbix_server.conf

StartSNMPTrapper=1                             #开启SNMPTrapper功能

SNMPTrapperFile=/var/log/snmptt/snmptt.log      #指定trap获取的日志文件

SNMPTrapFile文件创建

touch /var/log/snmptt/snmptt.log

chown snmptt:snmptt /var/log/snmptt/snmptt.log

#启动服务

systemctl enable snmptrapd

systemctl start snmptrapd

systemctl enable snmptt.service

systemctl start snmptt.service

systemctl restart zabbix-server

#防火墙开放UDP 162端口,Zabbix上配置SNMP Trap类型监控项

  • 使用Zabbix计划报表定时发送仪表盘PDF至邮箱

#修改zabbix server配置文件

StartReportWriters=1

WebServiceURL=http://localhost:10053/report

#启动zabbix_web_service(临时启动)

zabbix_web_service -c /usr/local/zabbix/etc/zabbix_web_service.conf

#创建守护文件(用于开机自启)

vim /lib/systemd/system/zabbix-web-service.service

[Unit]

Description=Zabbix Web Service

After=syslog.target

After=network.target

[Service]

Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_web_service.conf"

#EnvironmentFile=-/usr/local/zabbix/sbin/zabbix_web_service

Type=forking

Restart=on-failure

PIDFile=/tmp/zabbix_web_service.pid

KillMode=control-group

ExecStart=/usr/local/zabbix/sbin/zabbix_web_service -c $CONFFILE

ExecStop=/bin/kill -SIGTERM $MAINPID

RestartSec=10s

[Install]

WantedBy=multi-user.target

chmod 754 /lib/systemd/system/zabbix-web-service.service

#启动服务

systemctl start zabbix-web-service.service

systemctl enable zabbix-web-service.service

#在Web页面报表>计划报表中创建并测试计划报表

猜你喜欢

转载自blog.csdn.net/N71FS1/article/details/130049362
今日推荐