CentOS 7 部署zabbix-3.4

来源:互联网 发布:淘宝内部优惠群怎么做 编辑:程序博客网 时间:2024/06/04 00:43

zabbix功能特性

Zabbix有常见的商业监控软件所具备的功能

数据收集

  • 可用、性能检测。
  • 支持Agent、SNMP(包括Trapping和Polling)、IPMI、JMX、SSH、Telnet等。
  • 自定义的检测。
  • 自定义收集数据的频率。
  • 服务器端/代理段和客户端模式。

灵活的触发器

可以定义非常灵活的 阀值和多种相关联的条件。

高度可定制的告警

  • 发送通知,可定制包括告警级别、动作升级、收件人和媒体类型。
  • 通知可以使用全局宏变量和自定义的变量。
  • 自动处理功能包括远程命令的自动调用和执行。

实时的绘图功能

监控项将数据实施绘制在图形上。

Web监控能力

Zabbix可以模拟浏览器请求一个网站,并检查返回值和响应时间。

多种可视化的展示

  • 可以自定义监控的展示图,将多种监控数据集中展示到一张图中。
  • 网络拓扑图。
  • 自定义Screens和Slide shows可以将多种图形集中展示。
  • 报表功能。
  • 资源使用情况的监控展示。

历史数据的存储

  • 数据存储在数据库中。
  • 历史数据的存放周期可配置。
  • 定期删除过期的历史数据。

配置非常容易

配置比较简单,只需要以下两步即可。
第一步:添加设备。
第二步:应用模板即可完成监控。

使用模板

  • 模板可以分组
  • 模板具有可继承性。

网络发现

支持自动发现网络设备和服务器(可以通过配置自动发现服务规则实现。)
Agent自动发现
支持自动发现实现动态监控的批量监控(支持自定义)内置的自动发现包括文件系统、网络接口、SNMP OLD,可定制自动发现。

快速的访问接口

Web页面基于PHP
远程访问。
日志审计。

API功能

应用API功能可以方便地和其他系统结合,包括手机客户端的使用。

系统权限

不同的用户展示监控的资源不同。
对用户的身份认证

程序特性

用C语言编写,其性能和内存开销非常小。

大型环境的支持

利用Zabbix-Proxy方式即可轻松构建远程监控。

zabbix组件及进程

组件

  • Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行;
  • Database Storage:专用于存储所有配置信息,以及由zabbix收集的数据;
  • Web interface:zabbix的GUI接口,通常与Server运行在同一台主机上;
  • Proxy:可选组件,常用于分布监控环境中,代理Server收集部分被监控端的监控数据并统一发往Server端;
  • Agent:部署在被监控主机上,负责收集本地数据并发往Server端或Proxy端;

注:zabbix node也是 zabbix server的一种,说zabbix-proxy会说到这块

进程

  • zabbix-server
    zabbix服务端的核心程序
  • zabbix-proxy
    是zabbix代理服务程序,用于分布式监控proxy模式中
  • zabbix-agent
    zabbix专用客户端的程序,源码安装的是zabbix_agentd
  • zabbix_java_gateway
    java采集服务端,用于JMX监控方式
  • zabbix_get
    数据获取测试命令
  • zabbix_sender
    zabbix的Trapping模式,将采集到的数据通过定时任务等主动发送给zabbix-server

zabbix常用术语

  • host(主机):要监控的网络设备,可由IP或DNS名称指定
  • host group(主机组):主机的逻辑容器,可以包含主机和模板,但同一个组内的主机和模板不能互相链接;主机组通常在给用户或用户组指派监控权限时使用
  • item(监控项):一个特定监控指标的相关数据,这些数据来自于被监控对象;item是zabbix进行数据收集的核心,没有item,将没有数据;相对某监控对象来说,每个item都有”key”进行标识
  • trigger(触发器):一个表达式,用于评估某监控对象的某特定item内所接收到的数据是否在合理范围内,即阀值;接受到的数据大于阀值是,触发器状态将从OK转变为Problem,当数据量再次回归到合理范围时,其状态将从Problem转换回OK
  • event(事件):即发生的一个值得关注的事件,例如触发器的状态转变,新的agent或重新上线的agent的自动注册等
  • action(动作):指对于特定事件事先定义的处理方法,通过包含操作(如发送通知)和条件(何时执行操作)
  • escalation(报警升级):发送警报或执行远程命令的自定义方案,如每隔5min发送一次警报,共发送5次等
  • media(媒介):发送通知的手段和通道,如Email、Jabber或SMS
  • notification(通知):通过选定的媒介向用户发送的有关某事件的信息
  • remote command(远程命令):预定义的命令,可在被监控主机处于某个特定条件下时自动执行
  • template(模板):用于快速定义被监控主机的预设条目集合,通常包含了item、trigger、graph、screen、application以及low-level -discovery rule;模板可以直接链接至单个主机
  • application(应用):一组item的集合
  • web scennaro(web场景):用于检测web站点可用性的一个或多个http请求
  • frontend(前端):zabbix的web接口

zabbix-server 部署

这里基于lnmp环境来部署

MariaDB

yum源:

~]# vim /etc/yum.repos.d/MariaDB.repo[mariadb]name = MariaDBbaseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.1/centos7-amd64gpgkey=https://mirrors.tuna.tsinghua.edu.cn//mariadb/yum/RPM-GPG-KEY-MariaDBgpgcheck=1

安装

~]# yum install mariadb-server mariadb-client~]# systemctl start mariadb~]# systemctl enable mariadb~]# mysql_secure_installation

配置

vim /etc/my.cnf[mysqld]user                           = mysqldefault-storage-engine         = InnoDBsocket                         = /var/lib/mysql/mysql.sockpid-file                       = /var/lib/mysql/mysql.pidkey-buffer-size                = 32Mmyisam-recover                 = FORCE,BACKUPmax-allowed-packet             = 16Mmax-connect-errors             = 10000datadir                        = /var/lib/mysql/log-bin                        = /var/lib/mysql/mysql-binexpire-logs-days               = 14sync-binlog                    = 1tmp-table-size                 = 32Mmax-heap-table-size            = 32Mquery-cache-type               = 0query-cache-size               = 0max-connections                = 500thread-cache-size              = 50open-files-limit               = 65535table-definition-cache         = 4096table-open-cache               = 4096innodb-log-files-in-group      = 2innodb-log-file-size           = 256Minnodb-flush-log-at-trx-commit = 1innodb-file-per-table          = 1innodb-buffer-pool-size        = 2Glog-error                      = /var/lib/mysql/mysql-error.loglog-queries-not-using-indexes  = 1slow-query-log                 = 1slow-query-log-file            = /var/lib/mysql/mysql-slow.logcharacter_set_server           = utf8systemctl restart mariadb

安装zabbix-server

添加zabbix yum源

~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm -y

将repo中的一段注释掉

vim /etc/yum.repos.d/zabbix.repo#[zabbix-non-supported]#name=Zabbix Official Repository non-supported - $basearch#baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/#enabled=1#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX#gpgcheck=1

安装zabbix-server

~]# yum install -y zabbix-server-mysql zabbix-web-mysql //这个会自动装好很多依赖,比如httpd什么的,有洁癖的建议源码编译安装

创建zabbix数据库并授权用户

> create database zabbix;> grant all on zabbix.* to zabbix@'localhost' identified by '123456';> flush privileges;

导入zabbix数据库:

~]# cd /usr/share/doc/zabbix-server-mysql-3.4.1/ ]# zcat create.sql.gz | mysql -uzabbix -p123456 zabbix

配置zabbix-server

# egrep -v ^'(#|^$)' /etc/zabbix/zabbix_server.confLogFile=/var/log/zabbix/zabbix_server.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_server.pidDBHost=localhostDBName=zabbixDBUser=zabbixDBPassword=123456DBSocket=/var/lib/mysql/mysql.sockStartPollers=10SNMPTrapperFile=/var/log/snmptrap/snmptrap.logTimeout=4AlertScriptsPath=/usr/lib/zabbix/alertscriptsExternalScripts=/usr/lib/zabbix/externalscriptsLogSlowQueries=3000

启动服务

systemctl start zabbix-serversystemctl enable zabbix-server

配置zabbix-web GUI

安装nginx:

yum install nginx php-fpm -y

配置nginx:

vim /etc/nginx/nginx.confuser  nginx;worker_processes  auto;error_log  /var/log/nginx/error.log warn;pid        /var/run/nginx.pid;events {    worker_connections  1024;    use epoll;    multi_accept on;}http {    include       /etc/nginx/mime.types;    default_type  application/octet-stream;    server_names_hash_bucket_size 128;    client_header_buffer_size 32k;    large_client_header_buffers 4 32k;    client_max_body_size 50m;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  /var/log/nginx/access.log  main;    sendfile        on;    tcp_nopush     on;    server_tokens off;    keepalive_timeout  65;    gzip  on;    gzip_min_length  1k;    gzip_buffers    4 16k;    gzip_http_version 1.0;    gzip_comp_level 2;    gzip_types      text/plain application/x-javascript text/css application/xml;    gzip_vary on;    charset utf-8;    include /etc/nginx/conf.d/*.conf;}

配置php-fpm

# grep -i ^[a-z] /etc/php-fpm.d/www.conflisten = /dev/shm/php-cgi.socklisten.allowed_clients = 127.0.0.1listen.owner = nginxlisten.group = nginxlisten.mode = 0666user = nginxgroup = nginxpm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35slowlog = /var/log/php-fpm/www-slow.logphp_admin_value[error_log] = /var/log/php-fpm/www-error.logphp_admin_flag[log_errors] = onphp_value[session.save_handler] = filesphp_value[session.save_path] = /var/lib/php/session

添加zabbix-web的nginx配置

server {        listen 80;        server_name zabbix.knmax.com;        index index.htm index.html index.php;        root /usr/share/zabbix;        if ($host != 'zabbix.knmax.com') {                rewrite ^/(.*)$ http://zabbix.knmax.com/$1 permanent;        }    location ~ \.php$ {        fastcgi_pass   unix:/dev/shm/php-cgi.sock;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;        include        fastcgi_params;    }        location / {        if (-f $request_filename/index.html) {                    rewrite (.*) $1/index.html break;            }        if (-f $request_filename/index.php) {                    rewrite (.*) $1/index.php;            }        if (!-f $request_filename) {                    rewrite (.*) /index.php;                }    }    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {            expires      30d;        }        location ~ .*\.(js|css)?$ {            expires      12h;        }    access_log  /var/log/nginx/zabbix.log main;    error_log   /var/log/nginx/zabbix_error.log;}systemctl start nginxsystemctl enable nginxsystemctl start php-fpmsystemctl enable php-fpm

这里的域名为了安全不做dns解析,本地hosts指定下就行
修改属主权限

chown -R nginx.nginx /usr/share/zabbix/chown -R nginx.nginx /etc/zabbix/web/chmod -R 755 /usr/share/zabbix/chown -R nginx.nginx /var/lib/php/session/  这个要注意了,没修改可能造成zabbix安装配置界面点击next step没反应,而且没有错误日志

配置php:

date.timezone = Asia/Shanghaimax_execution_time = 300memory_limit = 256Mpost_max_size = 32Mupload_max_filesize = 16Mmax_input_time = 600

访问web界面安装

URL:http://zabbix.knmax.com/setup.php
zabbix-02
zabbix-03
zabbix-04
zabbix-05
zabbix-06
默认用户名密码:admin zabbix

监控zabbix-server服务器

安装zabbix-agent

yum install zabbix-agent -y

配置zabbix-agent

# grep -i ^[a-z] /etc/zabbix/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=0Server=127.0.0.1  //本机就是serverServerActive=127.0.0.1 // 主动模式需要配置的Hostname=KNMAX-MON  //主机名唯一的,主动模式使用Include=/etc/zabbix/zabbix_agentd.d/*.conf

启动服务

systemctl start zabbix-agentsystemctl enable zabbix-agent

web界面启用下就行

zabbix-07

原创粉丝点击