热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Grafana+Zabbix+MySQL部署分布式监控系统

2019独角兽企业重金招聘Python工程师标准首先声明,转载自:http:www.cnblogs.comyyhhp4792830.html&#x

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

首先声明,转载自:http://www.cnblogs.com/yyhh/p/4792830.html,感谢原创作者,我修改了部分内容以及出现的bug。搭建过程从头run了一遍

阅读目录:

1. 关闭防火墙和Selinux

2. 安装Zabbix下载源

3. ZabbixClient  --- 安装zabbix-agent代理

4. ZabbixServer --- 安装zabbix-server服务

5. ZabbixServer --- 配置zabbix-server的数据库

6. ZabbixServer --- 配置zabbix-server的服务参数

7. ZabbixServer --- 使用zabbix-server

8. 登录Zabbix的Web端

9. 在Web配置zabbix监控agent

10. 安装Grafana以及Zabbix插件

11. 登录Grafana并且配置

12.修改Zabbix为中文显示并解决乱码问题

13.注意事项

 

序章:

        Zabbix的一个很优秀的分布式监控服务器, 它有两部分组成:

1. “zabbix-server”用来收集并且在web端展示数据

2. “zabbix-agent”用来采集数据,发送给server

 

        在安装Zabbix时,用了3台虚拟机来测试监控的数据是否正常采集、展示:

Server(服务端):

ZabbixServer --- IP : 192.168.28.128

Client(客户端):

ZabbixClient_1 --- IP : 192.168.28.129

ZabbixClient_2 --- IP : 192.168.28.130

 

1. 关闭防火墙和Selinux

        Linux的防火墙是咱们新手的噩梦,很多情况会出现能ping通,但是访问不了Web页面。所以开始就干掉它!

    1.1 关闭防火墙

    [root@localhost ~]# /etc/init.d/iptables stopiptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ]

    1.2 开机自动关闭防火墙

    [root@localhost ~]# chkconfig iptables off

    1.3 查看Selinux状态

    [root@localhost ~]# sestatusSELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28

    1.4 关闭selinux

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

修改 SELINUX=disabled ,重启机器。
注:永久开启->改成:SELINUX=enforcing

 

2. 安装Zabbix下载源

        zabbix官方提供了下载源,拉取rpm包,

        # wget http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

        执行下面命令,下载安装就可以了

        # rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

注:看一下rpm名字是否为 zabbix-release-2.4-1.el6.noarch.rpm,执行命令

        # ls

        提示安装成功后,查看Linux下载源,是否正确安装,如果安装成功,Linux下会有zabbix.repo源文件

    [root@localhost Desktop]# ll /etc/yum.repos.d/total 28-rw-r--r--. 1 root root 1991 Aug 4 00:13 CentOS-Base.repo-rw-r--r--. 1 root root 647 Aug 4 00:13 CentOS-Debuginfo.repo-rw-r--r--. 1 root root 289 Aug 4 00:13 CentOS-fasttrack.repo-rw-r--r--. 1 root root 630 Aug 4 00:13 CentOS-Media.repo-rw-r--r--. 1 root root 6259 Aug 4 00:13 CentOS-Vault.repo-rw-r--r--. 1 root root 401 Sep 11 2014 zabbix.repo

这是分割线!======================================================

3. ZabbixClient --- 安装zabbix-agent代理

       分别在ZabbixClient_1与ZabbixClient_2安装并配置如下设置:

        zabbix官方提供了下载源,拉取rpm包,

     # wget http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

        执行下面命令,下载安装就可以了

     # rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

注:看一下rpm名字是否为 zabbix-release-2.4-1.el6.noarch.rpm,执行命令

     # ls

        安装zabbix-agent,在下载的时候,会自动安装zabbix-agent的基础依赖包

     [root@localhost Desktop]# yum install zabbix-agent

        进入zabbix-agent的Config文件

     [root@localhost Desktop]# vim /etc/zabbix/zabbix_agentd.conf

        配置zabbix-agent的参数,主要修改Server的IP和Hostname,

     Server=192.168.28.128Hostname=localhost

      启动zabbix-agent

    [root@localhost Desktop]# /etc/init.d/zabbix-agent start

    设置自启动

    [root@localhost Desktop]# chkconfig zabbix-agent on

4. ZabbixServer --- 安装zabbix-server服务

        安装Zabbix官方下载源

    [root@localhost Desktop]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

        通过zabbix提供的下载源,下载并安装zabbix-server-mysql和zabbix-web-mysql,这个两个mysql数据库是用来存放采集到的数据,Zabbix的web端会通过这些数据,来展示绘图。而zabbix-get则是用来收集数据的指令。

    # yum install zabbix-server-mysql zabbix-web-mysql zabbix-get

 

        在下载这两个包的时候,会提示你安装基础依赖包,其中这些基础包中,还有zabbix-server的服务端的包,选择“y”继续即可。

// 以下是需要安装的基础依赖包

================================================================================Package Arch Version Repository Size
================================================================================
Installing:zabbix-server-mysql x86_64 2.4.6-1.el6 zabbix 1.5 Mzabbix-web-mysql noarch 2.4.6-1.el6 zabbix 14 k
Installing for dependencies:OpenIPMI-libs x86_64 2.0.16-14.el6 base 473 kfping x86_64 2.4b2-16.el6 zabbix-non-supported 31 kiksemel x86_64 1.4-2.el6 zabbix-non-supported 47 knet-snmp x86_64 1:5.5-54.el6_7.1 updates 308 kphp-bcmath x86_64 5.3.3-46.el6_6 updates 39 kphp-mbstring x86_64 5.3.3-46.el6_6 updates 459 kphp-mysql x86_64 5.3.3-46.el6_6 updates 86 kzabbix x86_64 2.4.6-1.el6 zabbix 161 kzabbix-server x86_64 2.4.6-1.el6 zabbix 22 kzabbix-web noarch 2.4.6-1.el6 zabbix 4.5 M
Updating for dependencies:net-snmp-libs x86_64 1:5.5-54.el6_7.1 updates 1.5 Mphp x86_64 5.3.3-46.el6_6 updates 1.1 Mphp-cli x86_64 5.3.3-46.el6_6 updates 2.2 Mphp-common x86_64 5.3.3-46.el6_6 updates 529 kphp-gd x86_64 5.3.3-46.el6_6 updates 111 kphp-pdo x86_64 5.3.3-46.el6_6 updates 79 kphp-xml x86_64 5.3.3-46.el6_6 updates 107 kTransaction Summary
================================================================================

 

5. ZabbixServer --- 配置zabbix-server的数据库

        启动mysql,我的CentOS在安装的时候,就把mysql的软件给安装了,如果没有mysql,则需要去安装mysql,我这里就直接启动mysql就可以了

    # /etc/init.d/mysqld start

        成功启动mysql的话,输入mysql,就可以进入mysql的命令行了。进入命令行,创建zabbix数据库

    [root@localhost ~]# mysqlmysql> create database zabbix;Query OK, 1 row affected (0.00 sec)

        在mysql中,查看刚刚创建的zabbix是否创建成功,如下图数据库中,有zabbix代表已经创建成功

    mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || test || zabbix |+--------------------+4 rows in set (0.00 sec)

        接下来要执行zabbix官方提供是sql语句。在安装基础依赖包的时候,已经在文件里面了。现在可以直接执行

    [root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/[root@localhost create]# mysql -uroot zabbix

 

6. ZabbixServer --- 配置zabbix-server的服务参数

        配置在以下路径里面 :

    # vim /etc/zabbix/zabbix_server.conf

        如果没有特殊需要的话,使用默认配置就可以了,我的mysql账户是root,所以需要修改DBuser

    LogFile=/var/log/zabbix/zabbix_server.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_server.pidDBName=zabbixDBUser=rootDBSocket=/var/lib/mysql/mysql.sockStartPollers=5CacheSize=256MSNMPTrapperFile=/var/log/snmptt/snmptt.logAlertScriptsPath=/usr/lib/zabbix/alertscriptsExternalScripts=/usr/lib/zabbix/externalscripts

        修改zabbix的时区,有些系统并不是北京时间,如果是国外的时间,在展示出来的图的时间就是错的,为了保守起见,设置一下zabbix的时区

    # vim /etc/httpd/conf.d/zabbix.conf

        修改以下字段

    php_value date.timezone Asia/Shanghai

        修改zabbix的php的时区

    # vim /etc/php.ini

        修改以下字段

    date.timezone = Asia/Shanghai

        启动Zabbix服务,启动httpd:

    [root@localhost create]# /etc/init.d/zabbix-server start[root@localhost create]# /etc/init.d/httpd start

    设置自启动

    [root@localhost create]# chkconfig zabbix-server on[root@localhost create]# chkconfig httpd on

7. 使用zabbix-get

        安装好了zabbix-agent和zabbix-server。在Server端试试能不能收到agent端的数据,可以使用zabbix-get。在安装mysql的时候,已经将zabbix-get安装过了。可以使用zabbix_get -help命令来查看该命令怎么使用

[root@localhost create]# zabbix_get -help
Zabbix get v2.4.6 (revision 54796) (10 August 2015)usage: zabbix_get [-hV] -s [-p ] [-I ] -k Options:-s --host Specify host name or IP address of a host-p --port Specify port number of agent running on the host. Default is 10050-I --source-address Specify source IP address-k --key Specify key of item to retrieve value for-h --help Display help information-V --version Display version numberExample: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"

 

        测试是否能收到数据,使用以下命令,发现是可以收到的。

// 测试是否可以收到系统的信息

    [root@localhost create]# zabbix_get -s 192.168.28.129 -p 10050 -k "system.uname"Linux localhost.localdomain 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64

// 测试是否可以收到CPU的数据

    [root@localhost create]# zabbix_get -s 192.168.28.129 -p 10050 -k "system.cpu.load"
0.020000

 

8. 登录Zabbix的Web端

        在Server端,启动Zabbix服务,启动httpd:

    [root@localhost create]# /etc/init.d/zabbix-server start[root@localhost create]# /etc/init.d/httpd start

 

        登录Zabbix的Web客户端,在浏览器中输入“http://192.168.28.128/zabbix/index.php”,默认会跳转至Zabbix的setup引导页面:

        点击Next

        点击Next

        点击Test connection,否则无法点击Next,  测试连接成功后,点击Next

        设置端口,可以直接使用默认设置的端口10051

        点击Next

        点击Next

        点击Finish,完成初始化引导

        输入默认的账号密码,账号:admin, 密码zabbix

9. 在Web配置zabbix监控agent

        点击下图的Create host

        按下图配置,主意要输入agent的IP和端口,端口默认是10050

        点击select,选择Linux OS和zabbix Server的模板,点击Select->Add->Add,如下图

        添加了以后就已经自动启动了,可以点击Graphs,查看是否有数据过来

        点击CPU jumps

        点击preview

        就可以看到agent那边有数据传过来了

10. 安装Grafana

        在ZabbixServer服务器上,安装Grafana

    [root@localhost ~]# yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.1.1-1.x86_64.rpm

        下载Grafana的Zabbix插件,在git上下载,如果无法运行下面命令的话,可以先“# yum install git”安装这个命令

    [root@localhost ~]# git clone https://github.com/linglong0820/grafana-zabbix

        将插件复制到Grafana文件下

    [root@localhost ~]# cp -r grafana-zabbix/zabbix/ /usr/share/grafana/public/app/plugins/datasource/

        启动Grafana

    [root@localhost ~]# service grafana-server start[root@localhost ~]# chkconfig grafana-server on

11. 登录Grafana并且配置

        启动Grafana后,在浏览器中输入“http://192.168.28.128:3000/login”就可以看到页面了。

        输入默认用户名和密码,用户名:admin, 密码:admin, 点击登录

        按如下配置

        【主意1】Zabbix的API地址为“http://192.168.28.128/zabbix/api_jsonrpc.php”,其中IP的安装zabbix-server的服务器IP

        【主意2】Zabbix的API账号密码就是Zabbix的Web端登录账号和密码,账号:admin, 密码zabbix

        点击Add后,点击Test Connection测试是否可以连接。提示“Success”说明连接成功,点击Save

        点击Dashboard,去主目录设置, 点击new,新建一个Home

        新建一个Graph

        点击下列红框处->选择Edit->选择数据库ZabbixClient

12.修改Zabbix为中文显示并解决乱码问题

    12.1 点击administrator--Users--Users

    12.2 配置两个属性为中文

    12.3 修改中文的乱码

    直接参考如下链接:

        http://www.ttlsa.com/zabbix/zabbix-chinese-garbled-ttlsa/

13.注意事项

在grafana不显示图表,是因为没有改对时间。

    1.先显示校准时间:

    [root@localhost ~]# date

    Mon Nov 13 17:11:38 CST 2017

    2.校准时间操作:

    [root@localhost ~]# date -s "2017-11-13 17:11:38" 

如果出现以下报错:
    zabbix server is not running: the information displayed may not be current.

查看第一步中的Selinux状态。

 


转:https://my.oschina.net/loubobooo/blog/1572908



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
author-avatar
浩哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有