influx
This commit is contained in:
parent
42b005de93
commit
e14201467c
1 changed files with 132 additions and 93 deletions
231
posh.txt
231
posh.txt
|
|
@ -47,8 +47,8 @@ PowerShell Commands
|
|||
# Zabbix
|
||||
# Grafana
|
||||
# WinRM
|
||||
# DSC
|
||||
# Ansible
|
||||
# DSC
|
||||
|
||||
### Help
|
||||
Get-Verb # действия/глаголы, утвержденные для использования в командлетах
|
||||
|
|
@ -313,6 +313,7 @@ $ или \Z # обозначают конец строки. $ip -replace "\d{1,3
|
|||
$test = "string"
|
||||
$test -replace ".{1}$" # удалить любое кол-во символов в конце строки
|
||||
$test -replace "^.{1}" # удалить любое кол-во символов в начале строки
|
||||
(4164539/1MB).ToString("0.00") # округлить до 3,97
|
||||
|
||||
### Группы захвата
|
||||
$date = '12.31.2021'
|
||||
|
|
@ -337,7 +338,6 @@ $char.GetType() # тип данных: Char[]
|
|||
[int16] # 16-разрядное знаковое целое число
|
||||
[int] # 32-разрядное знаковое целое число. (BaseType:System.ValueType)
|
||||
[String] # неизменяемая строка символов Юникода фиксированной длины (BaseType:System.Object)
|
||||
(4164539/1MB).ToString("0.00") # округлить до 3,97
|
||||
|
||||
### Property
|
||||
$srv.Count # кол-во элементов в массиве
|
||||
|
|
@ -3597,14 +3597,14 @@ SET PASSWORD FOR "admin" = 'new_password' # изменить пароль
|
|||
DROP USER "admin" # удалить пользователя
|
||||
|
||||
### DATABASE
|
||||
CREATE DATABASE win_performance # создать БД
|
||||
CREATE DATABASE powershell # создать БД
|
||||
SHOW DATABASES # отобразить список БД
|
||||
USE win_performance
|
||||
USE powershell
|
||||
SHOW measurements # отобразить все таблицы
|
||||
INSERT counters,host=console,counter=CPU value=0.88 # записать данные в таблицу counters
|
||||
SELECT * FROM counters # отобразить все данные в таблице
|
||||
SELECT * FROM counters limit 10 # отобразить 10 единиц данных
|
||||
SELECT * FROM counters WHERE time > now() -2h # отобразить данные за последние 2 часа
|
||||
SELECT * FROM counters WHERE time > now() -2d # отобразить данные за последние 2 дня
|
||||
DELETE FROM counters WHERE time > now() - 2h # удалить данные за последние 2 часа
|
||||
DELETE FROM counters WHERE time < now() - 24h # удалить данные старше 24 часов
|
||||
|
||||
|
|
@ -3612,49 +3612,88 @@ SELECT/DELETE/SHOW/CREATE/DROP/EXPLAIN/GRANT/REVOKE/ALTER/SET/KILL
|
|||
|
||||
### API POST
|
||||
|
||||
$url = "http://192.168.3.104:8086/write?db=win_performance"
|
||||
$PerformanceStat = "\Процессор(_Total)\% загруженности процессора"
|
||||
$Value = ((Get-Counter $PerformanceStat).CounterSamples).CookedValue
|
||||
Invoke-RestMethod -Method POST -Uri $url -Body "counters,host=$ENV:COMPUTERNAME,counter=CPU value=$value"
|
||||
|
||||
### Unix Time
|
||||
|
||||
[string]$timestamp = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
||||
[string]$timestamp = ($timestamp -replace "\..+") + "000000000"
|
||||
Invoke-RestMethod -Method POST -Uri $url -Body "speedtest,host=$(hostname) download=200000,upload=300000,ping=3 $timestamp"
|
||||
# speedtest - Table
|
||||
# host - Tag Keys
|
||||
# $(hostname) - Tag Values
|
||||
# temp* - Field Keys
|
||||
|
||||
### API GET
|
||||
|
||||
curl http://192.168.3.104:8086/query --data-urlencode "q=SHOW DATABASES" # | ConvertFrom-Json
|
||||
|
||||
$db = irm "http://192.168.3.104:8086/query?q=SHOW DATABASES"
|
||||
$db = irm "http://192.168.3.104:8086/query?epoch=ms&u=admin&p=password&q=SHOW DATABASES"
|
||||
$db.results.series.values
|
||||
Table Tag (string) Field (double/int) TIMESTAMP
|
||||
measurement,Tag_Keys1=Tag_Values1,Tag_Keys2=Tag_Values2 Field_Keys1="Values",Field_Keys2="Values" 0000000000000000000
|
||||
1 2 3
|
||||
|
||||
$ip = "192.168.3.104"
|
||||
$port = "8086"
|
||||
$db = "win_performance"
|
||||
$table = "counters"
|
||||
$db = "powershell"
|
||||
$table = "speedtest_test"
|
||||
$ipp = $ip+":"+$port
|
||||
$url = "http://$ipp/write?db=$db"
|
||||
$user = "admin"
|
||||
$pass = "password" | ConvertTo-SecureString -AsPlainText -Force
|
||||
$cred = [System.Management.Automation.PSCredential]::new($user,$pass)
|
||||
$unixtime = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
||||
$timestamp = ([string]$unixtime -replace "\..+") + "000000000"
|
||||
|
||||
Invoke-RestMethod -Method POST -Uri $url -Body "$table,host=$(hostname) download=200000,upload=300000,ping=3 $timestamp"
|
||||
|
||||
### API GET
|
||||
|
||||
curl http://192.168.3.104:8086/query --data-urlencode "q=SHOW DATABASES" # pwsh7 (ConvertFrom-Json) and bash
|
||||
|
||||
$dbs = irm "http://192.168.3.104:8086/query?q=SHOW DATABASES"
|
||||
$dbs = irm "http://192.168.3.104:8086/query?epoch=ms&u=admin&p=password&q=SHOW DATABASES"
|
||||
$dbs.results.series.values
|
||||
|
||||
$ip = "192.168.3.104"
|
||||
$port = "8086"
|
||||
$db = "powershell"
|
||||
$table = "speedtest_test"
|
||||
$query = "SELECT * FROM $table"
|
||||
$ipp = $ip+":"+$port
|
||||
$url = "http://$ipp/query?db=$db&q=$query"
|
||||
#$cred = Get-Credential
|
||||
#$user = "admin"
|
||||
#$pass = "password" | ConvertTo-SecureString -AsPlainText -Force
|
||||
#$cred = [System.Management.Automation.PSCredential]::new($user,$pass)
|
||||
$data = Invoke-RestMethod -Method GET -Uri $url # -Credential $cred
|
||||
$data.results.series.name # имя таблицы
|
||||
$data.results.series.columns # столбцы/ключи
|
||||
$data.results.series.values # данные построчно
|
||||
|
||||
### Endpoint
|
||||
|
||||
irm http://localhost:8086/api/v2/setup
|
||||
irm http://localhost:8086/api/v2/config
|
||||
irm http://localhost:8086/api/v2/write
|
||||
|
||||
### PerformanceTo-InfluxDB
|
||||
|
||||
function ConvertTo-Encoding ([string]$From, [string]$To) {
|
||||
Begin {
|
||||
$encFrom = [System.Text.Encoding]::GetEncoding($from)
|
||||
$encTo = [System.Text.Encoding]::GetEncoding($to)
|
||||
}
|
||||
Process {
|
||||
$bytes = $encTo.GetBytes($_)
|
||||
$bytes = [System.Text.Encoding]::Convert($encFrom, $encTo, $bytes)
|
||||
$encTo.GetString($bytes)
|
||||
}
|
||||
}
|
||||
|
||||
$localization = (Get-Culture).LCID # текущая локализация
|
||||
if ($localization -eq 1049) {
|
||||
$performance = "\\$(hostname)\Процессор(_Total)\% загруженности процессора" | ConvertTo-Encoding UTF-8 windows-1251 # декодировать кириллицу
|
||||
} else {
|
||||
$performance = "\Processor(_Total)\% Processor Time"
|
||||
}
|
||||
|
||||
while ($true) {
|
||||
$unixtime = (New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds
|
||||
$timestamp = ([string]$unixtime -replace "\..+") + "000000000"
|
||||
[double]$value = (Get-Counter $performance).CounterSamples.CookedValue.ToString("0.00").replace(",",".") # округлить в тип данных Double
|
||||
Invoke-RestMethod -Method POST -Uri "http://192.168.3.104:8086/write?db=powershell" -Body "performance,host=$(hostname),counter=CPU value=$value $timestamp"
|
||||
sleep 5
|
||||
}
|
||||
|
||||
### Service
|
||||
|
||||
$powershell_Path = (Get-Command powershell).Source
|
||||
$NSSM_Path = "C:\NSSM\NSSM-2.24.exe"
|
||||
$Script_Path = "C:\NSSM\PerformanceTo-InfluxDB.ps1"
|
||||
$Service_Name = "PerformanceTo-InfluxDB"
|
||||
& $NSSM_Path install $Service_Name $powershell_Path -ExecutionPolicy Bypass -NoProfile -f $Script_Path
|
||||
Get-Service $Service_Name | Start-Service
|
||||
|
||||
# WMI
|
||||
|
||||
### WMI/CIM (Windows Management Instrumentation/Common Information Model)
|
||||
|
|
@ -3876,69 +3915,6 @@ Set-Item WSMan:\localhost\client\allowunencrypted $true # работать бе
|
|||
Set-Item WSMan:\localhost\client\TrustedHosts -Value "*" -force # добавить новый доверенный хост (для всех) в конфигурацию
|
||||
net localgroup "Remote Management Users" "winrm" /add # добавить пользователя winrm (удалить /del) в локальную группу доступа "пользователи удаленного управления" (Local Groups - Remote Management Users)
|
||||
|
||||
# DSC
|
||||
|
||||
Import-Module PSDesiredStateConfiguration
|
||||
(Get-Module PSDesiredStateConfiguration).ExportedCommands
|
||||
Get-DscLocalConfigurationManager
|
||||
|
||||
Get-DscResource
|
||||
Get-DscResource -Name File -Syntax # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
|
||||
|
||||
Ensure = Present # настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет – создать, запустить)
|
||||
Ensure = Absent # настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет – удалить, остановить)
|
||||
|
||||
Configuration TestConfiguraion
|
||||
{
|
||||
Ctrl+Space
|
||||
}
|
||||
|
||||
Configuration DSConfigurationProxy
|
||||
{
|
||||
Node vproxy-01
|
||||
{
|
||||
File CreateDir
|
||||
{
|
||||
Ensure = "Present"
|
||||
Type = "Directory"
|
||||
DestinationPath = "C:\Temp"
|
||||
}
|
||||
Service StopW32time
|
||||
{
|
||||
Name = "w32time"
|
||||
State = "Stopped" # Running
|
||||
}
|
||||
WindowsProcess RunCalc
|
||||
{
|
||||
Ensure = "Present"
|
||||
Path = "C:\WINDOWS\system32\calc.exe"
|
||||
Arguments = ""
|
||||
}
|
||||
Registry RegSettings
|
||||
{
|
||||
Ensure = "Present"
|
||||
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
|
||||
ValueName = "TestName"
|
||||
ValueData = "TestValue"
|
||||
ValueType = "String"
|
||||
}
|
||||
# WindowsFeature IIS
|
||||
# {
|
||||
# Ensure = "Present"
|
||||
# Name = "Web-Server"
|
||||
# }
|
||||
}
|
||||
}
|
||||
|
||||
$Path = (DSConfigurationProxy).DirectoryName
|
||||
Test-DscConfiguration -Path $Path | select * # ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено
|
||||
Start-DscConfiguration -Path $Path
|
||||
Get-Job
|
||||
$srv = "vproxy-01"
|
||||
Get-Service -ComputerName $srv | ? name -match w32time # Start-Service
|
||||
icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force
|
||||
icm $srv {ls C:\ | ? name -match Temp} | ft # rm
|
||||
|
||||
# Ansible
|
||||
|
||||
apt-get update && apt-get upgrade
|
||||
|
|
@ -4033,3 +4009,66 @@ ansible-playbook /etc/ansible/elk.yml # -i /etc/ansible/hosts
|
|||
apt:
|
||||
name: nmap
|
||||
state: latest
|
||||
|
||||
# DSC
|
||||
|
||||
Import-Module PSDesiredStateConfiguration
|
||||
(Get-Module PSDesiredStateConfiguration).ExportedCommands
|
||||
Get-DscLocalConfigurationManager
|
||||
|
||||
Get-DscResource
|
||||
Get-DscResource -Name File -Syntax # https://learn.microsoft.com/ru-ru/powershell/dsc/reference/resources/windows/fileresource?view=dsc-1.1
|
||||
|
||||
Ensure = Present # настройка должна быть включена (каталог должен присутствовать, процесс должен быть запущен, если нет – создать, запустить)
|
||||
Ensure = Absent # настройка должна быть выключена (каталога быть не должно, процесс не должен быть запущен, если нет – удалить, остановить)
|
||||
|
||||
Configuration TestConfiguraion
|
||||
{
|
||||
Ctrl+Space
|
||||
}
|
||||
|
||||
Configuration DSConfigurationProxy
|
||||
{
|
||||
Node vproxy-01
|
||||
{
|
||||
File CreateDir
|
||||
{
|
||||
Ensure = "Present"
|
||||
Type = "Directory"
|
||||
DestinationPath = "C:\Temp"
|
||||
}
|
||||
Service StopW32time
|
||||
{
|
||||
Name = "w32time"
|
||||
State = "Stopped" # Running
|
||||
}
|
||||
WindowsProcess RunCalc
|
||||
{
|
||||
Ensure = "Present"
|
||||
Path = "C:\WINDOWS\system32\calc.exe"
|
||||
Arguments = ""
|
||||
}
|
||||
Registry RegSettings
|
||||
{
|
||||
Ensure = "Present"
|
||||
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\MySoft"
|
||||
ValueName = "TestName"
|
||||
ValueData = "TestValue"
|
||||
ValueType = "String"
|
||||
}
|
||||
# WindowsFeature IIS
|
||||
# {
|
||||
# Ensure = "Present"
|
||||
# Name = "Web-Server"
|
||||
# }
|
||||
}
|
||||
}
|
||||
|
||||
$Path = (DSConfigurationProxy).DirectoryName
|
||||
Test-DscConfiguration -Path $Path | select * # ResourcesInDesiredState - уже настроено, ResourcesNotInDesiredState - не настроено
|
||||
Start-DscConfiguration -Path $Path
|
||||
Get-Job
|
||||
$srv = "vproxy-01"
|
||||
Get-Service -ComputerName $srv | ? name -match w32time # Start-Service
|
||||
icm $srv {Get-Process | ? ProcessName -match calc} | ft # Stop-Process -Force
|
||||
icm $srv {ls C:\ | ? name -match Temp} | ft # rm
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue