5 zabbix 添加host_监控日志 2.Zabbix 监控(上)

本文详细介绍了如何在Linux环境中安装和配置Zabbix监控系统,包括Zabbix server、agent的安装,数据库连接设置,Web界面操作如添加主机、主机组和模板,以及使用Zabbix API自动化添加主机的过程。此外,还涵盖了Zabbix的主动和被动监控模式,以及网络发现功能的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

百度百科介绍:

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。


  • 安装服务端

1)安装数据库

[root@node1 ~]# yum install -y mysql-community-server...略[root@node1 ~]# systemctl start mysqld[root@node1 ~]# grep password /var/log/mysqld.log 2020-07-30T03:45:32.132025Z 1 [Note] A temporary password is generated for root@localhost: jq;M[root@node1 ~]# mysql_secure_installation...略[root@node1 ~]# mysql -u root -pEnter password:...略mysql> create database zabbix character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'Zabbix111!';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> exitBye

2)安装zabbix服务端

[root@node1 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent...略# 初始化数据库[root@node1 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.4.10/create.sql.gz | mysql -u zabbix -p zabbixEnter password:[root@node1 ~]# vim /etc/httpd/conf.d/zabbix.conf +20[root@node1 ~]# grep timezone /etc/httpd/conf.d/zabbix.conf        php_value date.timezone Asia/Shanghai[root@node1 ~]# vim /etc/zabbix/zabbix_server.conf[root@node1 ~]# cat /etc/zabbix/zabbix_server.conf...略DBHost=localhost...略DBPassword=Zabbix111!...略[root@node1 ~]# systemctl start httpd zabbix-server zabbix-agent[root@node1 ~]# systemctl enable httpd zabbix-server zabbix-agent

3)Web 页面安装

访问http://10.0.0.11/zabbix/

a5140bca7644fac24bf8d0eebb412122.png

下一步,检查前提条件

d9fb0672db7db444fa1bf07b53fb869b.png

下一步,配置数据库连接

a9bade3051ef663078b632c5ce2c35e1.png

下一步,下一步,完成

7f7b5f8a9978dffea03c5f5d59019cfd.png

登陆,默认用户名/密码:Admin/zabbix

74a379a234ba60c84ab47dc032965536.png

  • 手动添加一个客户端

Zabbix agent分为主动和被动模式,默认是被动模式,应答server的数据请求;

如果将配置文件里的StartAgents参数设置成0,就是主动模式,主动模式的agent首先从sever索取监控项列表以进行独立处理,然后会定期发送采集到的新值给server。

1)客户端安装agent

[root@node2 ~]# yum install -y zabbix-agent...略[root@node2 ~]# vim /etc/zabbix/zabbix_agentd.conf[root@node2 ~]# cat /etc/zabbix/zabbix_agentd.conf...略StartAgents=0...略Server=10.0.0.11...略ServerActive=10.0.0.11...略Hostname=node2...略[root@node2 ~]# systemctl start zabbix-agent[root@node2 ~]# systemctl enable zabbix-agent

2)Web 页面添加客户端node2

创建一个Host group

1a7402a10929e98926383020c8a2930a.png

创建一个Host

db3bbc66185528ca73909a61423ca11a.png

链接Template OS Linux by Zabbix agent active模板

a0f5e5fdfc0ddc86df748f0fdc2b249a.png

查看主机

3c665592320d999c589a2430d5d2a042.png

查看node2的有效内存图表

3c23045aad2e9890ece3b51a81e569d0.png

  • 自动化添加客户端

1)agent自动注册

以node3为例

[root@node3 ~]# yum install -y zabbix-agent...略[root@node3 ~]# vim /etc/zabbix/zabbix_agentd.conf[root@node3 ~]# cat /etc/zabbix/zabbix_agentd.conf...略Server=10.0.0.11...略ServerActive=10.0.0.11...略Hostname=node3...略HostMetadataItem=system.uname...略[root@node3 ~]# systemctl start zabbix-agent[root@node3 ~]# systemctl enable zabbix-agent

Web 页面设置

创建一个Action,注意Event source要选择Auto registration

9aad4709b7c57fa7c303e2da5ee58a09.png

7947efc26a8fe2206e3a2b9c1ce20ac9.png

添加Operations:Add host、Add to host groups、Link to templates

2261489bae82a33b1a9ddd2c110a0f0d.png

等一会就可以看到node3已经注册了

ad2b601e69cc76df59cd8590d09518d4.png

查看node3的cpu图表

9a6d7e7cd0096c21c95aa2deb6eaccaa.png

2)网络发现

首先关闭自动注册

63f8369cf42d98302d24480f7a2d5931.png

下面通过网络发现添加一台处于主动模式的客户端node4

[root@node4 ~]# yum install -y zabbix-agent...略[root@node4 ~]# vim /etc/zabbix/zabbix_agentd.conf[root@node4 ~]# cat /etc/zabbix/zabbix_agentd.conf...略Server=10.0.0.11...略ServerActive=10.0.0.11...略Hostname=node4...略HostMetadataItem=system.uname...略[root@node4 ~]# systemctl start zabbix-agent[root@node4 ~]# systemctl enable zabbix-agent

Web 页面设置

配置发现规则

473449fddcd49a3afb1f003e15c290a9.png

创建一个Action,注意Event source要选择Discovery

477adc91759d8508a76c5135c9b988ff.png

添加条件

ef60661c01d93f89b6615252518d0e24.png

添加Operations:Add host、Add to host groups、Link to templates

ae226e3245ed724952bbe867f759744b.png

等一会查看node4是否注册

0429f29af8792aa734e854c53ef85d80.png

查看node4的图表

4c9fb7f9b4fc4df11b0db7cb2792a424.png

  • 用Zabbix API 添加主机

Zabbix 的所有操作都可以通过请求API完成,这里只介绍添加主机;

关于API的用法,可以参考官网: https://www.zabbix.com/documentation/4.4/manual/api ;

以添加node4为例,

先要关闭网络发现及动作

87303b409530daeadc1970ddbd6b3716.png

1e86c6eca475be385312963baae70d7f.png

删除已经注册的node4

e4c8684e2c12a2119e6364bd857f1dcb.png

查看API版本

[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}' http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool{    "id": 1,    "jsonrpc": "2.0",    "result": "4.4.10"}

获取认证的session id,后面的请求都要带上这个id

[root@node4 ~]# vim auth.json [root@node4 ~]# cat auth.json {    "jsonrpc": "2.0",    "method": "user.login",    "params": {        "user": "Admin",        "password": "zabbix"    },    "id": 1,    "auth": null}[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d @auth.json http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool{    "id": 1,    "jsonrpc": "2.0",    "result": "7ae3bcee13a43ffb01cd22e1bfc3e91d"}

获取当前主机信息

[root@node4 ~]# vim get_hostid.json [root@node4 ~]# cat get_hostid.json {    "jsonrpc": "2.0",    "method": "host.get",    "params": {        "output": [            "hostid",            "host"        ],        "selectInterfaces": [            "interfaceid",            "ip"        ]    },    "id": 2,    "auth": "7ae3bcee13a43ffb01cd22e1bfc3e91d"}[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d @get_hostid.json http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool{    "id": 2,    "jsonrpc": "2.0",    "result": [        {            "host": "Zabbix server",            "hostid": "10084",            "interfaces": [                {                    "interfaceid": "1",                    "ip": "127.0.0.1"                }            ]        },        {            "host": "node2",            "hostid": "10318",            "interfaces": [                {                    "interfaceid": "2",                    "ip": "10.0.0.12"                }            ]        },        {            "host": "node3",            "hostid": "10319",            "interfaces": [                {                    "interfaceid": "3",                    "ip": "10.0.0.13"                }            ]        }    ]}

获取Host groups demo的ID

[root@node4 ~]# vim get_groupid.json[root@node4 ~]# cat get_groupid.json{    "jsonrpc": "2.0",    "method": "hostgroup.get",    "params": {        "output": "extend",        "filter": {            "name": [                "demo"            ]        }    },    "auth": "7ae3bcee13a43ffb01cd22e1bfc3e91d",    "id": 3}[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d @get_groupid.json http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool{    "id": 3,    "jsonrpc": "2.0",    "result": [        {            "flags": "0",            "groupid": "15",            "internal": "0",            "name": "demo"        }    ]}

获取Template OS Linux by Zabbix agent模板的ID

[root@node4 ~]# vim get_templateid.json[root@node4 ~]# cat get_templateid.json{    "jsonrpc": "2.0",    "method": "template.get",    "params": {        "output": "extend",        "filter": {            "host": [                "Template OS Linux by Zabbix agent"            ]        }    },    "auth": "7ae3bcee13a43ffb01cd22e1bfc3e91d",    "id": 4}[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d @get_templateid.json http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool | grep templateid            "templateid": "10001",

添加node4

[root@node4 ~]# vim create_host.json[root@node4 ~]# cat create_host.json{    "jsonrpc": "2.0",    "method": "host.create",    "params": {        "host": "node4",        "interfaces": [            {                "type": 1,                "main": 1,                "useip": 1,                "ip": "10.0.0.14",                "dns": "",                "port": "10050"            }        ],        "groups": [            {                "groupid": "15"            }        ],        "templates": [            {                "templateid": "10001"            }        ]    },    "auth": "7ae3bcee13a43ffb01cd22e1bfc3e91d",    "id": 5}[root@node4 ~]# curl -s -X POST -H 'Content-Type:application/json' -d @create_host.json http://10.0.0.11/zabbix/api_jsonrpc.php | python -m json.tool{    "id": 5,    "jsonrpc": "2.0",    "result": {        "hostids": [            "10321"        ]    }}

查看是否已创建

d59b9beeeb4de3fd90a3836b581d9851.png

查看其内存图表

e701613800a9c1e968aa7840d256757d.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值