目录
网站可用性与监控范畴
网站可用性
监控范畴
zabbix简介与概念
zabbix的环境搭建:LNMP
zabbix 服务端
Zabbix 中文乱码问题
监控一台客户端主机
自动发现,自动注册,被动模式,主动模式(对agent2来说)
分布式监控
SNMP监控
使用范围
安装snmp程序
配置snmp程序
测试snmp
在web界面进行配置
附录
监控硬件设备
脚本的使用
学习心得
通过zabbix-proxy自动注册的客户端
在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天 2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天 3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。 4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。 5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。 6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
一、zabbix简介
1、zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让运维人员能够快速定位。
2、zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。
被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。
server端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。
3、运行环境
zabbix server 需要运行在LAMP或者是LNMP的环境下;
agent可以部署在目前常见的OS中,例如linux,windows,HPUX,Solaris,Sun;
SNMP可以支持常见的网络设备。
官方给出了zabbix根据不同环境与平台所需要的硬件需求:
二、zabbix构成
zabbix主要由以下5个组件构成:
1、Server
zabbix server是zabbix的核心组件,server内部存储了所有的配置信息、统计信息和操作信息。zabbix agent会向zabbix server报告可用性、完整性及其他统计信息。
2、web页面
web页面也是zabbix的一部分,通常和zabbix server位于一台物理设备上,但是在特殊情况下也可以分开配置。web页面主要提供了直观的监控信息,以方便运维人员监控管理。
3、数据库
zabbix数据库内存储了配置信息、统计信息等zabbix的相关内容。
4、proxy
zabbix proxy可以根据具体生产环境进行采用或者放弃。如果使用了zabbix proxy,则其会替代zabbix server采集数据信息,可以很好的分担zabbix server的负载。zabbix proxy通常运用与架构过大、zabbix server负载过重,或者是企业设备跨机房、跨网段、zabbix server无法与zabbix agent直接通信的场景。
5、Agent
zabbix agent通常部署在被监控目标上,用于主动监控本地资源和应用程序,并将监控的数据发送给zabbix server。
三、zabbix监控对象
zabbix支持监控各种系统平台,包括Linux和Windows等主流操作系统,也可以借助SNMP或者是SSH协议监控路由交换设备。
zabbix如果部署在服务器上,可以监控其CPU、内存、网络性能等硬件参数,也可以监控具体的服务或者应用程序、服务运行情况及性能。
硬件监控:Zabbix IPMI Interface ,通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压、温度、风扇状态、电源状态等。
系统监控:Zabbix Agent Interface ,通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式。
Java监控:Zabbix JMX Interface ,通过JMX进行监控,JMX(java management extensions,即java管理扩展),监控JVM虚拟机时,使用这种方法是非常不错的选择。
网络设备监控:Zabbix SNMP Interface ,通过SNMP协议与被监控对象进行通信,SNMP协议的全称为simple network management protocol,被译为简单网络管理协议,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件都支持SNMP协议。
应用服务监控:Zabbix Agent UserParameter
MySQL数据库监控:percona-monitoring-plulgins
URL监控:Zabbix Web 监控
四、zabbix常用术语
zabbix的学习需要掌握一些zabbix的常用术语,zabbix常用术语列举如下:
1、主机(host)
要监控的设备,可以由IP或者是主机名(必须可解析)指定。
2、主机组(host group)
主机的逻辑容器,包含主机和模板,主机组通常在给用户或者是用户组指派监控权限时使用。
3、监控项(item)
一个特定监控指标的相关数据,比如内存的大小、CPU的使用率,甚至是服务的运行状态等等。监控项数据来源于被监控对象,并且每个监控项都由一个key来标识。
4、触发器(trigger)
一个表达式,用于评估监控项的值是否在合理的范围内。当接收的值超出触发器的规定时,就被认为是故障,如果超出后再次符合,就被认为是正常。
5、事件(event)
触发器触发的一个特定事件,或者是zabbix定义的一个自动上线注册主机的事件。
6、动作(action)
指根据配置,zabbix对于触发器触发的特定事件进行处理的具体措施,如执行某个脚本,或者是向管理员邮箱发送邮件等等。
7、报警升级(escalation)
发送警报或者是执行远程命令的自定义方案。
8、媒介(media)
发送通知(告警)的手段,如微信、邮件、钉钉等等。
9、通知(notification)
通过指定的媒介,向用户发送的有关事件的信息。
10、远程命令(remote command)
指运维人员提前写好的命令,可以让被监控主机在触发事件后执行。
11、模板(template)
用于快速定义被监控主机的预设条目集合,通常包括了监控项、触发器、应用等,模板可以直接链接至某个主机。
12、应用(application)
一组监控项的集合。
13、web场景(web scennario)
用于检测web站点可用性的一个或多个HTTP请求。
14、前端(frontend)
zabbix的web接口
安装nginx1.22
#检查软件安装情况
[root@zabbix-proxy ~]# rpm -qa|grep -e mysqld -e mariadb -e php -e nginx -e zabbix
rpm -e `rpm -qa|grep nginx` --nodeps
rm -f /etc/yum.repos.d/*
[root@m03 ~]# cat >/etc/yum.repos.d/nginx.repo<<'EOF' #EOF加单引号可以让$releasever/$basearch/保持不变
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
[root@m03 ~]# yum install nginx --enablerepo=nginx-stable -y
[root@m03 ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak
[root@m03 ~]# cat >/etc/nginx/conf.d/zbx.oldboylinux.cn.conf<<'EOF' #动态请求转发php的配置
server {
server_name localhost;
listen 80;
root /data/blog;
index index.php index.html;
location ~ \.php$ {
#root /data/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
EOF
[root@m03 ~]# nginx -t
[root@m03 ~]# systemctl start nginx&&systemctl enable nginx
安装php7.2
rpm -e `rpm -qa|grep webtatic` --nodeps
rpm -e `rpm -qa|grep php` --nodeps
curl -s -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
##配置安装源
yum install epel-release -y #此源可以下载webtatic源的rpm包
wget https://mirror.webtatic.com/yum/el7/webtatic-release.rpm --no-check-certificate #下载webtatic-release.rpm包
rpm -Uvh webtatic-release.rpm #安装源-webtatic.repo,webtatic源可以下载新的php软件包
yum install php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd -y
###rpm -qa |egrep 'nginx|php72w'
###php配置 修改php用户和准备php会话保持目录
[root@m03 ~]# sed -nr '/^(user|group)/p' /etc/php-fpm.d/www.conf #查看配置
user = apache
group = apache
[root@m03 ~]# sed -ri '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf #r选项使用扩展正则表达式
[root@m03 ~]# egrep '^(user|group)' /etc/php-fpm.d/www.conf #egrep=grep -E可以使用扩展正则表达式
user = nginx
group = nginx
[root@m03 ~]# grep 'var/lib/php/session' /etc/php-fpm.d/www.conf
php_value[session.save_path] = /var/lib/php/session
[root@m03 ~]# mkdir -p /var/lib/php/session
[root@m03 ~]# chown nginx.nginx /var/lib/php/session
[root@m03 ~]# php-fpm -t
[19-Oct-2022 05:24:01] NOTICE: configuration file /etc/php-fpm.conf test is successful
[root@oldboy ~]# systemctl start php-fpm.service&&systemctl enable php-fpm.service
[root@oldboy ~]# mkdir /data/blog -p
[root@oldboy ~]# cat>/data/blog/phpinfo.php<
?>
EOF
[root@oldboy ~]# chown -R nginx. /data/blog/
安装nginx与php的脚本 #脚本内内联重定向需要对$进行转义,否则重定向的是变量的值,非变量本身
rpm -e `rpm -qa|grep nginx` --nodeps
rm -f /etc/yum.repos.d/*
cat>/etc/yum.repos.d/nginx.repo</etc/nginx/conf.d/zbx.oldboylinux.cn.conf</data/blog/phpinfo.php<
EOF
chown -R nginx. /data/blog/
#EPEL到底是什么,为何经常要安装epel-release软件包
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额
外的软件包,适用于RHEL、CentOS和Scientific Linux.
我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,很多
时候需要自己编译很痛苦,而EPEL恰恰可以解决这两方面的问题。EPEL的全称叫 Extra Packages for
Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux
等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。
安装数据库 ##安装mariadb且使用安全策略
[root@m03 ~]# rpm -e `rpm -qa|grep mysql` --nodeps&&rm -rf /var/lib/mysql/
[root@m03 ~]# yum install -y mariadb-server
[root@m03 ~]# systemctl start mariadb.service&&systemctl enable mariadb
[root@localhost ~]# mysql_secure_installation #数据库初始化
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): ##初始密码为空
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
#创建zabbix数据库与登录账号
[root@m03 ~]# mysql -uroot -p<
grant all on zabbix.* to 'zabbix'@'localhost' identified by '1' ;
EOF
编写数据库连接测试文件:
[root@localhost blog]# cat >/data/blog/mysqli.php<<'EOF'
//$link_id=mysqli_connect('主机名','用户','密码');
$link_id=mysqli_connect('localhost','zabbix','1') or
mysqli_error();
if($link_id){
echo "mysql successful by oldboy !";
}else{
echo mysqli_error();
}
//这是php单行注释
?>
EOF
#安装zabbix yum源
来源于:清华大学开源软件镜像站 | Tsinghua Open Source Mirror
#zabbix-release.....rpm zabbix yum源的配置文件
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
CentOS-Base.repo epel.repo nginx.repo webtatic-archive.repo webtatic.repo webtatic-testing.repo
[root@localhost yum.repos.d]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@localhost yum.repos.d]# ls /etc/yum.repos.d/
CentOS-Base.repo epel.repo nginx.repo webtatic-archive.repo webtatic.repo webtatic-testing.repo zabbix.repo
[root@localhost yum.repos.d]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo #国外源替换为清华源
# 安装 zabbix-server
[root@m03 ~]# yum install -y zabbix-server-mysql zabbix-agent2 #安装server与agent2包
# zabbix 数据库导入数据
[root@m03 ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.28/create.sql.gz|mysql -uzabbix -p1 zabbix
# zabbix 服务端 配置连接数据库
[root@m03 ~]# vim /etc/zabbix/zabbix_server.conf #修改
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
[root@m03 ~]# grep -n '^DB' /etc/zabbix/zabbix_server.conf
92:DBHost=localhost
101:DBName=zabbix
117:DBUser=zabbix
126:DBPassword=1
#修改后 zabbix 服务端开启的功能 (不用修改)
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
#启动 zabbix-server
[root@m03 ~]# systemctl start zabbix-server.service&&systemctl enable zabbix-server.service
[root@m03 ~]# [root@m03 ~]# ss -lntup |grep zabbix
zabbix前端页面准备
##现有源epel安装的zabbix-web为4.0版本,无法使用
[root@localhost zabbix]# yum list|grep zabbix
fping.x86_64 3.16-1.el7 @zabbix-non-supported
zabbix-agent2.x86_64 5.0.28-1.el7 @zabbix
zabbix-release.noarch 5.0-1.el7 installed
zabbix-server-mysql.x86_64 5.0.28-1.el7 @zabbix
zabbix40.x86_64 4.0.39-1.el7 @epel
zabbix40-web.noarch 4.0.39-1.el7 @epel
zabbix40-web-mysql.noarch 4.0.39-1.el7 @epel
iksemel.x86_64 1.4-2.el7.centos zabbix-non-supported
iksemel-devel.x86_64 1.4-2.el7.centos zabbix-non-supported
iksemel-utils.x86_64 1.4-2.el7.centos zabbix-non-supported
pcp-export-pcp2zabbix.x86_64 4.3.2-13.el7_9 updates
pcp-export-zabbix-agent.x86_64 4.3.2-13.el7_9 updates
python-pyzabbix.noarch 0.7.3-2.el7 epel
python2-zabbix-api-erigones.noarch 1.2.4-3.el7 epel
python36-zabbix-api-erigones.noarch 1.2.4-3.el7 epel
uwsgi-stats-pusher-zabbix.x86_64 2.0.18-8.el7 epel
zabbix-agent.x86_64 5.0.28-1.el7 zabbix
zabbix-get.x86_64 5.0.28-1.el7 zabbix
zabbix-java-gateway.x86_64 5.0.28-1.el7 zabbix
zabbix-js.x86_64 5.0.28-1.el7 zabbix
zabbix-proxy-mysql.x86_64 5.0.28-1.el7 zabbix
zabbix-proxy-pgsql.x86_64 5.0.28-1.el7 zabbix
zabbix-proxy-sqlite3.x86_64 5.0.28-1.el7 zabbix
zabbix-sender.x86_64 5.0.28-1.el7 zabbix
zabbix-server-pgsql.x86_64 5.0.28-1.el7 zabbix
zabbix40-agent.x86_64 4.0.39-1.el7 epel
zabbix40-dbfiles-mysql.noarch 4.0.39-1.el7 epel
zabbix40-dbfiles-pgsql.noarch 4.0.39-1.el7 epel
zabbix40-dbfiles-sqlite3.noarch 4.0.39-1.el7 epel
zabbix40-proxy.noarch 4.0.39-1.el7 epel
zabbix40-proxy-mysql.x86_64 4.0.39-1.el7 epel
zabbix40-proxy-pgsql.x86_64 4.0.39-1.el7 epel
zabbix40-proxy-sqlite3.x86_64 4.0.39-1.el7 epel
zabbix40-selinux.noarch 4.0.39-1.el7 epel
zabbix40-server.noarch 4.0.39-1.el7 epel
zabbix40-server-mysql.x86_64 4.0.39-1.el7 epel
zabbix40-server-pgsql.x86_64 4.0.39-1.el7 epel
zabbix40-web-pgsql.noarch 4.0.39-1.el7 epel
zabbix50.x86_64 5.0.21-1.el7 epel
zabbix50-agent.x86_64 5.0.21-1.el7 epel
zabbix50-dbfiles-mysql.noarch 5.0.21-1.el7 epel
zabbix50-dbfiles-pgsql.noarch 5.0.21-1.el7 epel
zabbix50-dbfiles-sqlite3.noarch 5.0.21-1.el7 epel
zabbix50-proxy.noarch 5.0.21-1.el7 epel
zabbix50-proxy-mysql.x86_64 5.0.21-1.el7 epel
zabbix50-proxy-pgsql.x86_64 5.0.21-1.el7 epel
zabbix50-proxy-sqlite3.x86_64 5.0.21-1.el7 epel
zabbix50-selinux.noarch 5.0.21-1.el7 epel
zabbix50-server.noarch 5.0.21-1.el7 epel
zabbix50-server-mysql.x86_64 5.0.21-1.el7 epel
zabbix50-server-pgsql.x86_64 5.0.21-1.el7 epel
#web页面安装如下
[root@localhost ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Retrieving https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
error: Failed dependencies:
dejavu-sans-fonts is needed by zabbix-web-5.0.0-1.el7.noarch #需要先安装字体
[root@localhost ~]# yum install dejavu-sans-fonts -y
[root@localhost ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Retrieving https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zabbix-web-5.0.0-1.el7 ################################# [100%]
[root@localhost ~]# rpm -ql zabbix-web-5.0.0-1.el7.noarch.rpm
package zabbix-web-5.0.0-1.el7.noarch.rpm is not installed
[root@localhost ~]# rpm -qa|grep zabbix-web
zabbix-web-5.0.0-1.el7.noarch
[root@localhost ~]# rpm -ql zabbix-web-5.0.0-1.el7.noarch#软件包和安装软件的rpm包是二个概念
/usr/share/zabbix/report2.php
/usr/share/zabbix/report4.php
/usr/share/zabbix/robots.txt
.............................................
[root@localhost ~]# cp -r /usr/share/zabbix/ /data/blog/ #zabbix前端页面
安装zabbix(zabbix 前端页面连接数据库与zabbix-server)
#php需要的配置
Minimum required size of PHP post is 16M (configuration option "post_max_size").
Minimum required limit on execution time of PHP scripts is 300 (configuration
option "max_execution_time").
Minimum required limit on input parse time for PHP scripts is 300 (configuration
option "max_input_time").
Time zone for PHP is not set (configuration parameter "date.timezone").
post_max_size 16M
max_execution_time 300
max_input_time 300
date.timezone
[root@m03 ~]# egrep -n '^(max_|date.timezone|post_max)' /etc/php.ini #最后的配置
368:max_execution_time = 300
378:max_input_time = 600
656:post_max_size = 80M
802:max_file_uploads = 20
877:date.timezone = Asia/Shanghai
[root@m03 ~]# systemctl reload php-fpm.service
###########################php databases support报错的解决办法####################安装依赖问题,网上很多解决办法是:
yum install -y php-mysql.x86_64
但是我的服务器会报(每台机子配置不同会有差异):
Error: php72w-common conflicts with php-common-5.4.16-48.el7.x86_64
这是因为之前 yum php72w_x86_64 安装的。所以后面这样装就会报错了。
必须用:
yum install -y php72w-mysql
安装成功后重启php和nginx服务即可。
systemctl restart nginx php-fpm
############################################################################
#web端添加zabbix-server主机
温馨提示:主机名称部分要填写客户端主机名或ip,如果是主机名主机名要能解析
此时ZBX为红色,利用agent来监控zabbix-server主机,即运行zabbix-agent2服务,此后变成绿色
[root@zabbix-server ~]# systemctl enable --now zabbix-agent2.service
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@zabbix-server ~]# systemctl list-unit-files|grep zabbix #zabbix-server运行的服务
zabbix-agent2.service enabled
zabbix-server.service enabled
#############################################################################
需要运行zabbix-agent2后问题解决,服务端对本机的监控也是使用的agent2
[root@localhost web]# systemctl start zabbix-agent2.service
#############################################################################
解决zabbix默认图形乱码问题,修改zabbix字体
安装字体
[root@localhost ~]# yum install wqy-microhei-fonts -y
复制字体 # \cp表示使用原生的cp命令,而不是别名的cp命令
[root@localhost ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
[root@localhost ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
1.Zabbix agent vs agent2
在任何一台服务器上面安装zabbix-agent zabbix-agent2
zabbix agent | zabbix agent2 | |
开发语言 | C语言 | Go语言,和C语言 |
性能 | 独立进程方式运行 | 1个进程多线程技术运行, 减少资源消耗占用较少tcp资源,能够承受更高并发 |
2.Zabbix Agent[2]监控流程
Linux安装与配置客户端
web添加与配置主机
Linux:在客户端安装zabbix-agent2(rpm)
LInux:修改配置文件 指定Server为zabbix服务端
web页面:配置-->主机中==添加主机与关联模板==
web页面:添加后检测与检查数据
1) 补充:zabbix服务端与客户端配置详解
#zabbix 服务端 说明
[root@m03 ~]# rpm -qa |grep zabbix
zabbix-release-5.0-1.el7.noarch #zabbix yum源软件包
zabbix-server-mysql-5.0.13-1.el7.x86_64 #server
zabbix-agent2-5.0.13-1.el7.x86_64 #agent2
#zabbix服务端
[root@m03 ~]# rpm -ql zabbix-server-mysql
/etc/logrotate.d/zabbix-server #日志切割
/etc/zabbix/zabbix_server.conf #zabbix服务端配置文件
/usr/lib/systemd/system/zabbix-server.service #systemctl start/stop/restart调用配置文件
/usr/lib/tmpfiles.d/zabbix-server.conf #备份
/usr/lib/zabbix/alertscripts #报警使用的脚本 存放处
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_server_mysql #zabbix 服务端命令
/usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz #zabbix 建表语句
/usr/share/doc/zabbix-server-mysql-5.0.13/double.sql
/usr/share/man/man8/zabbix_server.8.gz #帮助文件
/var/log/zabbix #日志文件
/var/run/zabbix #pid文件存放
#zabbix_server.conf
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log #日志文件
LogFileSize=0 #日志文件大小 0不限制大小
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
##连接数据库部分 zabbix server 连接的数据库
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=123456
#
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log #SNMP相关日志
Timeout=4 #超时时间
AlertScriptsPath=/usr/lib/zabbix/alertscripts #告警脚本的路径
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000 #慢查询日志 超过3000毫秒 select
/show
StatsAllowedIP=127.0.0.1 #谁可以查看服务端状态
zabbix-server配置文件详细传送门:1 Zabbix server
#zabbix-客户端配置文件详解
[root@m03 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1 #zabbix 服务端ip地址
ServerActive=127.0.0.1 #zabbix 客户端主动模式的服务端ip地址
Hostname=Zabbix server #客户端主机名 暂时不改
Include=/etc/zabbix/zabbix_agent2.d/*.conf #类似于nginx incloude功能
ControlSocket=/tmp/agent.sock
监控客户端
# 1. 在192.168.220.128主机安装客户端agent2
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent2-5.0.0-1.el7.x86_64.rpm
# 2.修改客户端配置
[root@web01 ~]# grep ^Server= /etc/zabbix/zabbix_agent2.conf
Server=192.168.220.118
# 3. 启动
[root@web01 ~]# systemctl enable zabbix-agent2.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbixagent2.
[root@web01 ~]# systemctl start zabbix-agent2.service
# 4. 检查
[root@web01 ~]# ss -lntup |grep 10050
tcp LISTEN 0 128 [::]:10050 [::]:* users:(("zabbix_agent2",pid=1919,fd=6))
[root@web01 ~]# ps -ef |grep zabbix
zabbix 1919 1 0 02:23 ? 00:00:06 /usr/sbin/zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf
root 2361 1807 0 04:30 pts/0 00:00:00 grep --color=auto zabbix
[root@web01 ~]# telnet 192.168.220.118 10051
Trying 192.168.220.118...
Connected to 192.168.220.118.
Escape character is '^]'.
Connection closed by foreign host.
#############################################################################
zabbix-agent2配置:来源于chaoge视频
对时
yum install ntpdate -y
ntpdate cn.pool.ntp.org #cn.pool.ntp.org是中国NTP服务器
时区的统一配置
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#设置开机自启动并现在start,等同于systemctl start 服务名&&systemctl enable 服务名
systemctl enable --now 服务名
grep -Ev '^#|^$' /etc/zabbix/zabbix-agent2.conf #E使用扩展正则表达式,v匹配的不显示
查看主机名
[root@localhost ~]# hostname
localhost.localdomain
设置主机名#hostnamectl set-hostname 主机名
[root@localhost ~]# hostnamectl set-hostname zbx-agent04
#############################################################################
调试命令
zabbix_get命令是在server端(192.168.220.118)用来检查agent端(192.168.220.128)的一个命令,在添加完主机或者触发器后,不能正常获得数据,可以用zabbix_get来检查能否采集到数据,以便判断问题症结所在
[root@localhost ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-get-5.0.0-1.el7.x86_64.rpm
[root@localhost ~]# zabbix_agent2 -p| grep system.cpu.load
system.cpu.load[all,avg1] [s|0.000000]
[root@localhost ~]# zabbix_get -s 192.168.220.128 -p 10050 -k "system.cpu.load[all,avg1]"
0.020000
You have new mail in /var/spool/mail/root
[root@localhost ~]# zabbix_get -s 192.168.220.128 -k system.hostname
localhost.localdomain
zabbix创建自定义key
被监控主机192.168.220.128修改配置文件
##Format: UserParameter=,
[root@localhost ~]# cat /etc/zabbix/zabbix_agent2.d/log_user.conf
#UserParameter=key,cmd
#UserParameter=check.ngx,sh /server/scripts/xxx.sh
UserParameter=log.user,who|wc -l
[root@localhost ~]# systemctl restart zabbix-agent2.service
zabbix-agent2(192.168.220.128)客户机上测试 #客户端本地测试键值
[root@zabbix-agent2 ~]# zabbix_agent2 -t 'log.user'
log.user [s|3] #s表示类型 文字,3表示结果 键值的结果
zabbix-server192.168.220.118上测试
[root@localhost ~]# zabbix_get -s 192.168.220.128 -p 10050 -k log.user
3
#自定义带参数key(此处展示一个参数,多参数见自动化运维-全链路全架构无死角监控落地.pdf
[root@zabbix-server ~]# cat /etc/zabbix/zabbix_agent2.d/Custom_Key_Value.conf
UserParameter=log.user,who|wc -l
UserParameter=login_user_check[*],lastlog|grep -w "$1"|awk '{print $$3}'
#如果使用自定义键值传参,awk取列的时候要使用$$列。如果没有传参,awk正常使用即可
[root@zabbix-server ~]# systemctl restart zabbix-agent2.service
[root@zabbix-server ~]# zabbix_agent2 -t 'login_user_check[root]'
login_user_check[root] [s|192.168.220.1]
[root@zabbix-server ~]# zabbix_get -s '127.0.0.1' -k 'login_user_check[root]'
192.168.220.1
zabbix添加自定义模板
#给监控项设置标记,方便分类
温馨提示: zbx 5.x 及之前 应用集,zbx 6.x 叫标记。都是用于分类。
#配置监控项名字,填写:键值
信息类型:这里键值结果都是数字,选择数字(无正负即可),如果有小数选择浮点类型,如果是字符,选择字符串。
更新间隔:这里调整为5s秒,生产环境非必须尽量增长间隔比如1m,10m,1h等等。
net.tcp.port[,port] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
测试
主机链接模板
仪表盘检测
如果配置模板内容错误导致主机获取不到数据,可以核对修改模板后从主机删除后重新链接模板
zabbix 5.0配置邮件报警
在配置了监控项之后,一般模板都会自带监控的告警触发器,而目前要配置的是zabbix在这些触发器触发之后需要做的事情,就是要通过邮件通知到相关的人员
1.设置报警媒介类型 ---管理--报警媒介类型--创建媒体类型
说明:smtp服务器(邮件服务器地址)我这里填写的是163邮件服务器地址,如果你用的是qq 则填写qq的服务器,如图
测试成功后进行下一步:
2.配置用户告警媒介
管理-用户-admin
3.添加报警触发器
配置-动作
#############################################################################
动作可配置项
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}
----------------------
恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
#############################################################################
应用服务监控 ##检查端口
[root@localhost ~]# zabbix_get -s '192.168.220.128' -p 10050 -k 'net.tcp.port[,80]' #web服务器监控
0
[root@localhost ~]# zabbix_get -s '192.168.220.128' -p 10050 -k 'net.tcp.port[,10050]'
1
自动发现(agent2为被动模式):zabbix-server主动去发现所有的客户端,然后将客户端的信息登记在服务端的机器上
准备客户端 192.168.220.130
[root@centos8 ~]# systemctl is-active zabbix-agent2.service #检查服务
active
zabbix服务端 192.168.220.118
[root@localhost ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping' #检查客户端
1 #客户端存活
自动注册(agent2为主动模式):zabbix-agent2主动上报自己的信息,发给zabbix-server
被动模式:对应agent2来说,就是server来找agent2拿数据
主动模式:agent2主动把数据发给server
自动注册配置 #自动注册客户端配置文件最优配置见后面学习心得的配置说明
###客户端配置
[root@centos8 ~]# hostname
centos8
#修改agent2配置文件
[root@centos8 ~]# egrep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.118 #服务器ip
ServerActive=192.168.220.118 #主动注册需配置服务器ip
Hostname=centos8 ##主机名
HostnameItem=system.hostname #添加此参数
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@centos8 ~]# systemctl restart zabbix-agent2.service
#验证通信 服务端进行
[root@localhost ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping'
1
#web端配置
## 服务端日志监控
[root@localhost zabbix]# tail -f /var/log/zabbix/zabbix_server.log
..................................................
2258:20221026:141418.966 cannot send list of active checks to "192.168.220.130": host [centos8] not found
2240:20221026:141433.988 enabling Zabbix agent checks on host "centos8": host became available
#客户端日志
[root@centos8 ~]# tail -f /var/log/zabbix/zabbix_agent2.log
#分布式监控的作用
1.分担server的集中式压力
agent>proxy>server
2.多机房之间的网络延时问题
#分布式监控配置
主机信息
192.168.220.118 zabbix-server #centos7.9
192.168.220.128 zabbix-proxy #centos7.9
192.168.220.130 zabbix-agent2 #centos8.3
#选择性操作--可以将ip与host的对应关系添加到server端的/etc/hosts加速解析
[root@zabbix-server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.220.118 zabbix-server #centos7.9
192.168.220.128 zabbix-proxy #centos7.9
192.168.220.130 zabbix-agent2 #centos8.3
zabbix_proxy主机配置 192.168.220.128
#设置主机名
[root@localhost ~]# hostnamectl set-hostname zabbix-proxy
[root@localhost ~]# hostname
zabbix-proxy
[root@zabbix-proxy ~]# rpm -Uvh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm #添加源仓库zabbix.repo
[root@zabbix-proxy ~]# sed -i 's#http://repo.zabbix.com#https://mirrors.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo #国外源替换为清华源
[root@zabbix-proxy ~]# yum install zabbix-proxy-mysql zabbix-get -y
[root@zabbix-proxy ~]# yum install mariadb-server mariadb -y
[root@zabbix-proxy ~]# systemctl enable --now mariadb
[root@zabbix-proxy ~]# mysql <<'EOF' #创建数据库与用户
create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';
flush privileges;
EOF
#查看zabbix-proxy-mysql软件包的文件
[root@zabbix-proxy ~]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.28
/usr/share/doc/zabbix-proxy-mysql-5.0.28/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.28/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.28/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.28/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.28/README
/usr/share/doc/zabbix-proxy-mysql-5.0.28/schema.sql.gz
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix
#导入数据
[root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.28/schema.sql.gz|mysql zabbix_proxy -uzabbix_proxy -pzabbix_proxy
#修改zabbix_proxy.conf配置文件,注释的地方
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.220.118 #zabbix-server的ip
Hostname=zabbix-proxy #zabbix-proxy主机名
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy #链接的数据库名
DBUser=zabbix_proxy #数据库用户
DBPassword=zabbix_proxy #数据库密码
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy log]# systemctl enable --now zabbix-proxy.service #开启服务
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log #监控日志
2786:20221027:021804.771 Starting Zabbix Proxy (active) [zabbix-proxy]. Zabbix 5.0.28 (revision b2b8e2ce82d).
2786:20221027:021804.771 **** Enabled features ****
2786:20221027:021804.771 SNMP monitoring: YES
2786:20221027:021804.771 IPMI monitoring: YES
2786:20221027:021804.771 Web monitoring: YES
2786:20221027:021804.771 VMware monitoring: YES
2786:20221027:021804.771 ODBC: YES
2786:20221027:021804.772 SSH support: YES
2786:20221027:021804.772 IPv6 support: YES
2786:20221027:021804.772 TLS support: YES
2786:20221027:021804.772 **************************
2786:20221027:021804.772 using configuration file: /etc/zabbix/zabbix_proxy.conf
2786:20221027:021804.777 current database version (mandatory/optional): 05000000/05000007
2786:20221027:021804.778 required mandatory version: 05000000
2786:20221027:021804.786 proxy #0 started [main process]
2791:20221027:021804.786 proxy #1 started [configuration syncer #1]
2791:20221027:021804.800 received configuration data from server at "192.168.220.118", datalen 3662 #提示已连接
连接后显示
注意:web页面可以看到最近出现时间(只要有时间即可),如果长时间没有出现,可以查看代理日志,如果持续出现not found 情况。可以重启下代理和服务端
zabbix_agent2主机配置 192.168.220.130 #centos8.3
#通过源(本次使用清华源)找到适用于centos8版本zabbix-agent2的rpm包
[root@zabbix-agent2 ~]# rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/8/x86_64/zabbix-agent2-5.0.0-1.el8.x86_64.rpm
#修改zabbix_agent2.conf配置文件,注释的地方
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128 #zabbix-proxy主机ip
ServerActive=192.168.220.128 #zabbix-proxy主机ip,用来自动注册的
Hostname=zabbix-agent2 #zabbix-agent2主机对应的hostname
HostnameItem=system.hostname #添加此行
HostMetadataItem=system.uname #添加此行
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@zabbix-agent2 ~]# systemctl enable --now zabbix-agent2 #开启服务
利用zabbix-proxy主机监测zabbix-agent2
[root@zabbix-proxy ~]# zabbix_get -s '192.168.220.130' -p 10050 -k 'agent.ping'
1
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
2795:20221027:025141.924 cannot send list of active checks to "192.168.220.130": host [zabbix-agent2] not found
2797:20221027:025345.926 cannot send list of active checks to "192.168.220.130": host [zabbix-agent2] not found
如果长时间提示not found,重启zabbix-proxy主机
[root@zabbix-proxy ~]# systemctl restart zabbix-proxy.service
[root@zabbix-proxy ~]# tail -f /var/log/zabbix/zabbix_proxy.log
2918:20221027:025814.299 enabling Zabbix agent checks on host "zabbix-agent2": host became available
参考资料:Zabbix 3.0 从入门到精通(zabbix使用详解) - 惨绿少年 - 博客园
#############################################################################
代理主机的监控不可以由agent代理程序监测,需要直接由zabbix-server监控
[root@zabbix-proxy zabbix]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108 #192.168.220.108为zabbix-server地址
ServerActive=192.168.220.108
Hostname=zabbix-proxy
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
#############################################################################
无法安装agent 很多前辈的监控软件都可以监控各种设备 都是通过snmp监控
snmp simple network manager protocol 简单网络管理协议
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
yum -y install net-snmp net-snmp-utils
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf # -i.ori选项:修改文件并创建一个以ori为后缀的备份文件
systemctl start snmpd.service
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname SNMPv2-MIB::sysName.0 = STRING: m01
说明:
# snmpwalk 类似 zabbix_get
# -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3
# -c public 指定暗号
# sysname 类似zabbix的key
添加新的主机,注意使用snmp接口
##SNMP OID列表 监控需要用到的OID http://www.ttlsa.com/monitor/snmp-oid/ cmdb 资源管理系统
https://www.bilibili.com/video/BV1rb411n7a8/
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.118
ServerActive=192.168.220.118
Hostname=zabbix-agent2
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
[root@zabbix-agent2 ~]# zabbix_agent2 -t 'system.uname'
system.uname [s|Linux zabbix-agent2 4.18.0-240.22.1.el8_3.x86_64 #1.....]
通过代理主机添加到服务端web的客户端在自定义监控项的时候,web端获取键值数据会比较慢(数据-proxy数据库-server数据库),若web长时间获取不到客户端数据可以尝试重启proxy服务
测试键值:
192.168.220.108 zabbix-proxy
192.168.220.128 zabbix-server
192.168.220.130 zabbix-agent2
192.168.220.128 zabbix-server
[root@zabbix-server ~]# systemctl list-units|grep zabbix
zabbix-agent2.service loaded active running Zabbix Agent 2
zabbix-server.service loaded active running Zabbix Server
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=1
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-server ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=zabbix-server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
192.168.220.108 zabbix-proxy
[root@zabbix-proxy ~]# systemctl list-units|grep zabbix
zabbix-agent2.service loaded active running Zabbix Agent 2
zabbix-proxy.service loaded active running Zabbix Proxy
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.220.128
Hostname=zabbix-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128
ServerActive=192.168.220.128
Hostname=zabbix-proxy
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
192.168.220.130 zabbix-agent2
[root@zabbix-agent2 ~]# systemctl list-units|grep zabbix
zabbix-agent2.service loaded active running Zabbix Agent 2
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108
ServerActive=192.168.220.108
Hostname=zabbix-agent2
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]
web页面添加server
添加agent代理程序
等待。。。。
自定义自动注册的主机名称,即修改/etc/zabbix/zabbix_agent2.conf内的hostname即可。现实环境中最好保持/etc/zabbix/zabbix_agent2.conf内的hostname与主机的hostname保持一致
192.168.220.108 zabbix-proxy
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.220.128
Hostname=zabbix-proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=zabbix_proxy
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
[root@zabbix-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.128
ServerActive=192.168.220.128
Hostname=ceshi ######自定义hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
192.168.220.130 zabbix-agent2
[root@zabbix-agent2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.220.108
ServerActive=192.168.220.108
Hostname=zheshiyigeceshi #####自定义hostname
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
DenyKey=system.run[*]