07 . Prometheus监控Memcached并配置Grafana

2021-05-14 14:24:19 浏览数 (1)

List
代码语言:javascript复制
  CentOS7.3
  prometheus-2.2.1.linux-amd64.tar.gz
  redis_exporter-v0.30.0.linux-amd64.tar.gz

`

节点名

IP

软件版本

硬件

网络

说明

Prometheus

192.168.43.144

list 里面都有

2C4G

Nat,内网

测试环境

Memcached

192.168.43.134

list 里面都有

2C4G

Nat,内网

测试环境

部署Prometheus

部署Promehteus请看我前面写的文章

https://www.cnblogs.com/you-men/p/12839535.html

部署Memcached
结构规划
代码语言:javascript复制
# 用户名 memcached
# 用户组 memcached
# 端口 11211

# 源码包
/root/memcached-1.5.9.tar.gz

# 解压后源码
/root/memcached-1.5.9

# 编译目录
/root/

# 安装目录
/usr/local/memcached

# 工作目录
/var/sites/memcached
初始化系统环境
代码语言:javascript复制
[root@memcached-1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
[root@memcached-1 ~]# uname -r
3.10.0-514.el7.x86_64
下载Memcached依赖
代码语言:javascript复制
# 安装libevent依赖和gcc编译工具
yum -y install libevent libevent-devel gcc
添加用户和组
代码语言:javascript复制
groupadd memcached;
useradd -s /sbin/nologin -d /dev/null -M -g memcached memcached;
下载Memcached包并编译安装
代码语言:javascript复制
wget -O ./memcached-1.5.9.tar.gz http://www.memcached.org/files/memcached-1.5.9.tar.gz
tar xvf memcached-1.5.9.tar.gz
cd memcached-1.5.9
./configure --prefix=/usr/local/memcached --prefix=/usr/local/memcahced/
make && make install 
修改配置文件
代码语言:javascript复制
mkdir -p /var/sites/memcached-1.5.9/etc/
cp /root/memcached-1.5.9/scripts/memcached.sysconfig /var/sites/memcached-1.5.9/memcached

cat /var/sites/memcached-1.5.9/memcached |sed -e "s/#.*/ /g" |uniq |awk '{if (length !=0) print $0}'
 
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="127.0.0.1"
PORT="11211"
启动Memcached
代码语言:javascript复制
/usr/local/memcahced/bin/memcached -m 16m -p 11211 -d -u memcached -c 8192

# 验证启动结果
ps -ef |grep memcahced
memcach   14967      1  0 15:27 ?        00:00:00 /usr/local/memcahced/bin/memcached -m 16m -p 11211 -d -u memcached -c 8192
            
# 启动多实例Memcached
/usr/local/memcahced/bin/memcached -m 16m -p 11212 -d -u memcached -c 8192

# 启动多实例Memcached指定PID文件
memcached -m 16m -p 11211 -d -u root -c 8192 -P /var/run/11211.pid
# 此时我们可以通过kill 命令指定pid文件关闭Memcached
kill `cat /var/run/11211.pid`
加入开机自启动

把上述两个实例的启动命令放入/etc/rc.local,以便下次开机可以自启动。

代码语言:javascript复制
tail -2 /etc/rc.local
memcached -m 16m -p 11211 -d -u root -c 8192
memcached -m 16m -p 11212 -d -u root -c 8192

# 关闭可以用killall ,pkill
Memcached启动参数说明
代码语言:javascript复制
#进程与连接设置:
-d	以守护进程(daemon)方式运行服务
-u	指定运行Memcached的用户,如果当前用户为root,需要使用此参数指定用户
-l	指定Memcached进程监听的服务器IP地址,可以不设置此参数, 如果服务器有多块网卡,可用-l指定监听的某个网卡上.

-p(小写)指定Memcached服务监听TCP端口号。默认为11211
-P(大写)设置保存Memcached的pid文件($$),保存PID到指定文件

#内存相关设置:
-m	# 指定Memcached服务可以缓存数据的最大内存,默认为64MB
-M	# Memcached服务内存不够时禁止LRU,如果内存满了会报错
-n	# 为key value——flags分配的最小内存空间,默认为48字节
-f	# chunk size增长因子,默认为1.25
-L	# 启用大内存页,可以降低内存浪费,改进性能,视图使用最多的内存空间

#并发连接设置:
-c	# 最大的并发连接数,默认是1024
-t	
# 线程数,默认4.由于Memcached采用的是NIO,所以太多线程作用不大,
# 一般用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效,
# 而linux对线程支持是非常有限的,所以不用关心了

-s # 如果只在本地通信那么可以将其监听在某个套接字上,比如mysql.scok 能够利用共享内存方式进行通信的
-S # 启用SSL认证功能

-r  # 设定最大内核大小限制
-R	# 每个event最大请求数,默认是20
-C	# 禁用CAS(可以禁止版本计数,减少开销)

#测试参数:
-v		打印较少的errors/warnings
-vv	打印非常多调试信息和错误输出到控制台
-vvv	打印极多的调试信息和错误输出,也打印内部状态转变

#其他选项可通过在命令行输入“memcached -h”命令来显示
部署Memcached_exporter
下载启动memcached
代码语言:javascript复制
wget https://github.com/prometheus/memcached_exporter/releases/download/v0.6.0/memcached_exporter-0.6.0.linux-amd64.tar.gz

tar xvf memcached_exporter-0.6.0.linux-amd64.tar.gz 

# 启动memcached
./memcached_exporter 
验证服务可用性
代码语言:javascript复制
# 验证启动端口
lsof -i:9150
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
memcached 2825 root    3u  IPv6  21747      0t0  TCP *:9150 (LISTEN)
memcached 2825 root    4u  IPv6  21968      0t0  TCP master:9150->192.168.43.84:60193 (ESTABLISHED)
memcached 2825 root    6u  IPv6  21969      0t0  TCP master:9150->192.168.43.84:60194 (ESTABLISHED)

配置Prometheus接入Memcached
配置Prometheus
代码语言:javascript复制
配置Grafana
寻找memcached模板

grafana导入模板

查看memcached仪表盘

0 人点赞