技术标签: linux Prometheus
[email protected] src]# tar xf node_exporter-0.18.1.linux-amd64.tar.gz
[[email protected] src]# mv node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter-0.18.1
[[email protected] src]# ln -s /usr/local/node_exporter-0.18.1/ /usr/local/node_exporter
//修改node_exporter配置文件
[[email protected] ~]# cat /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=Prometheus node_exporter
[Service]
User=nobody
ExecStart=/usr/local/node_exporter/node_exporter --log.level=error
ExecStop=/usr/bin/killall node_exporter
[Install]
WantedBy=default.target
//启动node_exporter
[[email protected] x]# systemctl start node_exporter
//修改prometheus配置,添加监控节点
[[email protected] x]# vim /usr/local/prometheus/prometheus.yml
- job_name: 'host_monitor'
static_configs:
- targets: ['localhost:9100'] ##新增9100 端口主机监控
//检查prometheus配置语法
[[email protected] prometheus]# cd /usr/local/prometheus/
[[email protected] prometheus]# ./promtool check config prometheus.yml
Checking prometheus.yml
SUCCESS: 0 rule files found
//重启prometheus
[[email protected] x]# systemctl restart prometheus
导入主机模板8919
[[email protected] src]# wget -c
https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-
0.12.1.linux-amd64.tar.gz
[[email protected] src]# tar xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
[[email protected] src]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter-0.12.1
[[email protected] src]# ln -s /usr/local/mysqld_exporter-0.12.1/ /usr/local/mysqld_exporter
//通过systemd 方式管理
[[email protected] ~]# cat /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysql Monitoring System
Documentation=mysql Monitoring System
[Service]
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \
--collect.info_schema.processlist \
--collect.info_schema.innodb_tablespaces \
--collect.info_schema.innodb_metrics \
--collect.perf_schema.tableiowaits \
--collect.perf_schema.indexiowaits \
--collect.perf_schema.tablelocks \
--collect.engine_innodb_status \
--collect.perf_schema.file_events \
--collect.binlog_size \
--collect.info_schema.clientstats \
--collect.perf_schema.eventswaits \
--config.my-cnf=/usr/local/mysqld_exporter/my.cnf
[Install]
WantedBy=multi-user.target
[[email protected] src]# cat /usr/local/mysqld_exporter/my.cnf
[client]
# host=localhost
user=exporter
password=123456
db02 [(none)]>GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO
'exporter'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
db02 [(none)]>flush privileges;
[[email protected] ~]# systemctl start mysqld_exporter
http://ip:9104/metrics
mysql_up 1 ##代表mysql 被监控并且已经启动
- job_name: 'mysql_monitor'
static_configs:
- targets: ['172.16.0.8:9104']
[[email protected] src]# systemctl restart prometheus
Mysql 状态监控模板7362
环境准备
[[email protected] src]# cat /data/mysql/mysql3306/my3306.cnf
[mysql]
prompt="\[email protected]\h [\d]>"
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
log-error=/data/mysql/mysql3306/data/error_3306.log
server_id = 19
port = 3306
log_bin=/data/mysql/mysql3306/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
socket = /tmp/mysql3306.sock[[email protected] system]#
[[email protected] system]# cat /data/mysql/mysql3306/my3306.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
log_bin= /data/mysql/mysql3306/binlog/mysql-bin
server_id = 18
gtid-mode=on
enforce-gtid-consistency=true
port = 3306
socket = /tmp/mysql3306.sock
//主库
grant replication slave on *.* to [email protected]'172.16.0.%' identified by '123456';
//从库
CHANGE MASTER TO MASTER_HOST='172.16.0.8',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
mysql> start slave;
mysql> show slave status\G;
从库增加mysql_exporter 监控,过程和主从步骤一致
从库查看
验证从库指标
mysql_slave_status_slave_io_running
修改prometheus 配置
- job_name: 'mysql_monitor'
static_configs:
- targets: ['172.16.0.8:9104','localhost:9104']
[[email protected] src]# systemctl restart prometheus
主从模板7371
[[email protected] rules]# cat /usr/local/prometheus/rules/mysql.yml
groups:
- name: MySQL-rules
rules:
- alert: MySQL Status
expr: up == 0
for: 5s
labels:
severity: warning
annotations:
summary: "{
{
$labels.instance}}: MySQL has stop "
description: "MySQL 数据库挂了,请检查"
- alert: MySQL Slave IO Thread Status
expr: mysql_slave_status_slave_io_running == 0
for: 5s
labels:
severity: warning
annotations:
summary: "{
{
$labels.instance}}: MySQL Slave IO Thread has stop "
description: "检测MySQL 主从IO 线程运行状态"
- alert: MySQL Slave SQL Thread Status
expr: mysql_slave_status_slave_sql_running == 0
for: 5s
labels:
severity: warning
annotations:
summary: "{
{
$labels.instance}}: MySQL Slave SQL Thread has stop "
description: "检测MySQL 主从SQL 线程运行状态"
停止从库观察
[[email protected] rules]# systemctl stop mysqld3306
停止从库sql 线程观察
mysql> stop slave sql_thread;
[[email protected] src]# wget https://github.com/oliver006/redis_exporter/releases/download/v0.30.0/redis_exporter-v0.30.0.linux-amd64.tar.gz
[[email protected] src]# mkdir /usr/local/redis_exporter
[[email protected] src]# tar xf redis_exporter-v0.30.0.linux-amd64.tar.gz
[[email protected] src]# mv redis_exporter /usr/local/redis_exporter/
解压后只有一个二进制程序就叫redis_exporter 通过-h 可以获取到帮助信息,下面列出一些常用的选项:
运行redis_exporter 服务
直接启动
Systemd 方式启动
vim /usr/lib/systemd/system/redis_exporter.service
[Unit]
Description=redis_exporter
Documentation=https://github.com/oliver006/redis_exporter
After=network.target
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/redis_exporter/redis_exporter -redis.addr 172.16.0.9:6379
Restart=on-failure
[Install]
WantedBy=multi-user.target
[[email protected] src]# useradd prometheus -s /sbin/nologin -M
- job_name: 'redis_exporter'
scrape_interval: 10s
static_configs:
- targets: ['172.16.0.9:9121']
[[email protected] src]# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
[[email protected] src]# systemctl restart prometheus
导入redis 监控模板763
这里注意:如果redis 没有配置内存最大可用值
127.0.0.1:6379> CONFIG GET maxmemory
1) "maxmemory"
2) "0"
则该内存值在grafana 界面显示是0
配置参数如下
maxmemory 128m
[[email protected] rules]# cat redis.yml
groups:
- name: redis_instance
rules:
#redis 实例宕机危险等级: 5
- alert: RedisInstanceDown
expr: redis_up == 0
for: 10s
labels:
severity: warning
annotations:
summary: "Redis down (export {
{ $labels.instance }})"
description: "Redis instance is down\n VALUE = {
{ $value }}\n INSTANCE: {
{ $labels.addr }} {
{ $labels.alias }}"
#redis 内存占用过多危险等级: 4
- alert: RedisOutofMemory
expr: redis_memory_used_bytes / redis_total_system_memory_bytes * 100 > 60
for: 3m
labels:
severity: warning
annotations:
summary: "Out of memory (export {
{ $labels.instance }})"
description: "Redis is running out of memory > 80%\n VALUE= {
{ $value }}\n INSTANCE:{
{ $labels.addr }} {
{ $labels.alias }}"
# redis 连接数过多危险等级: 3
- alert: RedisTooManyConnections
expr: redis_connected_clients > 2000
for: 3m
labels:
severity: warning
annotations:
summary: "Too many connections (export {
{ $labels.instance}})"
description: "Redis instance has too many connections\n value = {
{
$value}}\n INSTANCE:{
{ $labels.addr }} {
{ $labels.alias }}"
[[email protected] rules]# /usr/local/prometheus/promtool check config
/usr/local/prometheus/prometheus.yml
[[email protected] rules]# systemctl restart prometheus
停掉redis 观察
恢复观察
安装java
yum install -y java-1.8.0-openjdk.x86_64
1.安装软件
rpm -ivh elasticsearch-6.6.0.rpm
2.修改配置文件
[[email protected] elasticsearch]# cat /etc/elasticsearch/elasticsearch.yml
cluster.name: Linux
node.name: node-2
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true
network.host: 172.16.0.7,127.0.0.1
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.16.0.7", "172.16.0.8"]
discovery.zen.minimum_master_nodes: 2
3.修改内存锁定
[[email protected] ~]# systemctl edit elasticsearch
[Service]
LimitMEMLOCK=infinity
4.创建数据目录并授权
mkidr /data/elasticsearch
chown =R elasticsearch:elasticsearch /data/elasticsearch
5.重启服务
systemctl daemon-reload
systemctl start elasticsearch
6.查看日志和端口
tail -f /var/log/elasticsearch/Linux.log
netstat -lntup:grep 9200
wget https://github.com/justwatchcom/elasticsearch_exporter/releases/download/v1.1.0/elasticsearch_exporter-1.1.0.linux-amd64.tar.gz
tar -xvf elasticsearch_exporter-1.1.0.linux-amd64.tar.gz
mv elasticsearch_exporter-1.1.0.linux-amd64 /us r/local/elasticsearch_exporter-1.1.0
ln -s /usr/local/elasticsearch_exporter-1.1.0 /usr/local/elasticsearch_exporter
运行es_export服务
直接启动
nohup ./elasticsearch_exporter --es.uri http://172.16.0.7:9200 &
–es.uri 默认http://localhost:9200,连接到的Elasticsearch 节点的地址(主机和端口)
Systemd 方式启动
cat /etc/systemd/system/elasticsearch_exporter.service
[Unit]
Description=Elasticsearch stats exporter for Prometheus
Documentation=Prometheus exporter for various metrics
[Service]
ExecStart=/usr/local/elasticsearch_exporter/elasticsearch_exporter --es.uri http://ip:9200
[Install]
WantedBy=multi-user.target
http://ip:9114/metrics/ 查看采集到的信息
- job_name: 'elasticsearch_exporter'
scrape_interval: 10s
metrics_path: "/_prometheus/metrics"
static_configs:
- targets: ['172.16.0.5:9114','172.16.0.6:9114','172.16.0.7:9114',]
导入granfana 模板2322/266
集群状态,green( 所有的主分片和副本分片都正常运行)、yellow(所有的主分片都正常运行,但不是所有的副本分片都正常运行)red(有主分片没能正常运行)
groups:
- name: es
rules:
- alert: esclusterwrong
expr: elasticsearch_cluster_health_status{
color="green"} != 1
for: 10s
labels:
severity: critical
annotations:
description: "elasticsearch cluster {
{
$labels.server}} 异常"
- alert: esDown
expr: elasticsearch_cluster_health_number_of_nodes != 3
for: 10s
labels:
severity: critical
annotations:
description: "elasticsearch service {
{
$labels.instance}} down"
cAdvisor 将容器统计信息公开为 Prometheus 指标。
默认情况下,这些指标在/metrics HTTP 端点下提供。
可以通过设置-prometheus_endpoint 命令行标志来自定义此端点。
要使用 Prometheus 监控 cAdvisor,只需在 Prometheus 中配置一个或多个作业,这些作业会
在该指标端点处刮取相关的 cAdvisor 流程。
CentOS 7(使用 yum 进行安装)
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker 服务
sudo service docker start
# 下载测试镜像
[[email protected] redis-5.0.8]# docker pull busybox
# 生成容器
[[email protected] redis-5.0.8]# docker run -itd --name bb1 busybox
[[email protected] redis-5.0.8]# docker run -itd --name bb2 busybox
docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
google/cadvisor:latest
验证采集的数据
[[email protected] network-scripts]# curl http://172.16.0.8:8080/metrics
# Prometheus 增加docker 监控
- job_name: 'docker'
static_configs:
- targets: ['172.16.0.8:8080']
[[email protected] rules]# /usr/local/prometheus/promtool check config /usr/local/prometheus/prometheus.yml
[[email protected] rules]# systemctl restart prometheus
grafana 模板:193 模板:
中国大学MOOC的APP2020Python编程基础期末考试搜题公众号答案更多相关问题【判断题】高级训练者的大肌肉群练习一般不超过10-12组。A. 对B. 错When customers receive the goods _____ quality, they may make a complaint or file a claim against the supplier.【单选题】信用卡有...
概述在创业公司里,项目都比较赶,测试人员也是疲于测试功能模块,基本没空去写什么自动化测试,以提升回归测试的效率。但一个必须承认的事实便是,依赖测试人员去做全面回归测试,保证质量,是不可取的,因为难度太大,成本太高。因此自动化测试还是要做一些的,具体如何着手呢,下文说一下我这边的做法。注意:本文主要描述一下业务接口自动化测试的方案,至于GUI自动化测试和压力自动化测试不在本文的讨论范围内。...
一文教你在三维视图中创建流动线条1.demo效果2. 流动线条实现思路3. 实现要点3.1 定义线条运动轨迹3.2 绘制流动线所需的其他参数3.3 初始化线条3.4 线条流动实现3.5 环形线条函数封装3.6 流动线条函数使用4. demo代码4.1 HTML文件4.2 JS文件1.demo效果2. 流动线条实现思路首先定义一条线段流动的的轨迹线,从这条线上均匀的取若干个点,从这些轨迹点中的某一点开始取若干个点,绘制线条,起始点后移,在取相同的点绘制线条,起始点不断后移,不会绘制线条,就得到流动
Spring官方网站本身使用Spring框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。随着Spring 3.0的发布,Spring IO团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各类繁复纷杂的配置(即时是Java Con
近来对大数据分析有了一定的学习,特做笔记记录,以备回顾,特此mark。 语言和Python是大数据分析中常用的两种语言,虽然Java也可进行大数据分析,但R语言和Python浩如烟海的各类数据分析包的支持使得R语言和Python成为了数据分析的主流。 Python在Windows下安装完成,配置好环境变量之后便可以使用命令安装所需要的数据包了,可以说是非常简单的。 1、在...
计算voc数据集MAP1、首先下载voc数据集wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tarwget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tarwget https://pjreddie.com/media/files/VO...
英文 |https://javascript.plainenglish.io/design-a-beautiful-profile-card-with-css-4407c558b733翻...
在线PHP正则:http://jsrun.pro/app/phpregex公众号开发表情:https://www.php.cn/php-weizijiaocheng-305963.html在线多功能json工具箱:http://www.bejson.com/
一直不理解Json干什么用的,只是照抄。今天总算有一点了解,复习一下。String json = request.getParameter("data");//定义一个字符串结束传递过来的jsonArrayList list=(ArrayList)JSON.Decode(json);//吧json强转成ArrayList (里面我暂时理解为实体的List)for(int i=0
CardView模仿探探的卡片流交互控件,项目地址:(github.com/chenzhengxu…)如何使用CardView通过CocoaPods安装:pod 'CardView'手动导入:把CardView文件夹内的所有文件拖入工程导入主要文件:#import "CardView"CardView.h CardItemView.h ...
SELECTGROUP_CONCAT(CONCAT('{"id":"', a.id),CONCAT('","name":"', a.`name`),CONCAT('","parentId":"', a.parentId),'"},') jsonFROMarea a WHERE a.`status`=0 GROUP BY a.id结果如下最后用
为什么80%的码农都做不了架构师?>>> ...