OpenTSDB+Grafana 监控环境搭建
硬件3台服务器.192.168.1.1;192.168.1.2;192.168.1.3。64位6.5
1. 安装 rzsz
yum install lrzsz
2.安装jdk
yum -y list java*
yum -y install java-1.7.0-openjdk*
3.配置JAVA_HOME
vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
// 生效
source /etc/profile
// 测试JAVA_HOME是否生效
4.安装zookeeper
上传zookeeper
cd /usr/local/src
rz
tar -zxvf zookeeper-3.4.8.tar.gz
cd /home
mkdir zookeeper
cd zookeeper
mkdir data
mkdir logs
cp -r /usr/local/src/zookeeper-3.4.8 /home/zookeeper/
cd /home/zookeeper/zookeeper-3.4.8/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
#修改数据目录.
dataDir=/home/zookeeper/data
#增加日志目录
dataLogDir=/home/zookeeper/logs
#增加部署地址
server.1=192.168.1.1:2888:3888
server.2=192.168.1.2:2888:3888
server.3=192.168.1.3:2888:3888
#修改server.1的myid。写入1;server.2则写入2
cd /home/zookeeper/data
vi myid
#其他两台重复以上步骤
#启动
cd /home/zookeeper/zookeeper-3.4.8/bin
./zkServer.sh start
#关闭
./zkServer.sh stop
#测试集群是否都启动成功
./zkCli.sh -server 192.168.1.1:2181
5.安装
一、配置hosts文件
二、建立hadoop运行帐号(也可直接用root账号)
三、配置ssh免密码连入
四、下载并解压hadoop安装包
五、配置各种配置文件
六、向各节点复制hadoop
七、格式化namenode
八、启动hadoop
九、用jps检验各后台进程是否成功启动
十、通过网站查看集群情况
5.1配置host
(1)编辑/etc/hosts文件
vi /etc/hosts
192.168.1.1 sms-test-001
#sms-test-001作为master,sms-test-002,sms-test-003作为slave
(2)编辑/etc/sysconfig/network文件
(3)Hostname设置
hostname sms-test-001
(4)输入hostname验证
5.2建立hadoop
运行账号
//设置hadoop用户组
sudo groupadd hadoop
//添加一个hadoop用户,此用户属于hadoop用户组
sudo useradd -s /bin/bash -d /home/user/hadoop -m hadoop -g hadoop
#设置hadoop权限./home目录的读写执性权限
setfacl -m u:hadoop:rwx /home
//设置用户hadoop登录密码
sudo passwd hadoop
//切换到hadoop用户中
su hadoop
【注】不一定要新建账号。例如我用root账号登录的,直接用root账号也可以,为了方便下面就直接用root账号操作。
5.3配置ssh免密码连接
#单点回环免密码登录
cd /root
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
#验证免密码。welcome则表示成功
ssh localhost
#退出用exit
#master连接slave免密码登录
#sms-test-002服务器
cd /root/.ssh
scp root@sms-test-001:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys
#sms-test-001服务器ssh sms-test-002。第一次需要密码,后面就可以免密码登录
#sms-test-003服务器重复以上操作。
#sms-test-001登录002和003可以免密码登录了,但是002,003登录001还需要手动认证。
#slave连接master免密码登录。重复master连接slave的操作
6.安装hadoop
#在sms-test-001服务器上传hadoop
cd /usr/local/src
rz
tar -zxvf hadoop-2.6.0.tar.gz
cd /home
mkdir hadoop
cd /home/hadoop
cp -r hadoop-2.6.0 /home/hadoop/
cd hadoop-2.6.0
ll
cd etc/hadoop
ls
#修改hadoop-env.sh、yarn-env.sh、core-site.xml、hdfs-size.xml、mapred-site.xml、yarn-size.xml、slaves文件
(1)配置hadoop-env.sh和yarn-env.sh的JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
(2)配置core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://sms-test-001:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>sms-test-001:2181,sms-test-002:2181,sms-test-003:2181</value>
</property>
(3)配置hdf-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hdfs_data/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hdfs_data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>sms-test-001:50090</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
(4)配置mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>Master.Hadoop:50030</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>sms-test-001:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>sms-test-001:19888</value>
</property>
(5)配置yarn-site.xml(8088端口如果想通过外网访问,则要配置成外网地址)
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>sms-test-001:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>sms-test-001:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>sms-test-001:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>sms-test-001:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>sms-test-001:8088</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>768</value>
</property>
(5)配置slaves文件
vi slaves
#写入
sms-test-002
sms-test-003
#至此sms-test-001的配置已完成。可以把sms-test-001的hadoop拷贝到002和003上,也可以重新上传,然后把上面七个文件的改成和sms-test-001的一样的就行。
(6)格式化namenode (Master机器上面)
cd /home/hadoop/hadoop-2.6.0/bin
./hdfs namenode -format
(7)启动hds.会报一个警告,不过不影响。(注:如果安装的是openjdk需要启动可能失败,检查是否安装nss)
cd /home/hadoop/hadoop-2.6.0/sbin
#sms-test-001上执行jps看到有NameNode,ResourceManager,SecondaryNameNode。002和003上执行jps看到有DataNode
7.安装hbase
在sms-test-001服务器上传hbase
cd /usr/local/src
rz
tar -zxvf hbase-1.1.4-bin.tar.gz
cd /home/
mkdir hbase
cd /home/hbase
cp -r /usr/local/src/hbase-1.1.4 /home/hbase
#修改hbase-env.sh
cd /home/hbase/hbase-1.1.4/conf
vi hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0
export HBASE_MANAGES_ZK=false
#修改hbase-site.xml
vi hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://sms-test-001:9000/hbase/hbase-1.1.4</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hbase/tmp</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>sms-test-001:2181,sms-test-002:2181,sms-test-003:2181</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hbase/zookeeper</value>
</property>
#��置regionservers
sms-test-001
sms-test-002
sms-test-003
#创建目录
cd /home/hbase
mkdir tmp
mkdir zookeeper
#设置hbase环境变量
vi /etc/profile
export HBASE_HOME=/home/hbase/hbase-1.1.4
#保存,使环境变量生效
source /etc/profile
#分发 hbase 到其它机器,并在其上设置环境变量
#在sms-test-001上启动hbase
cd /home/hbase/hbase-1.1.4/bin
./start-hbase.sh
jps
#可以看到HMaster,HRegionServer
#在002和003上可以执行jps只能看到HRegionServer
8.安装Opentsdb
在sms-test-001服务器上传opentsdb
cd /user/local/src
rz
tar -zxvf opentsdb-2.2.0.tar.gz
cd /home
cp -r /usr/local/src/opentsdb-2.2.0 /home
mv opentsdb-2.2.0 opentsdb
#Opentsdb依赖Gnuplot,它 是一个命令行的交互式绘图工具。用户通过输入命令,可以逐步设置或修改绘图环境,并以图形描述数据或函数,使我们可以借由图形做更进一步的分析
yum install gnuplot
#安装opentsdb
cd /home/opentsdb
./build.sh
#注:build过程可能失败,安装autoconf和automake(
yum install autoconf;
yum install automake
)
#如果报'aclocal-1.14' is missing on your system 则执行 sudo autoreconf -ivf
#配置环境变量,在shell中执行如下命令
env COMPRESSION=NONE HBASE_HOME=/home/hadoop/hadoop-2.6.0
#建表
cd /home/opentsdb/src
vi create_table.sh
create 'tsdb-uid',
{NAME => 'id', COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER'},
{NAME => 'name', COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER'}
create 'tsdb',
{NAME => 't', VERSIONS => 1, COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER'}
create 'tsdb-tree',
{NAME => 't', VERSIONS => 1, COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER'}
create 'tsdb-meta',
{NAME => 'name', COMPRESSION => '$COMPRESSION', BLOOMFILTER => '$BLOOMFILTER'}
#运行opentsdb
./build/tsdb tsd --port=4242 --staticroot=build/staticroot --cachedir=/tmp/tsdtm --zkquorum=sms-test-001:2181,sms-test-002:2181,sms-test-003:2181
#启动参数说明
Usage: tsd --port=PORT --staticroot=PATH --cachedir=PATH
Starts the TSD, the Time Series Daemon
--async-io=true|false Use async NIO (default true) or traditionalblocking io
--auto-metric Automatically add metrics to tsdb as they are inserted. Warning:this may cause unexpected metrics to be tracked
--cachedir=PATH Directory underwhich to cache result of requests.
--flush-interval=MSEC Maximum time for which a new data point canbe buffered (default: 1000).
--port=NUM TCPport to listen on.
--staticroot=PATH Web root from which toserve static files (/s URLs).
--table=TABLE Nameof the HBase table where to store the time series (default: tsdb).
--uidtable=TABLE Name of theHBase table to use for Unique IDs (default: tsdb-uid).
--worker-threads=NUM Number for async io workers(default: cpu * 2).
--zkbasedir=PATH Path underwhich is the znode for the -ROOT- region (default: /hbase).
--zkquorum=SPEC Specificationof the ZooKeeper quorum to use (default: localhost).
## /home/opentsdb/build下的tsdb运维脚本
#添加指标
./tsdb mkmetric sms.user.submit
#删除指标
./tsdb uid delete metrics sms.user.submit
#查看指标
./tsdb uid grep sms.user.submit
9.grafana安装
1.sudo yum install initscripts fontconfig
2.sudo rpm -Uvh grafana-4.0.0-1478693311beta1.x86_64.rpm
配置文件 /etc/grafana/grafana.ini
启动 service grafana-server start
关闭 service grafana-server stop
附录:
1.磁盘挂载
fdisk -l //先查询未挂载的硬盘名如:sdb1 等
mkfs.ext4 /dev/xvdb 开始格式化
df -h
mount /dev/xvdb /home/hdfs_data 开始挂载
vi /etc/fstab 设置自动开启启动
按格式添加
/dev/xvdb /home/hdfs_data ext4 defaults 0 0
硬盘名 需要挂载的位置 格式
卸载挂载点:
umount /home/hdfs_data