07 . Prometheus监控Memcached并配置Grafana

Posted 周常见(you-men)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了07 . Prometheus监控Memcached并配置Grafana相关的知识,希望对你有一定的参考价值。

List

  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

结构规划
# 用户名 memcached
# 用户组 memcached
# 端口 11211

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

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

# 编译目录
/root/

# 安装目录
/usr/local/memcached

# 工作目录
/var/sites/memcached
初始化系统环境
[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依赖
# 安装libevent依赖和gcc编译工具
yum -y install libevent libevent-devel gcc
添加用户和组
groupadd memcached;
useradd -s /sbin/nologin -d /dev/null -M -g memcached memcached;
下载Memcached包并编译安装
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 
修改配置文件
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
/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,以便下次开机可以自启动。

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启动参数说明
#进程与连接设置:
-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
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 
验证服务可用性
# 验证启动端口
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)

memcached1

配置Prometheus接入Memcached

配置Prometheus

配置Grafana

寻找memcached模板

memcached2

grafana导入模板

memcached3

查看memcached仪表盘

memcached3

以上是关于07 . Prometheus监控Memcached并配置Grafana的主要内容,如果未能解决你的问题,请参考以下文章

使用 Prometheus 和 Grafana 监控 Scylla db

prometheus视频教程

如何使用 Prometheus 和 Grafana 监控 Fastify 应用程序?

有没有办法用 Prometheus 和 Grafana 监控 Apache 服务器?

只监控一个命名空间 pod - Prometheus & Kubernetes & cadvisor

Zabbix 与 prometheus 的集成