服务器监控的构建之路

服务器监控的构建之路大致分三个阶段:

    一.200台以内

    需求如下:

        1.简单, 易用

        2.稳定运行

        3.能够报警, 邮件, 短信

    基于以上需求,可以使用比较流行开源的监控软件Nagios, Cacti, Zabbix, Ganglia, ect 。热门开源产品有较多文档,可快速上手,并且有大量前人使用经验,可避免许多问题,遇到问题也容易找到解决办法。

 

    二.200~1000台

    需求如下:在原需求下变的复杂(通知, 告警)

        1.统一监控内容

        2.覆盖式监控

        3.及时通知

    基于以上需求,1.统一监控内容:将基础监控进行统一,默认每个机器都包含CPU, 内存, 磁盘空间等基础信息监控。

                             2.覆盖式监控:将所有机器均纳入监控, 除去基础监控以外, 最重要的当属业务监控,尽可能的覆盖业务流程,通过自定义监控减少和去除重复的问题,保障业务稳定运行。

                             3.及时通知:确保无遗漏。将所有监控分类, 更具重要程度,紧急程度等。分别用邮件, 微信, 短信, 电话等不同级别的方式通知,确保每个监控都有人处理,并且对于重要的业务采用call死你的方式, 不处理就一直通知。

                             在这个时期对Nagios进行深入研究, 编写自定义脚本, 大量增加各种监控, 将Nagios大部分的插件如:nrpe, nsca 的功能充分使用。

                             随着机器越来越多,需要监控的服务也越来越多, 告警信息出现爆发式增长。

 

    三.1000+(1000+和2000+没啥区别)

    两条路:

        1.根据需求,继续深度开发Nagios

        2.自建监控(至少需要了解Nagios的整体架构和运作模式)

    到这个阶段开始开发自己的监控系统, 解决痛点, 完成需求, 主要有如下事情:

        

        1.具备目前在用的Nagios所有功能: 比照Nagios去做, 覆盖原来功能, 并针对Nagios的问题进行优化改进, 然后替代了Nagios之后再升级。
(这一步最重要,如果连之前的Nagios的功能都不能替代,自建之路只能在这里就停下了)。

        2.将告警进行整理:  化简为繁, 减少重复警告。当出现轰炸式告警信息之后, 如果不进行及时整理势必将会正真需要处理的事情耽误,并且由于某些原因,比如线路问题, 会发生重复警告, 所以必须要将告警信息进行处理在发出。

(如: 预警信息由之前的3000+下降到300)。

        3.分离告警和显示: 前面监控系统, 基本上告警功能和显示功能均在一起, 不同的机房也需要汇总在中心节点后统一显示和告警。重要的告警处理是分秒必争的, 也跟界面显示无关, 所有作者在设计的时候将显示和告警功能进行了一次分离, 在本地机房进行报警, 然后在集中展示。

        4.分布式部署: 避免单点。 每个机房设置一个分节点, 就是上面说的报警节点, 设置一个中心节点,先在各个机房告警, 然后汇总在中心展示。分节点与中心节点互备, 通过智能DNS进行切换。

(如: 中心节点宕机, DNS自动切换到一个分中心节点, 分节点升级为中心节点。)

 

    四.总结

    自建系统好处:

        可以充分利用数据, 组合数据, 分析数据, 解释数据, 将晦涩难懂的数据解读成人人能懂的数据, 让产品人员, 销售人员, 老板统统明白当前的业务状态是怎么样的。

 

    五.实际操作

    

    本人经过在服务器上实践无误后,在虚拟机上重新配置的干净系统环境(centos7,windows)一步步截图来的,如果按照步骤来是不会报错的,如果出错,请检查自己的网络配置以及防火墙,杀毒软件等(检查网络配置常用命令:ping;telnet)

    安装zabbix 监控主机

    配置环境:虚拟机上安装的centos7

    zabbix官网下载地址

    https://www.zabbix.com/cn/download

 

 

 

        本次安装的版本是4.0版本,以下是安装步骤:

 

        一.关闭selinux和防火墙

 

  检测selinux是否关闭

 

  [hunter@localhost ~]$ getenforce

 

  Disabled

 

  临时关闭

 

  [root@localhost hunter]# setenforce 0

 

  永久关闭

 

  [root@localhost hunter]# vi /etc/selinux/config

 

  将SELINUX=enforcing改为SELINUX=disabled 

 

  设置后需要重启才能生效

 

 

 

  查看默认防火墙状态

 

  [root@localhost hunter]# firewall-cmd --state

 

  running #关闭后显示not running,开启后显示running

 

  停止firewall

 

  [root@localhost hunter]# systemctl stop firewalld.service

 

  禁止firewall开机启动

 

  [root@localhost hunter]# systemctl disable firewalld.service

 

  Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

 

  Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

 

 

  二.Zabbix4.0程序安装

 

  配置zabbix的yum源

 

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

 

  安装zabbix程序包,安装mysql、zabbxi-agent

 

  rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 

  (此处可能会有下载失败,多次尝试即可)

 

 

  安装成功

 

 

  启动mariadb并设置开机启动,创建数据库实例,授权

 

 

 

  [root@localhost hunter]# systemctl start mariadb      #启动mariadb

 

  [root@localhost hunter]# systemctl enable mariadb  #设置开机启动

 

  [root@localhost hunter]# mysql                             #登入数据库

 

  MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;   #创建数据库实例

 

  Query OK, 1 row affected (0.00 sec)

 

  MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';   #授权所有主机访问数据库实例zabbix,用户名/密码:zabbix/zabbix

 

  Query OK, 0 rows affected (0.00 sec)

 

  MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';   #授权localhost主机名访问数据库实例zabbix,用户名/密码:zabbix/zabbix

 

  Query OK, 0 rows affected (0.00 sec)

 

  MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost.localdomain identified by 'zabbix';  #授权localhost.localdomain主机访问数据库实例zabbix,用户名/密码:zabbix/zabbix

 

  Query OK, 0 rows affected (0.00 sec)

 

 

 

  导入初始模式和数据

 

  [root@localhost hunter]# cd /usr/share/doc/zabbix-server-mysql-4.0.10/              #进入create.sql.gz所在目录

 

  [root@localhost zabbix-server-mysql-4.0.10]# zcat create.sql.gz |mysql -uroot zabbix    #导入出事模式

 

 

  三.启动zabbix-server服务

 

  配置zabbix-server的配置文件zabbix_server.conf

 

  [root@localhost zabbix-server-mysql-4.0.10]# vi /etc/zabbix/zabbix_server.conf

 

  DBHost=localhost          # 数据主机名

 

  DBName=zabbix            # 数据库实例

 

  DBUser=zabbix              # 用户名

 

  DBPassword=zabbix      # 密码

 

 

 

  启动zabbix-server服务

 

  [root@localhost zabbix-server-mysql-4.0.10]# systemctl start zabbix-server #启动zabbix-server服务

 

  [root@localhost zabbix-server-mysql-4.0.10]# systemctl enable zabbix-server #设置zabbix-server服务开机自启动

 

 

  编辑Apache的配置文件,消注释设置正确的时区

 

  [root@localhost zabbix-server-mysql-4.0.10]# vi /etc/httpd/conf.d/zabbix.conf

 

 

 

  启动httpd服务 ,设置开机启动httpd服务

 

  [root@localhost ~]# systemctl start httpd #启动httpd服务 

 

  [root@localhost ~]# systemctl enable httpd #设置开机启动httpd服务

 

 

[root@localhost ~]# systemctl start zabbix-agent # 启动zabbix-agent服务

 

[root@localhost ~]# systemctl enable zabbix-agent # 设置zabbix-agent服务开机自启动

 

 

  四.Zabbix Web网页安装

 

  在浏览器输入地址http://服务器ip/zabbix/setup.php,出现欢迎界面,点击下一步;

 

 

点击Next step,出现必要条件检测界面,正常都是OK,点击Next step

 

 

配置DB连接,与zabbix_server.conf文件中主机、数据库名称、用户名、密码保持一致,点击Next step(之前我们设置的密码是zabbix)

 

 

zabbix服务器详细信息,点击Next step(Name是可选项)

 

 

安装前汇总,检查信息无误,点击Next step

 

 

安装成功

 

 

进入登录页面,用户由于没有设置,默认是Admin,根据之前配置,密码是zabbix

 

 

登录成功

 

 

设置里切换语言

 

 

至此,zabbix 的主机就安装成功了。

 

 

 

2.在windows7 上安装zabbix agent配置

(windows记得关闭防火墙,控制面板 -->系统和安全 -->Windows defender 防火墙 -->启用或关闭防火墙)

 

下载zabbix agent

 

https://www.zabbix.com/download_agents

 

主机是4.0版本的,客户端我选的是3.4版本的,因为软件一般都是上下兼容,所以3.4是可以用的

 

 

 

 

在c盘(其他盘也可以)新建zabbix文件夹,把下载好的文件放进去,解压

 

 

进入conf文件夹,修改配置文件zabbix_agentd.win.conf(用记事本或者写字板打开)

 

 

 

  LogFile=c:\zabbix\zabbix_agentd.log

 

 

 

       Server=192.168.220.130 (填写监控主机ip地址)

 

 

 

       ServerActive=192.168.220.130 (填写监控主机ip地址)

 

 

 

       Hostname=LAPTOP-E12K29O8(右击我的电脑-属性,看看hostname)

 

 

 

保存。

 

 

 

打开命令提示符界面:(键盘快捷键win+R,输入cmd)

 

 

 

cd \zabbix\bin\win64

 

zabbix_agentd.exe -i -c C:\zabbix\conf\zabbix_agentd.win.conf(安装zabbix客户端)

 

zabbix_agentd.exe -s -c C:\zabbix\conf\zabbix_agentd.win.conf(开启zabbix服务)

 

都返回successfully 则成功

 

如果失败,可能需要卸载agent,命令:

 

cd \zabbix\bin\win64

 

zabbix_agentd.exe -d -c C:\zabbix\conf\zabbix_agentd.win.conf(删除zabbix客户端)

 

 

 

在被监控机上安装好zabbix agent后,下一步则是在主机上配置连接

 

 

配置------主机---------创建主机

 

 

主机名称与在agent里配置的hostname名称要一致

 

agent代理程序的接口 ip地址填被控机的ip地址

 

添加 再选择该主机-----模板

 

 

添加模板 Template OS Windows

 

------更新

 

等待两分钟左右,刷新页面,主机的ZBX变绿,就ok了

 

 

这是监控的cpu ulimitization图像

 

 

至此,在windows7 上安装zabbix agent配置已完毕。

 

 

 

 

 

3.在centos7 上安装zabbix agent配置

先关闭防火墙和selinux

 

一.关闭selinux和防火墙

 

检测selinux是否关闭

 

[hunter@localhost ~]$ getenforce

 

Disabled

 

临时关闭

 

[root@localhost hunter]# setenforce 0

 

永久关闭

 

[root@localhost hunter]# vi /etc/selinux/config

 

将SELINUX=enforcing改为SELINUX=disabled 

 

设置后需要重启才能生效

 

 

 

查看默认防火墙状态

 

[root@localhost hunter]# firewall-cmd --state

 

running #关闭后显示not running,开启后显示running

 

停止firewall

 

[root@localhost hunter]# systemctl stop firewalld.service

 

禁止firewall开机启动

 

[root@localhost hunter]# systemctl disable firewalld.service

 

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

 

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

 

 

安装zabbix 软件源

 

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

 

 

 

安装zabbix-agent

 

 

 

yum install zabbix-sender zabbix-agent zabbix-get

 

 

 

中途有提示选择y/n 选y

 

 

vi /etc/zabbix/zabbix_agentd.conf #修改conf配置

 

Server=192.168.220.130 #监控主机的ip

 

ServerActive=192.168.220.130 #监控主机的ip

 

Hostname=localhost.localdomain #本机的名字

 

 

 

设置启动和开机项

 

 

 

systemctl start zabbix-agent.service

 

systemctl enable zabbix-agent.service

 

 

在监控主机web页面上添加主机

 

 

 

主机名是被监控的centos7的主机名(查看主机名命令 hostname)

 

ip地址是被监控的centos7的ip地址

 

模板选择Template OS Linux

 

 

等待几分钟,刷新页面,zbx变成绿色,就ok了

 

点击图形进入

 

 

随便选择一个进入,可以发现已经有图像了

 

 

 

至此 在centos7 上安装zabbix agent配置已完毕。

 

注意:如需转载,请注明出处。

posted @ 2019-07-30 14:37  紫极魔瞳  阅读(810)  评论(1编辑  收藏  举报