第六章
- 6.15 SSH Agent
-
- Password方式
- 密钥方式
- 6.16 JMX Agent
- 6.17 IPMI Agent
- 6.18 Database monitor
6.16和6.17 稍微提一下。 重点关注 6.15和6.18
6.15 SSH Agent
通过SSH连接被监控设备,并且执行命令或者脚本来获取监控数据
(只要是支持ssh的设备就可以使用这个方式获取数据)
前提条件
zabbix-server端
- zabbix server 安装时需要支持ssh
- 验证到被监控设备的ssh登陆
- 添加ssh agent监控
数据收集流程
语法
Password方式
第一步:确认是否安装SSH
在客户端:
#mkdir /home/zabbix
#chown zabbix:zabbix /home/zabbix/
#chmod 700 /home/zabbix/
#usermod -s /bin/bash zabbix //修改用户登入后所使用的shell
#passwd zabbix
#usermod -m -d /home/zabbix zabbix //修改用户登入时的目录
在服务端:
查看从Server端到被监控的Agent端,SSH的登录情况
#ssh [email protected]
第二步:在Web前端增加SSH的监控项
结果:
密钥方式
第一步:确认zabbix
在服务端:
#mkdir /home/zabbix
#chown zabbix:zabbix /home/zabbix/
#chmod 700 /home/zabbix/
#usermod -s /bin/bash zabbix //修改用户登入后所使用的shell
#passwd zabbix
#usermod -m -d /home/zabbix zabbix //修改用户登入时的目录
第二步:创建密钥
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
SSHKeyLocation=/home/zabbix/.ssh
[root@localhost ~]# systemctl restart zabbix-server.service
创建RSA登录的key
使用如下命令生产SSH密钥:
[root@localhost zabbix]# mkdir -p /home/zabbix/.ssh
[root@localhost zabbix]# chown zabbix:zabbix -R /home/zabbix/
[root@localhost zabbix]# sudo -u zabbix ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/var/lib/zabbix/.ssh/id_rsa): /home/zabbix/.ssh/id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zabbix/.ssh/id_rsa.
Your public key has been saved in /home/zabbix/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:/+vkeeKEJye+v+q0Th5x1NZMClQyLo3clCJWVc2Jm7Q [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| ..oB++oo|
| o..*.B *o|
| . .+.* B o|
| o E |
| S . . |
| . + |
| O = |
| = %... |
| oO*X= |
+----[SHA256]-----+
[root@localhost zabbix]# ls -l /home/zabbix/.ssh
总用量 8
-rw------- 1 zabbix zabbix 1675 5月 27 23:06 id_rsa
-rw-r--r-- 1 zabbix zabbix 410 5月 27 23:06 id_rsa.pub
传输公钥
[root@localhost zabbix]# sudo -u zabbix ssh-copy-id [email protected]
ssh秘钥分发错误“/usr/bin/ssh-copy-id: ERROR: No identities found”
因为 要分发的秘钥/root/.ssh/id_dsa.pub,根本不存在,才会提示这个错误,于是使用ssh-keygen -t dsa 生成公钥后即可。
[root@localhost zabbix]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fWFwTMnKD/frL+yYe4l108v9ddIUbWqnFZXk9fdjCmQ [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| .+o...+|
| o+ ..=|
| . Eo +=|
| .*... o=|
| S .=..oo*|
| .o.=B+|
| =++B|
| .o*++|
| +=oo+|
+----[SHA256]-----+
[root@localhost zabbix]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.
测试目标机器能否免密码访问,使用如下命令:
sudo -u zabbix ssh [email protected] ‘ifconfig’
6.16 JMX Agent
JMX java管理扩展
前提条件
zabbix-server
- zabbix server安装时需要启用JAVA Gateway
- zabbix server 配置启动JAVA Gateway
- zabbix server 配置JAVA Gateway/JAVA GatewayPort参数
- zabbix server配置Start JavaPollers参数
- 保障zabbix server和JMX 应用的IP+Port通信
被监控设备
- 开启并正确配置JMX
数据收集流程
语法
jmx[object_name,attribute_name]
jmx.discovery[,]
attribute模式
{#JMXVALUE}
{#JMXTYPE}
{#JMXOBJ}
{#JMXDESC}
{#JMXATTR}
beans模式
{#JMXDOMAIN}
{#JMXOBJ}
{#JMX<key property>}
在zabbix server上 拿本机演示
yum install zabbix-java-gateway -y
修改zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=5
JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
启动服务
systemctl start zabbix-java-gateway.service
修改zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5
重启zabbix-server
web界面找到zabbix server
添加JMX interfaces
添加jmx模板
可以在监控的最新数据中 查看监控数据
用jconsole查看
在agent上部署一个tomcat 来监控
修改tomcat的catalina.sh添加(也可以启用认证)
CATALINA_OPTS="
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=18080
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
"
启动tomcat
在web界面添加端口监听
…略,以后用到再补充
6.17 IPMI Agent
硬件设备的监控一般都可以通过SNMP和IPMI实现
IMPI(智能平台管理接口)是独立于系统的,只要系统是通电的,就可以实现对服务器的管理和监控(物理状态,温度,电压,电源等等)。
前提条件
zabbix-server
- zabbix-server 安装时需要支持IPMI
- zabbix-server配置StartIPMIPollers参数
- 验证访问被监控设备的IPMI设置
被监控设备 开始并正确配置IPMI
数据收集流程
Zabbix Server
[[email protected] ~]# tail -n 500 /var/log/zabbix/zabbix_server.log
配置StartIPMIPollers参数
[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf
tartIPMIPollers=5
[[email protected] ~]# systemctl restart zabbix-server.service
安装 ipmi 命令
[[email protected] ~]# which ipmi
[[email protected] ~]# yum search ipmi
[r[email protected] ~]# yum -y install ipmitool OpenIPMI OpenIPMI-libs
接下来登录服务器的iDrac管理页面开启戴尔服务器的IPMI服务器支持,以及配置对应的Zabbix 监控用户相应的权限
配置一个zabbix用户
在zabbix-server上执行命令 测试获取数据,看是否能获取
ipmitool -I lanplus -H 192.168.93.148 -U zabbix -P zabbix -L user sensor list
ipmitool -I lanplus -H 192.168.93.148 -U zabbix -P zabbix -L user sensor get “Fan1”
web界面配置
1.创建主机
2.创建监控项
Key是自定义的,保证唯一即可
6.18 Database monitor
Uninx ODBC支持常见的数据库系统:MySQL、SQL Server、Oracle、MongoDB
前提条件
zabbix-server
- zabbix server安装时需要启用unuxODBC
- zabbix server安装和配置unixODBC
- zabbix server配置对应的ODBC Driver
- 保障zabbix server和数据库的IP+Port通信
被监控设备
- 数据库配置正确的账号和权限
数据库监控收集流程
语法
zabbix server上安装ODBC
yum search ODBC
yum install unixODBC unixODBC-devel
yum search odbc
yum install mysql-connector-odbc
[root@localhost ~]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
配置数据库连接
#vim /etc/odbc.ini
[zabbix]
Decription= MySQL zabbix DB
Driver = mysql
Server = localhost
User = zabbix
Password = zabbix@findsec123
Port = 3306
Database = zabbix
isql测试数据源的连接情况
[root@localhost ~]# isql zabbix
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
1.创建监控项
以select count(*) from users; 来监控数据库用户数量
Key的第二个参数 dsn是上面配置数据库连接的 【zabbix】的zabbix
2.验证结果
到这里为止,数据收集的基本概念和配置管理大致完成,还剩下三个管理小功能,在已有的监控项基础之上进行一些数值处理。