linux监控平台搭建

Linux监控平台介绍

  • 监控的重要性不言而喻,一个企业就算架构再不成熟,监控都是必须要有的。监控不管用什么方式实现,开源软件也好,商业的监控服务也好,抑或是简陋的shell脚本,在业务上线时都首先要做到位。

  • 流行的开源监控软件有cacti、nagios、zabbix、smokeping、open-falcon.

  • cacti、nagios、zabbix都可以监控服务器的基础指标,比如CUP、内存、硬盘、网络等,其中cacti更擅长监控网络流量,很多的IDC机房的网络设备流量用cacti,因为它成图专业。它们都是C/S架构,需要安装一个服务端,然后还需要在被监控的机器上安装客户端,它们都需要LAMP的支持,其中Nagios不需要数据库,而其他2种都需要MySQL的支持,用来存储数据的。

  • Nagios最大特点是监控一目了然,它监控的某个指标不会返回具体的数值,而是只返回一个状态,告诉我们该指标是否正常。所以不需要历史数据,也就不需要数据库的支持。当它发现某个指标不正常时,就直接发出警告或者短信。

  • zabbix最近几年很流行,因为zabbix可以存储数据,很方便的画图,并支持查询历史数据。它还可以自定义监控项目。可以定制化监控业务的某个指标(例如每分钟订单数量),在zabbix的自带模板中不可能找到,它还提供了易用的二次开发接口,方便扩展。zabbix会获取服务或监控项目的数据,会把数据记录到数据库中,从而可以成图。

  • cacti、smokeping偏于基础监控(网络设备),成图非常漂亮。

  • open-falcon是小米公司开发,开源后受到许多大公司和运维工程师的追捧,适合大企业。比如滴滴、360、新浪,JD等都在使用这个监控软件,值得研究。

  • cacti、nagios、zabbix都支持Web界面去进行管理,去控制。其中zabbix的管理做的比较彻底,比如增加监控节点,去配置具体的项目。nagios则需要去修改很多的配置文件和规则,很繁琐。


zabbix监控介绍

  • zabbix适合任何企业,它是C/S架构,服务端去客户端采取数据(在客户端要有一个服务用来采取数据,这个数据可以主动的上报给服务端,或者让服务端连接客户端去采集数据,也就是主动模式与被动模式)

  • zabbix基于C++开发,性能还是挺快的,监控中心需要PHP的环境用来开启Web界面,

  • 单server节点可以支持上万台客户端,并发量还是挺大的。瓶颈在于数据的采集量,就算是支持上万台客户端,当监控的项目太多也会导致效率的降低。

  • zabbix的优化——比如增加代理点,用来充当server的角色,替代server去采集数据,得到分析结果在汇报给server。
  • zabbix当前最新的zabbix 3.4版本,官方文档https://www.zabbix.com/manuals

    zabbixj架构中包括了5个组件

    (1)Zabbix-server
    它是整个监控体系中最核心的组件(监控中心),负责接收客户端上报信息,所有的配置、统计、操作数据、数据存储、存放数据(比如mysql)都是由它完组织的
    (2)Web界面
    它也叫web UI,在web界面下操作配置是zabbix简单易用的主要原因。运行web界面需要php环境支持。(如果没有它,就不能在浏览器中去配置它)
    (3)zabbix-proxy
    它为可选组件,用于监控节点非常多的分布式环境中,它可以代替zabbix-server的功能,减轻zabbix-server的压力。
    (4)zabbix-agent
    客户端软件,用户采集各个监控服务或项目的数据,并将采集的数据传输给zabbix-server或是zabbix-proxy
    (5)数据存储
    所有采集的数据存储在这里

    监控流程图

    linux监控平台搭建_第1张图片
    流程:
    (1)将需要监控的服务器加入到监控中心,让它们之间可以通信
    (2)配置监控项目 ,配置完成后能和服务端通信了
    (3)采集数据到数据中心(zabbix-server里面),采集过程可以是主动或者被动。
    (4)配置告警规则,如果采集的数据值达到报警条件就进行告警,没有达到就进行存储。

zabbix-server需要进行告警规则的配置,还需要配置告警的机制,如果检测到数据的不正常了,该通知给谁,用什么方式,这些都需要在zabbix-sever中去配置。


安装zabbix

  • 实验中需要用到2台机器,一台用作服务端(监控中心),另外一台用作客户端。

    • zabbix可以通过yum来安装,不过要先安装epel扩展源,在epel中它的最高为2.2版本,推荐使用官方提供对应版本的yum源https://www.zabbix.com/download

    步骤

    (1)在2台机器上执行

wget  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

(2)安装

rpm -ivh  zabbix-release-3.2-1.el7.noarch.rpm   //安装完成后会在/etc/yum.repos.d下生成一个zabbix.repo文件

(3)服务端安装软件包

yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql

zabbix-agent:客户端程序
zabbix-get:服务端上命令行获取客户端检测项目的工具
zabbix-server-mysql:zabbix-server MySQL版
zabbix-web:web界面
zabbix-web-mysql:web界面mysql相关
如果之前没有安装过mysql。可以yum安装。

(4)查看mysql是否开启

(5)编辑/etc/my. cnf设定默认的字符集

[mysqld]
character_set_server = utf8  //字符集
datadir=/data/mysql
socket=/tmp/mysql.sock

重启mysql

(6)进入mysql命令行,并创建zabbix库,并指定编码为utf8

create database zabbix character set utf8;

(7)创建用户

grant all on zabbix.* to 'zabbix'@'127.0.0.1' identified by 'zcy-zabbix';

退出mysql

(8)导入原始数据,没有这些数据zabbix就不能在web界面展现。

cd /usr/share/doc/zabbix-server-mysql-3.2.7 //最后的参数使用Tab键补全。
gzip -d create.sql.gz   //解压缩该包后,生成一个create.sql文件
mysql -uroot -pzcylinux zabbix < create.sql //导入到zabbix库中。

使用cd返回

(9)启动zabbix服务,,还需要启动httpd服务,启动前查看是否有nginx在运行,需要关闭。它占用了80 端口

systemctl start zabbix-server 
/etc/init.d/nginx stop
systemctl start httpd

将zabbix和httpd设置为开机启动,并关闭nginx

systemctl enable httpd
systemctl enable nginx 
chkconfig nginx off 

最后发现zabbix并没有监听端口。那么可以查看日志/var/log/zabbix/zabbix_server.log,发现有进程却不能连接mysql

(10)编辑配置文件

vi /etc/zabbix/zabbix_server.conf /并在DBHost下面加入一行 DBHost=127.0.0.1 

关于这里的IP写多少,我们是将mysql安装在一起的,那么就可以写localhost或者是127.0.0.1。如果mysql没有安装在这里,而是在另一台机器上,那么就要写另外一台机器的IP,这样可以提升监控中心的效率。

DBPassword=zcy-zabbix //在DBuser下面增加

(11)再重启zabbix-server服务。正常情况下会启动很多的子进程,并可以看到zabbix_server监听了10051端口。

(12 )在浏览器中访问ip/zabbix ,可以在web界面下配置zabbix。当yum安装zabbix,它会自动的安装httpd与配置文件。然后点击netx step后会出现一个界面,只需要关注是红色的那个,它的意思是配置时区——vi /etc/php.ini 中data.timezone = Asia/shanghai
定义完成后重启httpd服务systemctl restart httpd

刷新页面,全部都是OK后,再次点击netx step后就需要填写mysql相关的信息了。
linux监控平台搭建_第2张图片 这里的密码填写之前创建用户时指定的密码。

定义zabbix_server的主机名
linux监控平台搭建_第3张图片

再下一步会显示你的填写信息,并提示你已成功安装了zabbix前端。

最后出现登录界面。默认管理里为Admin ,密码为zabbix,登录进去后需要先更改密码。
linux监控平台搭建_第4张图片

zabbix 客户端安装

(1)在客户端上下载zabbix的yum源

wget  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

(2)安装zabbix-agent

(3)编辑配置文件vi /etc/zabbix/zabbix_agentd.conf并定义2个地方

1.server=服务端的ip ——与监控中心通信
2.ServerActive=服务端的ip -——主动模式时使用,如果只填写了server那么就是被动模式,写了这个就是主动模式。
3.Hostname=客户端主机名

(4)启动服务

systemctl start zabbix-agent

(5)查看进程与监听的端口

ps aux |grep zabbix
netstat -lntp

它的监听端口是10050。


忘记Admin密码如何做

1 . 进入mysql命令行,选择zabbix库

mysql -uroot -pzcylinux
use zabbix

2 .修改密码

update users set passwd=md5('newpasswd') where alias= 'Admin' ;

你可能感兴趣的:(linux监控平台搭建)