企业实战之监控升级可视化zabbix4.0 系列 一

搭建并安装zabbix-server端

Mr.su执教笔记 zabbix4.0系列
Mr.su执教笔记(QQ:491537692)
—私人课件,不出版,不公开,禁止传播
想做好运维工作,人先要学会勤快;
居安思危,勤记而补拙,方可不断提高;
别人的资料用的再爽也是别人的;
自己总结的东西是你自身特有的一种思想与理念的展现;
精髓不是看出来的,精髓是记出来的;
请同学们在学习的过程中养成好的学习习惯;
勤于实践,抛弃教案,勤于动手,整理文档。
+


zabbix简介前言

常见开源的的监控系统有zabbix ,nagios ,cacti

nagios的简单介绍

1,重在监控告警,在这一方面zabbix比他更优秀,告警配置可视化,web化
2,nagios添加监控需要更改配置文件。
3,没有监控的历史数据,图形支持差,也就是说只是知道报警,但是没有记录原因
4,不支持分布时候监控系统。
比如:不支持分布式部署
image.png

Cacti的简单介绍

1,重在采集服务器。网路设备的监控数据并绘图
2,依赖于snmp协议
3,不好自定义监控
4,告警支持不友好

zabbix的简单介绍

1,所有监控配置都web化,web采用php开发
2,支持分布式监控
3,支持多种方式数据采集:简单监控,agent监控,snmp接口,jmx接口监控
4,告警配置web化:邮件,微信,钉钉,短信
5,zaabix和granfana的结合方便监控数据的可视化
比如:支持
image.png

zabbix监控的搭建简单理论

1,zabbix server会去采集监控数据,采集的监控数据会写入到sql数据库
2,zabbix的web后端采用的php语言开发,所有的配置信息,用户认证等都会写入到sql数据库。
3,企业级zabbix的搭建依赖环境:主流采用LNMP(centos7+nginx+mysql+php)
4,环境下用户请求流程
用户->nginx—>php-fpm->运行php程序->操作mysql

zabbix工作原理图

image.png

zabbix 由以下几个组件部分构成:

  1. 1)ZabbixServer:

  2. 负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组
  3. 织进行;

  4. 2)DatabaseStorage:

  5. 专用于存储所有配置信息,以及由zabbix收集的数据;

  6. 3)Webinterface:

  7. zabbix的GUI接口,通常与Server运行在同一台主机上;

  8. 4)Proxy:

  9. 可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据
  10. 并统一发往Server端;

  11. 5)Agent:

  12. 部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;
  13. 注:zabbix node也是zabbix server的一种。

  14. 进程

  15. 默认情况下zabbix包含5个程序:zabbix_agentd、zabbix_get、zabbix_proxy、
  16. zabbix_sender、zabbix_server,另外一个zabbix_java_gateway是可选,这个需要另
  17. 外安装

  18. 下面来分别介绍下他们各自的作用:
  19. abbix_agentd客
  20. 户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。

  21. zabbix_get

  22. zabbix工具,单独使用的命令,通常在server或者proxy端执行获取远程客户端信息的
  23. 命令。通常用户排错。例如在server端获取不到客户端的内存数据,我们可以使用
  24. zabbix_get获取客户端的内容的方式来做故障排查。

  25. zabbix_sender

  26. zabbix工具,用于发送数据给server或者proxy,通常用于耗时比较长的检查。很多检
  27. 查非常耗时间,导致zabbix超时。于是我们在脚本执行完毕之后,使用sender主动提
  28. 交数据。

  29. zabbix_server

  30. zabbix服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、
  31. zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server
  32. 备注:当然不是数据都是主动提交给zabbix_server,也有的是server主动去取数据。

  33. zabbix_proxy

  34. zabbix代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收
  35. 集到的数据提交/被提交到server里。

  36. zabbix_java_gateway

  37. zabbix2.0之后引入的一个功能。顾名思义:Java网关,类似agentd,但是只用于
  38. Java方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数
  39. 据最终会给到server或者proxy。

  40. zabbix监控环境中相关术语

  41. 主机(host) :

  42. 要监控的网络设备,可由IP或DNS名称指定;

  43. 主机组(host group):

  44. 主机的逻辑容器,可以包含主机和模板,但同一个组织内的主机和模板不能互相链接;
  45. 主机组通常在给用户或用户组指派监控权限时使用;

  46. 监控项(item) :

  47. 一个特定监控指标的相关的数据;这些数据来自于被监控对象;item是zabbix进行数
  48. 据收集的核心,相对某个监控对象,每个item都由”key”标识;

  49. 触发器(trigger) :

  50. 一个表达式,用于评估某监控对象的特定item内接收到的数据是否在合理范围内,也就
  51. 是阈值;接收的数据量大于阈值时,触发器状态将从”OK”转变为”Problem”,当数据再
  52. 次恢复到合理范围,又转变为”OK”;

  53. 事件(event) :

  54. 触发一个值得关注的事情,比如触发器状态转变,新的agent或重新上
  55. 线的agent的自动注册等;

  56. 动作(action) :

  57. 指对于特定事件事先定义的处理方法,如发送通知,何时执行操作;

  58. 报警媒介类型(media) :

  59. 发送通知的手段或者通道,如Email、Jabber或者SMS等;

  60. 模板 (template) :

  61. 用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、
  62. screen、application以及low-level discovery rule;模板可以直接链接至某个主机;

  63. 前端(frontend) :

  64. Zabbix的web接口

    zabbix各种相关组件关系图

    image.png

    一搭建zabbix

    1搭建环境

    | 操作系统 | 主机名 | ip | 内存 | | —- | —- | —- | —- | | centos7.5 | zabbix | 192.168.200.173 | 1G |

1.1搭建nginx

  1. [root@zabbix~]#cat/etc/redhat-release
  2. CentOSLinuxrelease7.5.1804(Core)
  3. [root@zabbix~]#setenforce0
  4. setenforce:SELinuxisdisabled
  5. [root@zabbix~]#systemctl stop firewalld
  6. [root@zabbix~]#systemctl stopNetworkManager
  7. [root@zabbix~]#ls
  8. anaconda-ks.cfg nginx-1.16.1.tar.gz
  9. [root@zabbix~]#yum install-y wget gcc gcc-c++make pcre pcre-devel zlib zlib-devel openssl openssl-devel
  10. 安装支持程序我们源码编译

  11. [root@zabbix~]#tar xf nginx-1.16.1.tar.gz-C/usr/src/
  12. [root@zabbix~]#cd/usr/src/nginx-1.16.1/
  13. [root@zabbix nginx-1.16.1]#ls
  14. autoCHANGES CHANGES.ru conf configure contrib html LICENSE man README src
  15. [root@zabbix nginx-1.16.1]#./configure—prefix=/usr/local/nginx&&make&&make install
  16. 编译安装

  17. [root@zabbix nginx-1.16.1]#ln-s/usr/local/nginx/sbin/* /usr/bin/ #将命令链接出来
  18. [root@zabbix nginx-1.16.1]#which nginx
  19. 查看有了nginx的命令

  20. /usr/bin/nginx
  21. [root@zabbix nginx-1.16.1]# cd /usr/local/nginx/conf/
  22. [root@zabbix conf]# ls
  23. fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params
  24. fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default
  25. fastcgi_params koi-win nginx.conf scgi_params.default win-utf
  26. [root@zabbix conf]# egrep -v “#|^$” nginx.conf.default > nginx.conf
  27. 精简配置文件

  28. [root@zabbix conf]# cat nginx.conf
  29. worker_processes 1;
  30. events {
  31. worker_connections 1024;
  32. }
  33. http {
  34. include mime.types;
  35. default_type application/octet-stream;
  36. sendfile on;
  37. keepalive_timeout 65;
  38. server {
  39. listen 80;
  40. server_name localhost;
  41. location / {
  42. root html;
  43. index index.html index.htm;
  44. }
  45. error_page 500 502 503 504 /50x.html;
  46. location = /50x.html {
  47. root html;
  48. }
  49. }
  50. }
  51. [root@zabbix conf]# nginx -t
  52. 检测一下配置文件有没有语法错误

  53. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  54. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  55. [root@zabbix conf]# /usr/local/nginx/sbin/nginx
  56. 启动nginx

  57. [root@zabbix conf]# ss -antup | grep 80
  58. tcp LISTEN 0 128 :80 :* users:((“nginx”,pid=18266,fd=6),(“nginx”,pid=18265,fd=6))
  59. 查看下nginx的端口有没有开

  60. 使用systemctl管理nginx

  61. [root@zabbix conf]# vim /usr/lib/systemd/system/nginx.service
  62. [Unit] #这个模块主要是对服务的描述
  63. Description=nginx #描述服务是什么
  64. After=network.target # 描述服务的类别
  65. [Service] #是服务的具体运行参数
  66. Type=forking #后台运行的形式
  67. ExecStart=/usr/local/nginx/sbin/nginx #启动命令
  68. [Install] #服务安装的相关设置
  69. WantedBy=multi-user.target
  70. 测试一下啊systemctl管理(如果这里有问题,请重启下服务器就可以了)

  71. [root@zabbix conf]# ss -antup | grep 80
  72. tcp LISTEN 0 128 :80 :* users:((“nginx”,pid=1213,fd=6),(“nginx”,pid=1212,fd=6))
  73. [root@zabbix conf]# systemctl stop nginx
  74. [root@zabbix conf]# ss -antup | grep 80
  75. [root@zabbix conf]#
  76. 开启

  77. [root@zabbix conf]# systemctl start nginx吃的~
  78. [root@zabbix conf]# ss -antup | grep 80
  79. tcp LISTEN 0 128 :80 :* users:((“nginx”,pid=1249,fd=6),(“nginx”,pid=1248,fd=6))

    1.2关于systemctl管理服务参数说明

  • [Service]部分是服务的关键,是服务的一些具体运行参数的设置
  • Type=forking是后台运行的形式,
  • PIDFile为存放PID的文件路径,
  • ExecStart为服务的运行命令,
  • ExecReload为重启命令,
  • ExecStop为停止命令,
  • rivateTmp=True表示给服务分配独立的临时空间,*注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错;

    1.3在浏览器上验证下nginx

    image.png

    二搭建php

    php和nginx结合使用是有2中方式的,
    1是socket方式(这个方式需要两个服务在同一个服务器上)
    2是网络方式,这样的可以不在同一个服务其上 (默认是网络)

    2.1编译安装php

  1. [root@zabbix conf]#cd~
  2. [root@zabbix~]#wget http://[hk1.php.net/distributions/php-5.6.40.tar.gz](http://hk1.php.net/distributions/php-5.6.40.tar.gz)#现在5.64安装包
  3. [root@zabbix~]#yum-y install epel-release#用yum安装一个epel源,这个文件是扩展的一些服务的源
  4. [root@zabbix~]#yum-y clean all
  5. [root@zabbix~]#yum makecahe
  6. [root@zabbix~]#yum-y install gcc gcc-c++make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
  7. [root@zabbix~]#wget https://[www.php.net/distributions/php-5.6.40.tar.gz](http://www.php.net/distributions/php-5.6.40.tar.gz)
  8. [root@zabbix~]#echo”$?”
  9. 0
  10. [root@zabbix~]#ls
  11. anaconda-ks.cfg nginx-1.16.1.tar.gz php-5.6.40.tar.gz
  12. [root@zabbix~]#tar xf php-5.6.40.tar.gz-C/usr/src/
  13. [root@zabbix~]#cd/usr/src/php-5.6.40/
  14. [root@zabbix php-5.6.40]#./configure—prefix=/usr/local/php—with-config-file-path=/usr/local/php/etc—enable-ctype—with-mysql=mysqlnd—with-mysqli=mysqlnd—with-freetype-dir—with-jpeg-dir—with-png-dir—with-zlib—with-libxml-dir=/usr—enable-xml—disable-rpath—enable-bcmath—enable-shmop—enable-sysvsem—enable-inline-optimization—with-curl—enable-mbregex—enable-mbstring—with-mcrypt—with-gd—enable-gd-native-ttf—with-openssl—with-mhash—enable-pcntl—enable-sockets—with-ldap-sasl—with-xmlrpc—enable-zip—enable-soap—with-gettext—enable-fpm
  15. 出现一下的式样就ok了

  16. Generatingfiles
  17. configure:creating./config.status
  18. creating main/internal_functions.c
  19. creating main/internal_functions_cli.c
  20. +——————————————————————————————————+
  21. |License:|
  22. |Thissoftwareissubject to the PHPLicense,availableinthis|
  23. |distributioninthe file LICENSE.Bycontinuingthisinstallation|
  24. |process,you are boundbythe terms ofthislicense agreement.|
  25. |Ifyoudonotagreewiththe terms ofthislicense,you must abort|
  26. |the installation process atthispoint.|
  27. +——————————————————————————————————+
  28. ThankyouforusingPHP.
  29. [root@zabbix php-5.6.40]#make&&make install

php主要编译安装说明

  • —prefix指定php的安装目录
  • —with-config-file-path指定php的配置文件位置
  • —with-mysql、—with-mysqli让php可以操作mysql
  • —enable-fpm主要是nginx要来调用php语言得使用php-fpm

    2.2启动php

  1. [root@zabbix php-5.6.40]#tail-1/etc/profile#添加环境变量
  2. exportPATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/
  3. [root@zabbix php-5.6.40]#source/etc/profile#让他立即生效
  4. [root@zabbix php-5.6.40]#php-fpm-t#检测一下配置文件有没有错误,现在报错是因为没有配置文件在里面,我们需要复制一份过去,
  5. [04-Nov-201910:04:15]ERROR:failed to open configuration file’/usr/local/php/etc/php-fpm.conf’:Nosuch fileordirectory(2)
  6. [04-Nov-201910:04:15]ERROR:failed to load configuration file’/usr/local/php/etc/php-fpm.conf’
  7. [04-Nov-201910:04:15]ERROR:FPM initialization failed
  8. [root@zabbix php-5.6.40]#ls php.ini-
  9. php.ini-development php.ini-production
  10. deve是开发环境的,production是生产环境的

  11. [root@zabbix php-5.6.40]#cp php.ini-production/usr/local/php/etc/php.ini
  12. [root@zabbix php-5.6.40]#cd/usr/local/php/etc/
  13. [root@zabbix etc]#ls
  14. pear.conf php-fpm.conf.defaultphp.ini
  15. [root@zabbix etc]#cp php-fpm.conf.defaultphp-fpm.conf
  16. [root@zabbix etc]#ls
  17. pear.conf php-fpm.conf php-fpm.conf.defaultphp.ini
  18. [root@zabbix etc]#php-fpm-t
  19. [04-Nov-201910:16:00]NOTICE:configuration file/usr/local/php/etc/php-fpm.conf testissuccessful
  20. [root@zabbix etc]#php-fpm-v
  21. PHP5.6.40(fpm-fcgi)(built:Nov4201909:37:11)
  22. Copyright(c)1997-2016ThePHPGroup
  23. ZendEnginev2.6.0,Copyright(c)1998-2016ZendTechnologies
  24. 使用systemctl将php管理起来,并启动

  25. [root@zabbix etc]#cat/usr/lib/systemd/system/php-fpm.service
  26. [Unit]
  27. Description=php-fpm
  28. After=network.target
  29. [Service]
  30. Type=forking
  31. ExecStart=/usr/local/php/sbin/php-fpm
  32. [Install]
  33. WantedBy=multi-user.target
  34. [root@zabbix etc]#systemctl start php-fpm
  35. [root@zabbix etc]#ss-antup|grep9000
  36. tcp LISTEN0128127.0.0.1:9000:users:((“php-fpm”,pid=8872,fd=0),(“php-fpm”,pid=8871,fd=0),(“php-fpm”,pid=8870,fd=7))

    2.3修改nginx的配置,让php和nginx连用起来

  37. [root@zabbix etc]#cd/usr/local/nginx/conf/

  38. [root@zabbix conf]#cat nginx.conf
  39. worker_processes1;
  40. events{
  41. worker_connections1024;
  42. }
  43. http{
  44. include mime.types;
  45. default_type application/octet-stream;
  46. sendfile on;
  47. keepalive_timeout65;
  48. server{
  49. listen80;
  50. server_name localhost;
  51. location/{
  52. root html;
  53. index index.html index.htm index.php;#必须加上.php结尾的主页,要不然nginx调用动态的时候找不到回直接报错就不找了
  54. }
  55. location~.php${
  56. root html;
  57. fastcgi_pass127.0.0.1:9000;
  58. fastcgi_index index.php;
  59. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;#去哪里寻找php文件。
  60. include fastcgi_params;
  61. }
  62. error_page500502503504/50x.html;
  63. location=/50x.html{
  64. root html;
  65. }
  66. }
  67. }
  68. [root@zabbix conf]#nginx-t
  69. nginx:the configuration file/usr/local/nginx/conf/nginx.conf syntaxisok
  70. nginx:configuration file/usr/local/nginx/conf/nginx.conf testissuccessful
  71. [root@zabbix conf]#nginx-s reload
  72. [root@zabbix conf]#cd/usr/local/nginx/html/
  73. [root@zabbix html]#touch index.php#里边什么都不用写
  74. [root@zabbix html]#cat test.php
  75. <?php
  76. echo”mr.su it’s ok”;
  77. ?>

    2.4验证php+nginx是否连接成功

    image.png

    三mysql数据库安装

    3.1搭建mysql数据库

  78. [root@zabbix html]#cd~

  79. [root@zabbix~]#wget https://[www.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39.tar.gz](http://www.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39.tar.gz)
  80. [root@zabbix~]#ls
  81. anaconda-ks.cfg mysql-5.6.39.tar.gz nginx-1.16.1.tar.gz php-5.6.40.tar.gz
  82. [root@zabbix~]#yum install-y gcc gcc-c++make tar openssl openssl-devel cmake ncurses ncurses-devel
  83. [root@zabbix~]#useradd-M-s/sbin/nologin mysql
  84. [root@zabbix~]#tar xf mysql-5.6.39.tar.gz-C/usr/src/
  85. [root@zabbix~]#cd/usr/src/mysql-5.6.39/
  86. [root@zabbix mysql-5.6.39]#cmake-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-DMYSQL_DATADIR=/data/mysql-DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DWITH_EXTRA_CHARSETS:STRING=all-DWITH_DEBUG=0-DWITH_SSL=yes-DWITH_READLINE=1-DENABLED_LOCAL_INFILE=1
  87. [root@zabbix mysql-5.6.39]#echo”$?”
  88. 0
  89. [root@zabbix mysql-5.6.39]#make&&make install
  90. [root@zabbix mysql-5.6.39]#echo”$?”
  91. 0
  92. [root@zabbix mysql-5.6.39]#cp support-files/mysql.server/etc/init.d/mysqld
  93. [root@zabbix mysql-5.6.39]#chmod+x/etc/init.d/mysqld
  94. [root@zabbix mysql-5.6.39]#tail-1/etc/profile#修改环境变量,本质是要服务器找到命令,所以做软连接也是可以的
  95. exportPATH=$PATH:/usr/local/mysql/bin/
  96. 修改配置文件

  97. [root@zabbix mysql-5.6.39]#cat/etc/my.cnf
  98. [mysqld]
  99. bind-address=0.0.0.0
  100. port=3306
  101. datadir=/data/mysql
  102. user=mysql
  103. skip-name-resolve
  104. long_query_time=2
  105. slow_query_log_file=/data/mysql/mysql-slow.log
  106. expire_logs_days=2
  107. innodb-file-per-table=1
  108. innodb_flush_log_at_trx_commit=2
  109. log_warnings=1
  110. max_allowed_packet=512M
  111. connect_timeout=60
  112. net_read_timeout=120
  113. [mysqld_safe]
  114. log-error=/data/mysql/mysqld.log
  115. pid-file=/data/mysql/mysqld.pid

重要的编译选项说明
- [x] CMACK_INSTALL_PREFIX指定安装的目录
- [x] MYSQL_DATADIR指定Mysql的数据目录

3.2初始化数据库

  1. [root@zabbix mysql-5.6.39]#mkdir-p/data/mysql#建立数据目录
  2. [root@zabbix mysql-5.6.39]#chown-R mysql:mysql/usr/local/mysql/data/mysql/#分别对数据目录,和运行目录授权
  3. [root@zabbix mysql-5.6.39]#yum install-y perl-Module-Install#初始数据库的一个依赖程序
  4. [root@zabbix mysql-5.6.39]#/usr/local/mysql/scripts/mysql_install_db—basedir=/usr/local/mysql—user=mysql—datadir=/data/mysql/#初始完成以后输出的特别像乱码,往上看,找到两个ok就初始化完成了
  5. [root@zabbix mysql-5.6.39]#cat/usr/lib/systemd/system/mysqld.service#使用systemctl管理mysql
  6. [Unit]
  7. Description=mysqld
  8. After=network.target
  9. [Service]
  10. Type=forking
  11. ExecStart=/etc/init.d/mysqld start
  12. [Install]
  13. WantedBy=multi-user.target
  14. [root@zabbix mysql-5.6.39]#systemctl start mysqld
  15. [root@zabbix mysql-5.6.39]#ss-antup|grep3306
  16. tcp LISTEN080:3306:*users:((“mysqld”,pid=26225,fd=10))

    3.3给mysql建立zabbix账号并验证连接

  17. [root@zabbix mysql-5.6.39]#cd~

  18. [root@zabbix~]#mysqladmin-h127.0.0.1-u root password’zabbixpwd’
  19. Warning:Usinga password on the command lineinterfacecan be insecure.
  20. [root@zabbix~]#echo”$?”
  21. 0
  22. [root@zabbix~]#mysql-uroot-pzabbixpwd-h127.0.0.1
  23. Warning:Usinga password on the command lineinterfacecan be insecure.
  24. Welcometo theMySQLmonitor.Commandsendwith;or\g.
  25. YourMySQLconnection idis3
  26. Serverversion:5.6.39Sourcedistribution
  27. Copyright(c)2000,2018,Oracleand/orits affiliates.Allrights reserved.
  28. Oracleisa registered trademark ofOracleCorporationand/orits
  29. affiliates.Othernames may be trademarks of their respective
  30. owners.
  31. Type’help;’or’\h’forhelp.Type’\c’to clear the current input statement.
  32. mysql>mysql>GRANT ALL PRIVILEGES ON.TO’root’@’192.168.200.%’IDENTIFIED BY’zabbixpwd’WITH GRANT OPTION;
  33. QueryOK,0rows affected(0.00sec)
  34. mysql>flush privileges;
  35. QueryOK,0rows affected(0.00sec)
  36. mysql>exit
  37. [root@zabbix~]#mysql-uroot-pzabbixpwd-h192.168.200.173#验证密码在远处登录
  38. mysql>exit
  39. [root@zabbix~]#cat/usr/local/nginx/html/test_mysql.php#建立测试nginx+php+mysql 的测试文件
  40. <?php
  41. $link=mysql_connect(“127.0.0.1”,”root”,”zabbixpwd”);
  42. if(!$link)echo”FAILD!连接错误,用户名密码不对”;
  43. elseecho”OK!可以连接”;
  44. ?>

    3.4通过http://192.168.200.173/test_mysqsl.php

    image.png

    四搭建zabbix4.0

    4.1下载并编译安装zabbix

  45. [root@zabbix~]#yum install-y libevent-devel wget tar gcc gcc-c++make net-snmp-devel libxml2-devel libcurl-devel#yum安装zabbix的支持程序

  46. [root@zabbix~]#useradd-M-s/sbin/nologin zabbix
  47. [root@zabbix~]#wget https://[nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz](http://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz)#下载zabbix4.0的源码包
  48. [root@zabbix~]#ls
  49. anaconda-ks.cfg mysql-5.6.39.tar.gz nginx-1.16.1.tar.gz php-5.6.40.tar.gz zabbix-4.0.3.tar.gz
  50. [root@zabbix~]#tar xf zabbix-4.0.3.tar.gz-C/usr/src/
  51. [root@zabbix~]#cd/usr/src/zabbix-4.0.3/
  52. [root@zabbix zabbix-4.0.3]#./configure—prefix=/usr/local/zabbix—enable-server—enable-agent—with-mysql=/usr/local/mysql/bin/mysql_config—with-net-snmp—with-libcurl—with-libxml2
  53. 出现以下的就ok了


  54. Nowrun’make install’
  55. **
  56. ThankyouforusingZabbix!
  57. http://[www.zabbix.com](http://www.zabbix.com/)

  58. [root@zabbix zabbix-4.0.3]#make&&make install
  59. [root@zabbix zabbix-4.0.3]#tail-1/etc/profile#修改变量文件,使其能找到命令
  60. exportPATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/
  61. [root@zabbix zabbix-4.0.3]#source/etc/profile#立即生效
  62. [root@zabbix zabbix-4.0.3]#zabbix_server—version
  63. zabbix_server(Zabbix)4.0.3
  64. Revision8799320December2018,compilation time:Nov13201909:44:17
  65. Copyright(C)2018ZabbixSIA
  66. LicenseGPLv2+:GNU GPL version2orlaterhttp://[gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html).
  67. Thisisfree software:you are free to changeandredistribute it according to
  68. the license.ThereisNO WARRANTY,to the extent permittedbylaw.

选项说明

  • —prefix指定安装目录
  • —enable-server安装zabbix server
  • —enable-agent安装zabbix agent
  • —with-mysql用mysql来存储

    4.2初始化zabbix数据库,启动zabbix

  1. [root@zabbix zabbix-4.0.3]#mysql-h127.0.0.1-uroot-pzabbixpwd
  2. mysql>create database zabbix charactersetutf8 collate utf8_bin;
  3. QueryOK,1row affected(0.00sec)
  4. mysql>grant all privileges on zabbix.*to zabbix@’127.0.0.1’identifiedby’zabbixpwd’;
  5. QueryOK,0rows affected(0.04sec)
  6. mysql>flush privileges;
  7. QueryOK,0rows affected(0.04sec)
  8. mysql>setnames utf8;#设置编码
  9. QueryOK,0rows affected(0.00sec)
  10. mysql>usezabbix;#切换数据库准备导表
  11. Databasechanged
  12. mysql>source/usr/src/zabbix-4.0.3/database/mysql/schema.sql#开始导表,不要顺序乱了
  13. mysql>source/usr/src/zabbix-4.0.3/database/mysql/data.sql
  14. mysql>source/usr/src/zabbix-4.0.3/database/mysql/images.sql#导表完成
  15. 修改zabbix的配置文件

  16. [root@zabbix zabbix-4.0.3]#cd/usr/local/zabbix/etc/
  17. [root@zabbix etc]#ls
  18. zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
  19. [root@zabbix etc]#cp zabbix_server.conf zabbix_server.conf.bak
  20. [root@zabbix etc]#ls
  21. zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.bak zabbix_server.conf.d
  22. [root@zabbix etc]#cat zabbix_server.conf
  23. LogFile=/usr/local/zabbix/zabbix_server.log
  24. DBHost=127.0.0.1
  25. DBName=zabbix
  26. DBUser=zabbix
  27. DBPassword=zabbixpwd
  28. DBPort=3306
  29. Timeout=30
  30. AlertScriptsPath=/usr/local/zabbix/alertscripts#放置我们微信告警,以及邮件告警脚本的位置。
  31. ExternalScripts=/usr/local/zabbix/externalscripts
  32. LogSlowQueries=3000
  33. 一定要把配置文件里的#号都删掉

  34. 启动zabbix

  35. [root@zabbix etc]#chown zabbix:zabbix-R/usr/local/zabbix/#给目录降权
  36. [root@zabbix etc]#zabbix_server#启动zabbix,命令就是zabbix
  37. [root@zabbix etc]#ss-lntup|grep10051#查看端口,server端已经启动
  38. tcp LISTEN0128*:10051
  39. [root@zabbix etc]#mkdir-p/usr/local/nginx/html/zabbix
  40. [root@zabbix etc]#cp-a/usr/src/zabbix-4.0.3/frontends/php/* /usr/local/nginx/html/zabbix/ #将所有的zabbix的网页复制到nginx下

    4.3在web界面登录zabbix

    使用ip登录。ip/zabbix
    image.png
    image.png

  41. 修改php的文件

  42. [root@zabbix etc]#vim/usr/local/php/etc/php.ini
  43. 将以下几行修改成这个样子

  44. 660:post_max_size=32M
  45. 372:max_execution_time=350
  46. 382:max_input_time=350
  47. 936:date.timezone=Asia/Shanghai
  48. 702:always_populate_raw_post_data=-1
  49. [root@zabbix etc]#systemctl restart php-fpm#重启php
  50. [root@zabbix etc]#ss-antup|grep9000
  51. tcp LISTEN0128127.0.0.1:9000:users:((“php-fpm”,pid=42895,fd=0),(“php-fpm”,pid=42894,fd=0),(“php-fpm”,pid=42893,fd=7))

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

  1. root@zabbix~]#ls
  2. anaconda-ks.cfg mysql-5.6.39.tar.gz nginx-1.16.1.tar.gz php-5.6.40.tar.gz zabbix-4.0.3.tar.gz zabbix.conf.php
  3. [root@zabbix~]#mv zabbix.conf.php/usr/local/nginx/html/zabbix/conf/
  4. [root@zabbix~]#cat/usr/local/nginx/html/zabbix/conf/zabbix.conf.php#里面改就是我们刚刚形成的一些内容
  5. <?php
  6. // Zabbix GUI configuration file.
  7. global$DB;
  8. $DB[‘TYPE’]=’MYSQL’;
  9. $DB[‘SERVER’]=’127.0.0.1’;
  10. $DB[‘PORT’]=’3306’;
  11. $DB[‘DATABASE’]=’zabbix’;
  12. $DB[‘USER’]=’zabbix’;
  13. $DB[‘PASSWORD’]=’zabbixpwd’;
  14. // Schema name. Used for IBM DB2 and PostgreSQL.
  15. $DB[‘SCHEMA’]=’’;
  16. $ZBX_SERVER=’localhost’;
  17. $ZBX_SERVER_PORT=’10051’;
  18. $ZBX_SERVER_NAME=’’;
  19. $IMAGE_FORMAT_DEFAULT=IMAGE_FORMAT_PNG;

image.png
image.png

4.4禁用没用的用户

image.png
image.png

4.5修改超户的密码

image.png
image.png
image.png
image.png
image.png
image.png

4.6zabbix网页汉化补丁包

  1. [root@zabbix~]#ls/usr/local/nginx/html/zabbix/fonts/#这个目录里放着的就是zabbix的字体,但是没有中文字体所以会出现乱码,我们的解决方法就是下载个字体覆盖到这
  2. DejaVuSans.ttf
  3. [root@zabbix~]#wget https://[raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf](http://raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf)#下载字体的网址。
  4. [root@zabbix~]#ls
  5. anaconda-ks.cfg msyh.ttf mysql-5.6.39.tar.gz nginx-1.16.1.tar.gz php-5.6.40.tar.gz zabbix-4.0.3.tar.gz
  6. [root@zabbix~]#mv msyh.ttf/usr/local/nginx/html/zabbix/fonts/
  7. [root@zabbix~]#ls/usr/local/nginx/html/zabbix/fonts/
  8. DejaVuSans.ttf msyh.ttf
  9. [root@zabbix~]#vim/usr/local/nginx/html/zabbix/include/defines.inc.php#修改php文件里的默认,将DejaVuSans字体,改成msyh微软雅黑字体
  10. 65define(‘ZBX_GRAPH_FONT_NAME’,’msyh’);// font file name
  11. 110define(‘ZBX_FONT_NAME’,’msyh’);#将65行和110行替换成这个样子。
  12. php插入的不像java之类的需要编译类文件等,直接就可以使用。

    4.7汉化完成

    image.png