小言_互联网的博客

分布式系统监控Zabbix的介绍以及源码安装

397人阅读  评论(0)

一、Zabbix介绍
1、简介
在日常线上运维环境下,监控是非常重要的,监控就相当于运维人员在服务器上的眼睛,如果想要保证线上业务整体能能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源。
如果我们想要能够更加方便、集中的监控他们,我们则需要一些外部的工具来随时替我们监视着他们,zabbix就是一个被广泛使用,可以实现集中监控管理的应用程序。

2、监控工具的作用:
当某些指标不符合我们的需求时,我们能够在第一时间发现异常,监控工具需要定期的对被监控主机进行检查、信息收集等操作,当被监控主机出现异常时,能够及时报警、通知管理员,并且需要记录这些异常,以便我们分析这些数据,查漏补缺。

3、Zabbix支持的通讯方式
agent:通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选。
ssh/telnet:通过远程控制协议进行通讯,比如ssh或者telnet。
SNMP:通过SNMP与被监控对象进行通讯,SNMP协议的全称为Simple Network Management Protocol ,被译为 “简单网络管理协议”,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件往往都支持SNMP协议,SNMP是一种比较久远的、通行的协议,大部分网络设备都支持这种协议,其实SNMP协议的工作方式也可以理解为master/agent的工作方式,只不过是在这些设备中内置了SNMP的agent而已,所以,大部分网络设备都支持这种协议。
IPMI:通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压,温度,风扇状态,电源状态等。
JMX:通过JMX进行监控,JMX(Java Management Extensions,即Java管理扩展),监控JVM虚拟机时,使用这种方法也是不错的选择。

4、zabbix监控的核心思想
在Zabbix监控中,通过我们使用最多的就是agent代理程序监控,即 zabbix agent。
一般情况下,我们将zabbix agent部署到被监控主机上,由agent采集数据,报告给负责监控的中心主机,中心主机也就是master/agent模型中的master,负责监控的中心主机被称为zabbix server,zabbix server将从agent端收到的信息存储于zabbix的数据库中,我们把zabbix的数据库端称为zabbix database。
如果管理员要查看各种监控信息,则需要zabbix的GUI,zabbix的GUI是一种Web GUI,我们称之为zabbix web,zabbix web是使用php编写的,所以,如果想要使用zabbix web展示相关监控信息,需要依赖LAMP环境,不管是zabbix server ,或是zabbix web,他们都需要连接到zabbix database获取相关数据。

5、各个组件之间的总结:
zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。

zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等。

zabbix database:用于存储所有zabbix的配置信息、监控数据的数据库。

zabbix web:zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上。

zabbix proxy:可选组件,用于分布式监控环境中,zabbix proxy代表server端,完成局部区域内的信息收集,最终统一发往server端。

二、Zabbix源码编译安装
对于zabbix来说,其实官网yum安装相对方便,但是有时候我们需要在特定的环境下,进行版本适配,尤其是在版本相配的LNMP环境下,对zabbix的版本就有严格要求
官网yum安装中文文档:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install_from_packages/rhel_centos
官网源码安装中文文档:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install

环境说明:此处环境为centos7系统,6系统也是同样的操作
zabbix 各版本下载地址:https://sourceforge.net/p/zabbix/activity/?page=0&limit=100#5cb76912f0d3475bbf780be2

具体安装步骤:
1、编译安装LNMP环境【之前博客中有写到:https://blog.csdn.net/xu710263124/article/details/115761444?spm=1001.2014.3001.5502】
2、下载并解压软件包并安装依赖包

wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.6/zabbix-4.0.6.tar.gz
tar xvzf zabbix-4.0.6.tar.gz
yum install libxml2-devel net-snmp-devel libevent-devel curl-devel pcre*

3、创建zabbix用户

groupadd zabbix
useradd -g zabbix zabbix

4、配置源代码(说明: --with-mysql,指定mysql_config路径;可以通过find / -name mysql_config 命令查看)

./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

5、安装

make install 

6、copy命令到系统命令存放处(方便调用)

cp /usr/local/zabbix/sbin/* /usr/sbin/
cp /usr/local/zabbix/bin/* /usr/bin/

7、导入数据库(首先需要先创建数据库)

mysql> create database zabbix character set utf8;
mysql> grant all on zabbix.* to zabbix@localhost identified by 'zabbix@qaz';
mysql> flush privileges;
# pwd
/root/zabbix-4.0.6/database/mysql
# ls
data.sql  images.sql  Makefile  Makefile.am  Makefile.in  schema.sql
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < schema.sql 
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < images.sql
mysql -u zabbix -pzabbix@qaz -h localhost zabbix < data.sql

8、编辑配置文件

# vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/log/zabbix_server.log        //日志文件存放的路径
PidFile=/usr/local/zabbix/zabbix_server.pid        //pid文件存放的路径
DBHost=localhost        //数据库服务器地址
DBName=zabbix        //数据库名字
DBUser=zabbix        //连接数据库的用户名
DBPassword=zabbix@qaz        //连接数据库用户的密码
DBSocket=/var/lib/mysql/mysql.sock        //指定连接mysql的socket,mysql配置的client sock文件路径
DBPort=3306        //数据库端口
Timeout=4        //超时时间
LogSlowQueries=3000        //慢查询记录的时间

9、创建log文件,并设置用户所有权

mkdir /usr/local/zabbix/log
chown zabbix.zabbix /usr/local/zabbix/log

10、启动zabbix_server(需要将安装目录权限设置为zabbix,因为配置文件中定义的zabbix用户启动,并指定的sock文件存放这个目录所以需要设置为指定的用户的权限)

chown zabbix.zabbix /usr/local/zabbix/
/usr//local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

可通过netstat -antup | grep zabbix_server

netstat -nlutp |grep zabbix_server
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      17003/zabbix_server

11、添加启动脚本

# pwd
/root/zabbix-4.0.6
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_server 
chmod +x /etc/init.d/zabbix_agentd 
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on

# vim /etc/init.d/zabbix_server        //编辑服务端配置文件
BASEDIR=/usr/local/zabbix/        //zabbix安装路径
PIDFILE=/usr/local/zabbix/$BINARY_NAME.pid        //pid文件路径

# vim /etc/init.d/zabbix_agentd        //编辑客户端配置文件
BASEDIR=/usr/local/zabbix/        //zabbix安装路径
PIDFILE=/usr/local/zabbix/$BINARY_NAME.pid        //pid文件路径

//    测试
# /etc/init.d/zabbix_server start 
Starting zabbix_server:                                    [  OK  ]
# /etc/init.d/zabbix_agentd start 
Starting zabbix_agentd:                                    [  OK  ]

12、开始配置web界面(先将解压目录里面的 frontends/php 目录下的所有文件 copy 到指定的 网站目录)

cp -a  /root/zabbix-4.0.6/frontends/php/* /opt/zabbix/

13、改为网站运行的用户(这里是在已有的lnmp环境部署,网站用户为apache;根据php中配置的用户来)

chown -R apache. /opt/zabbix/

14、编辑 nginx 配置文件

vim /opt/nginx/conf/conf.d/nginx.conf
server {
   
    listen       80;
    server_name  zabbix.xxxxxxx.vip;
    autoindex off;
    access_log  /opt/nginx/logs/zabbix/zabbix.log  main;
    index index.html index.php index.html;
    root /opt/zabbix;

    location /{
   
         try_files $uri $uri/ /index.php?$args;
     }

    location ~ ^(.+.php)(.*)$ {
   
        fastcgi_split_path_info ^(.+.php)(.*)$;
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
    location ~ /status {
   
        fastcgi_index  index.php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include         fastcgi_params;
        }
}

15、登录web界面安装 上面配置的域名,http://域名 初始账号:Admin 密码:zabbix







OK~
完结!


转载:https://blog.csdn.net/xu710263124/article/details/116303908
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场