zabbix源码安装

安装mariadb(mysql)

// 执行安装命令

# yum -y install mariadb mariadb-server mariadb-devel

// 启动服务

# systemctl start mariadb

// 设置为开机启动

# systemctl enable mariadb

// 修改root登录密码

# mysql_secure_installation

Enter current password for root (enter for none): [回车]

Set root password? [Y/n] y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

// 测试登陆

# mysql -uroot -ppassword

// 设置root访问权限

# mysql -uroot -ppassword

MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'qwe123' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit;

安装依赖库

// 以下二选一

// 最小

# yum -y install gcc net-snmp-devel libxml2-devel libcurl-devel libevent libevent-devel

// 完全

# yum -y install gcc net-snmp-devel net-snmp net-snmp-utils libxml2 libxml2-devel libcurl libcurl-devel libevent libevent-devel

# cd /home

# tar -zxf zabbix-3.4.4.tar.gz

# cd zabbix-3.4.4

# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

# make && make install

初始化数据

# mysql -uroot -ppassword

MariaDB [none]> create database if not exists zabbix default character set utf8 collate utf8_general_ci;

MariaDB [none]> use zabbix;

MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/schema.sql;

MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/images.sql;

MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/data.sql;

安装fping

zabbix 3之后把ping更换为fping了,所以需要安装fping

# wget http://www.fping.org/dist/fping-4.0.tar.gz

# tar -zxvf fping-4.0.tar.gz

# cd fping-4.0

# ./configure --prefix=/usr/local/fping

# make && make install

配置

// server配置

# cd /usr/local/zabbix/

# vi ./etc/zabbix_server.conf

DBHost=localhost

DBName=zabbix

DBUser=root

DBPassword=password

AllowRoot=1

FpingLocation=/usr/local/fping/sbin/fping

// agent配置

# vi ./etc/zabbix_agentd.conf

Server=0.0.0.0/0

Hostname=Zabbix server #注释掉

AllowRoot=1

启动服务

# /usr/local/zabbix/sbin/zabbix_server

# /usr/local/zabbix/sbin/zabbix_agent

配置前端环境

// 安装apache+php

# yum -y install httpd httpd-devel php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml php-bcmath

// 复制前端代码到站点下

# cp -r /home/zabbix-3.4.4/frontends/php /var/www/html/zabbix

// 关闭防火墙

# systemctl stop firewalld

# setenforce 0

# vi /etc/selinux/config

SELINUX=disabled

// 修改php配置

# vi /etc/php.ini

memory_limit=128M

post_max_size=16M

upload_max_filesize=20M

max_execution_time=300

max_input_time=300

date.timezone=Asia/Shanghai

// 重启站点

# systemctl restart httpd

zabbix配置Java Gateway

查看是否已经安装了zabbix_java

/usr/local/zabbix/sbin/zabbix_java/start.sh 是否存在

如未安装,则进入zabbix的源码目录,进行zabbix_java的安装

# cd /home/zabbix-3.4.4

# ./configure --prefix=/usr/local/zabbix --enable-java

# make && make install

修改zabbix_server的配置文件

# vi /usr/local/zabbix/etc/zabbix_server.conf

JavaGateway=localhost

JavaGatewayPort=10052

StartJavaPollers=5

然后重启zabbix_server

启动zabbix_java

# /usr/local/zabbix/sbin/zabbix_java/startup.sh

zabbix配置mysql监控

编辑脚本文件/usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh

# vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh

#!/bin/bash

# 用户名

MYSQL_USER='root'

# 密码

MYSQL_PWD='asd123'

# 主机地址/IP

MYSQL_HOST='localhost'

# 端口

MYSQL_PORT='3306'

# 数据连接

MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"

# 参数是否正确

if [ $# -ne "1" ];then

echo "arg error!"

fi

# 获取数据

case $1 in

Uptime)

result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`

echo $result

;;

Com_update)

result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`

echo $result

;;

Slow_queries)

result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`

echo $result

;;

Com_select)

result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`

echo $result

;;

Com_rollback)

result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`

Questions)

result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`

echo $result

;;

Com_insert)

result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`

echo $result

;;

Com_delete)

result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`

echo $result

;;

Com_commit)

result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`

echo $result

;;

Bytes_sent)

result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`

echo $result

;;

Bytes_received)

result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`

echo $result

;;

Com_begin)

result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`

echo $result

;;

*)

result=`${MYSQL_CONN} extended-status |grep -w "$1" |cut -d"|" -f3`

echo $result

;;

esac

编辑配置文件/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_mysql.conf

# vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_mysql.conf

#Mysql版本

UserParameter=mysql.version,mysql -V

# 获取mysql性能指标,这个是上面定义好的脚本

UserParameter=mysql.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh $1

# 获取mysql运行状态

UserParameter=mysql.ping,mysqladmin -uroot -pqwe123 -P3306 -hlocalhost ping | grep -c alive

编辑zabbix_agentd的配置文件,加入zabbix_mysql.conf配置

# vi /usr/local/zabbix/etc/zabbix_agentd.conf

// 去掉#

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

重启zabbix_agent

测试是否成功

# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -I 172.16.1.162 -k mysql.version

附录: windows下的脚本

mysql_ping.vbs

Set objFS =CreateObject("Scripting.FileSystemObject")

Set objArgs = WScript.Arguments

str1 = getCommandOutput("mysqladmin -uroot -pqwe123 ping")

If Instr(str1,"alive") > 0Then

WScript.Echo 1

Else

WScript.Echo 0

End If

Function getCommandOutput(theCommand)

Dim objShell, objCmdExec

Set objShell =CreateObject("WScript.Shell")

Set objCmdExec = objshell.exec(thecommand)

getCommandOutput =objCmdExec.StdOut.ReadAll

end Function

mysql_status.vbs

Set objFS = CreateObject("Scripting.FileSystemObject")

Set objArgs = WScript.Arguments

str1 = getCommandOutput("mysqladmin -uroot -pqwe123 extended-status")

Arg = objArgs(0)

str2 = Split(str1,"|")

For i = LBound(str2) to UBound(str2)

If Trim(str2(i)) = Arg Then

WScript.Echo TRIM(str2(i+1))

Exit For

End If

next

Function getCommandOutput(theCommand)

Dim objShell, objCmdExec

Set objShell =CreateObject("WScript.Shell")

Set objCmdExec = objshell.exec(thecommand)

getCommandOutput =objCmdExec.StdOut.ReadAll

end Function

zabbix配置tomcat监控

启用tomcat的jmx

windows下,在catalina.bat 头部增加

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

linux下,在catalina.sh中,CATALINA_OUT前增加

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.2.207"

下载catalina-jmx-remote.jar到tomcat/lib下

修改tomcat的server.xml文件,加入以下代码

启动tomcat

确认zabbix_server启用了Java Gateway,参考上面

在zabbix的控制台添加主机JMX接口

172.16.1.162:12345

linux snmp配置

确认snmp代理是否已安装

# rpm -q net-snmp

如果未安装,安装snmp

# yum install net-snmp net-snmp-devel net-snmp-utils

修改配置 /etc/snmp/snmpd.conf

com2sec notConfigUser default public

#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

#access notConfigGroup "" any noauth exact systemview none none

access notConfigGroup "" any noauth exact mib2 none none

启动并设置为自启动

systemctl start snmpd

systemctl enable snmpd

zabbix自动发现各网卡MAC地址

在zabbix控制台,找到模版Template Module Interfaces SNMPv2

Template Module Interfaces SNMPv2

选择自动发现规则

自动发现规则

选择Network Interfaces Discovery

Network Interfaces Discovery

选择监控项原型

监控项原型

点击按钮创建监控项原型

创建监控项原型

按下图填入相应的内容

MAC监控项原型

zabbix配置ngnix监控

启用nginx status

// 下载nginx源码,再用以下命令编译安装

# ./configure --with-http_stub_status_module

# make && make install

// 修改/usr/local/nginx/conf/nginx.conf,增加以下location

location /ngx_status {

stub_status on;

access_log off;

}

Active connections: 3

server accepts handled requests

3 3 1

Reading: 0 Writing: 1 Waiting: 2

编写服务端获取nginx信息的脚本文件ngx_status.sh

#!/bin/bash

HOST="192.168.2.207"

PORT="81"

# 检测nginx进程是否存在

function ping {

/sbin/pidof nginx | wc -l

}

# 检测nginx性能

function active {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'

}

function reading {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'

}

function writing {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'

}

function waiting {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'

}

function accepts {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'

}

function handled {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'

}

function requests {

/usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'

}

# 执行function

$1

测试使用

zabbix_get -s localhost -k 'nginx.status[ping]'

配置监控项

zabbix_proxy安装和配置

安装mariadb(mysql)

// 执行安装命令

# yum -y install mariadb mariadb-server mariadb-devel

// 启动服务

# systemctl start mariadb

// 设置为开机启动

# systemctl enable mariadb

// 修改root登录密码

# mysql_secure_installation

Enter current password for root (enter for none): [回车]

Set root password? [Y/n] y

New password:

Re-enter new password:

Remove anonymous users? [Y/n] y

Disallow root login remotely? [Y/n] n

Remove test database and access to it? [Y/n] y

Reload privilege tables now? [Y/n] y

// 测试登陆

# mysql -uroot -ppassword

// 设置root访问权限

# mysql -uroot -ppassword

MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'qwe123' with grant option;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> exit;

安装依赖库

# yum -y install gcc net-snmp-devel libssh2-devel

# cd /home

# tar -zxf zabbix-3.4.4.tar.gz

# cd zabbix-3.4.4

# ./configure --prefix=/usr/local/zabbix --enable-proxy --with-net-snmp --with-mysql --with-ssh2

# make && make install

初始化数据

# mysql -uroot -ppassword

MariaDB [none]> create database if not exists zabbix_proxy default character set utf8 collate utf8_general_ci;

MariaDB [none]> use zabbix_proxy;

MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/schema.sql;

安装fping

zabbix 3之后把ping更换为fping了,所以需要安装fping

# wget http://www.fping.org/dist/fping-4.0.tar.gz

# tar -zxvf fping-4.0.tar.gz

# cd fping-4.0

# ./configure --prefix=/usr/local/fping

# make && make install

配置

// server配置

# cd /usr/local/zabbix/

# vi ./etc/zabbix_proxy.conf

ProxyMode=0

Server=192.168.31.199(zabbix server)

Hostname=proxy01

DBHost=localhost

DBName=zabbix_proxy

DBUser=root

DBPassword=password

AllowRoot=1

FpingLocation=/usr/local/fping/sbin/fping

关闭防火墙

# systemctl stop firewalld

# setenforce 0

# vi /etc/selinux/config

SELINUX=disabled

启动服务

# /usr/local/zabbix/sbin/zabbix_proxy

在zabbix控制台创建agent代理程序

创建agent代理程序

持续集成mysql_持续集成环境搭建(5)zabbix搭建和使用相关推荐

  1. 持续集成实战 —— Jenkins自动化测试环境搭建

    阅读目录 1.目的 2.说明 3.项目描述&事前准备 4.环境介绍 5.服务基础配置 5.1 J-Server 5.2 S-Server 6. Jenkins自动化任务配置与部署 6.1 节点 ...

  2. 从服务器基础环境配置到搭建Docker+Gitlab+Gitlab Runner,完整介绍Spring Boot项目的持续集成与持续交付具体实现!

    1. 序言 在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目的场景更是甚多.另外,在当下的热门技术栈中,微服务开发模式.前后端分离开发模式逐渐盛行,Spring Boot.VU ...

  3. 【Jenkins】持续集成、持续交付与持续部署

    持续集成.持续交付与持续部署,都是软件开发过程中的很好的实践. 一.持续部署 装修厨房 全部装好之后发现灯不亮,电路有问题:冷热水装反了,管路有问题.这些问题要解决就必须把地砖.墙砖拆掉--一个环节有 ...

  4. 企业项目实战k8s篇(二十)持续集成与持续交付

    持续集成与持续交付 一.git工具使用 1.git 2.git命令使用 3.上传gitee(网络仓库) 4.gitlab代码仓库 二.jenkins持续集成 1.jenkins简介 2.jenkins ...

  5. 测试开发必会:正确理解持续集成和持续交付 CI/CD

    正确理解并掌握持续集成和持续交付(CI/CD)是当下测试和质量保障相关同学的必备技能.本文作者为霍格沃兹测试学院特邀嘉宾,资深技术专家蒋刚毅,原文首发 TesterHome 社区,标题为<持续交 ...

  6. 为什么要持续集成与持续部署

    DevOps.持续集成.持续交付.持续部署.敏捷等词语大家应该都耳熟能详了,说到底就是快速交付价值,从工程上.管理上.组织上.工具上来提高效率,打造可靠的.快速的产品(项目)交付过程.本书将围绕项目管 ...

  7. jenkins实现持续集成、持续部署

    jenkins实现持续集成.持续部署 一.分析我们需要做什么才能实现持续集成.部署 1.分析jenkins需要帮我们做哪些内容 2.拆分需要实现的步骤 二.配置持续集成和部署 0.前置条件 1.实现第 ...

  8. Android架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    Android架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持 ...

  9. iOS架构篇-5 CI/CD(持续集成、持续交付、持续部署)

    iOS架构篇-5 CI/CD(持续集成.持续交付.持续部署) CI CI是指持续集成,代码的更新会定期自动构建.测试并合并到公共仓库中,方便多分支时解决冲突问题 CD CD是指持续交付和/或持续部署, ...

最新文章

  1. 【深度学习】DIY 人脸识别技术的探索(二)
  2. PyCharm的隐藏技巧(Tips)-快捷键等积累
  3. linux cd系统下载地址,Linux系统应急光盘SystemRescueCd v8.0.1 x64下载
  4. 永劫无间大神玩家ZX迷恋上单人三排,单局28杀,过程太过瘾了
  5. 深入理解C语言变量和内存——整理篇
  6. 生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。
  7. CSS之创建等高列布局之三
  8. 消息队列(4):Kafka
  9. 离散中多重组合是指_PLC编程中如何使用开关、模拟、脉冲量
  10. Day9-HTML body属性
  11. 高性能MySQL(第二版)第三章 架构优化和索引(上)——读书笔记
  12. (一)Java中的HashMap多线程死循环
  13. java excel 电话号码_数值或者电话号码被EXCEL转成了科学计数法,用XSSFCell 如何读取...
  14. 图像膨胀、腐蚀算法实现 python源码
  15. [家里蹲大学数学杂志]第275期华中师范大学2011年数学专业复试试题及部分参考解答...
  16. Oracle密码过期处理
  17. 红帽(redhat linux) 初级认证(RHCSA)考点详解
  18. 各种系统架构图与详细说明
  19. tableau连接Mysql出现的密码验证 cannot be loaded
  20. AndroidKK4.4 Power key电量屏幕时button light先亮LCD后亮的卡顿问题分析

热门文章

  1. 读书笔记 23种设计模式总结
  2. Python:进阶操作(1)
  3. 【转】提纲挈领webrtc之NS(noise suppression)模块
  4. 【Python】正负无穷
  5. [云炬创业管理笔记]第五章打磨最有效的商业模式测试3
  6. [云炬ThinkPython阅读笔记]2.7 注释
  7. [2dPIC调试笔记]输入参数归一化1014(1)
  8. 蓝桥杯大学组python试题_第十届蓝桥杯2019年C/C++ 大学A组省赛试题
  9. python从random生成列表_Python 学习DAY 17 列表生成式,生成器,迭代器,time模块,random模块...
  10. 深入理解C++类的构造函数与析构函数